python - 从更新电视节目下载上传的文件
问题描述
我正在为我的电报机器人使用 Telethon,但我仍在学习如何使用该库。
我想从将文件上传到机器人的用户那里下载每个文件。我正在使用更新,我的代码如下所示:
api_id = xxx
api_hash = 'xxx'
bot_token = 'xxx'
client = TelegramClient('bot', api_id, api_hash).start(bot_token=bot_token)
@client.on(events.NewMessage)
async def my_event_handler(event):
if 'hello' in event.raw_text:
await event.reply('hi!')
“如果文件上传到机器人,下载文件”。我需要创建一个新函数还是可以在 my_event_handler 函数中?我仍然对如何使用download_file
或download_media
下载文件感到困惑。
谢谢你。
解决方案
我需要创建一个新函数还是可以在 my_event_handler 函数中?
您可以在my_event_handler
函数中添加几行。我会告诉你怎么做。
api_id = xxx
api_hash = 'xxx'
bot_token = 'xxx'
client = TelegramClient('bot', api_id, api_hash).start(bot_token=bot_token)
@client.on(events.NewMessage)
async def my_event_handler(event):
if 'hello' in event.raw_text:
await event.reply('hi!')
file_path = 'PATH_WHERE_FILE_IS_TO_BE_DOWNLOADED'
result = await event.download_media(file = filepath)
result
None
如果没有提供媒体,或者它是空的,将返回。成功时返回文件路径,因为它可能与给定的路径不同。
查看文档以获取更多信息,您必须查看download_media和download_file
推荐阅读
- asp.net - 带有 FriendlyUrls 的 QueryStringModule 不起作用
- asp.net - 在 rdlc 报告中显示图像
- kubernetes - Connecting remotly a blockchain made with Hyperledger Fabric 1.4 running with Kubernetes
- javascript - 如何使用 Javascript 使用来自 Google Analytics 的数据填充表单字段?
- android - Android导航组件如何保存BottomNavigationBar片段状态
- request - 页面加载后的 Web 组件被破坏
- c# - 如何正确地将多个 cv::Mat 从 c++ dll 传递给 opencvsharp Mat c#?
- rest - 使用 REST 的 VSTS NuGet 发布
- illegalaccessexception - 如何通过调用另一个类中对象的方法来打印while循环
- javascript - 无法更改图标图像(反应)