python - 如何在 Telehton newMessage 事件中识别和下载图像?
问题描述
我编写了一个简单的 python 脚本来使用 Telethon 事件处理程序将用户看到的所有消息保存到文件中:
@CLIENT.on(events.NewMessage)
async def my_event_handler(event):
sender = await event.get_sender()
chat_id = event.chat_id
out ='\n\n' + sender.username + ': ' + event.text + ' [' + str(chat_id) + ']'
name = hashlib.sha1(out.encode('utf-8')).hexdigest()
outdir = ECHODIR + '/' + str(chat_id)
f_h = open(outdir + '/' + name, 'a')
f_h.write(out)
f_h.close()
CLIENT.start()
CLIENT.run_until_disconnected()
如何检测收到图像并从事件中下载图像?
ps 删除了不必要的代码,例如检查目录是否存在
解决方案
根据 的对象参考摘要Message
,该message.photo
属性将是“此消息中的照片媒体,如果有的话。”。
这意味着,要检测代码中的图像(或照片),您可以执行以下操作:
if event.photo:
...
这些Message
方法还包含一个message.download_media()
这样的:
saved_path = await event.download_media(optional_path)
推荐阅读
- android - 评分栏在 android 中有 10 颗星
- npm - npm run scripts 运行无限时间
- javascript - × TypeError: Object(...) 不是函数
- javascript - Sanic Websocket 异步管理
- reactjs - 在设备视图之外反应原生模态内容
- django - Gunicorn 没有开始抛出 gunicorn.service:失败,结果为“退出代码”。错误
- python - 无法获得正确的元组格式的元组以传递给 Python 中的 for 循环迭代
- bash - “-”在 bash 中有什么作用(例如 sort -)
- java - 如何在 Java 中转发异常对象
- c# - 指定(或未指定)键时的模板加载行为不同