首页 > 解决方案 > 如何在 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 删除了不必要的代码,例如检查目录是否存在

标签: pythontelethon

解决方案


根据 的对象参考摘要Message,该message.photo属性将是“此消息中的照片媒体,如果有的话。”。

这意味着,要检测代码中的图像(或照片),您可以执行以下操作:

if event.photo:
    ...

这些Message方法还包含一个message.download_media()这样的:

saved_path = await event.download_media(optional_path)

推荐阅读