ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用 Azure 存储队列和 Python 自动发送推文

2022-11-03 16:38:42  阅读:320  来源: 互联网

标签:python 数据 编程 编程语言 NumPy 安装


如果我看看我覆盖面最大的地方,那就是Twitter。所以我决定创建一个自动化的Twitter活动。

如果我想玩Python-那么我可以以编程方式发送推文。

如果我想玩蔚蓝...我可以使用 Azure 函数计划推文

您可以在第 4 部分中查看结果

获取内容

如果您还没有看过本系列的其他部分,TLDR 是我要求患有神经多样性(多动症、双相情感障碍、阅读障碍等)的人填写一份简短的调查,最后一部分要求参与者向最近可能被诊断或正在考虑寻求诊断的人发送匿名消息。

存储队列

我需要一种方法来存储消息,以便可以调用它们。

最初,我想使用像Cosmos DB这样的NoSQL数据库。我本可以添加,然后让脚本提取当天的消息。schedule day

这将起作用,但是启动一个数据库来存储 30 个文档感觉很多。

我的下一个想法是做一些更轻松的事情(比如SQLite),然后我想起了PyTexas关于在Python中使用队列的演讲。虽然我不想让脚本运行那么长时间,但我开始考虑将文本存储在队列中。这时我记得有 Azure 存储队列

我在 Azure 存储队列中的消息

简而言之,存储队列允许您存储数百万条消息(字节或 unicode)。它的主要功能是从队列顶部提取数据,然后删除消息或将其推送到底部。

这很完美,因为我已经有一个消息列表。我只需要将它们添加到队列中。然后,我的 azure 函数将只从处理消息的队列中调用。

from azure.storage.queues import QueueClient
import json

queue = QueueClient.from_connection_string(
    conn_str=<CONNECTION_STRING>, queue_name=<QUEUE_NAME>
)

for idx, message in enumerate(messages):
    queue.send_message({"index": idx, "text": message})

# to receive the message

_msg = json.loads(queue.receive_message()['content'])

Creating Images

Sending text to twitter didn't seem like the greatest option. There is a character limit and studies show tweets are more engaging when you add images. This gave me the idea of creating a base image and overlaying the text on the image.

 

我能够使用Canva构建一个简单的基础映像。然后,我使用枕头覆盖了文本。在图像上处理文本很难做到完美,所以我选择创建 4 个类别和每个类别的比例。

{
    "md": 0.010,
    "lg": 0.012,
    "xl": 0.014,
    "2xl": 0.020,
}

然后,我使用该比率自动缩放文本,直到边界框达到所需的大小。

draw = ImageDraw.Draw(image)
font_size = 1
font = ImageFont.truetype("assets/Lato-BoldItalic.ttf", font_size)

while font.getbbox(text)[1] < image_size_ratio:
   font_size += 1
   font = ImageFont.truetype("assets/Lato-BoldItalic.ttf", font_size)

它并不完美,但good_enough。然后我把那个索引和一个标签添加到图像上,我准备好了。

标签:python,数据,编程,编程语言,NumPy,安装
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有