首页 > 解决方案 > 从更新电视节目下载上传的文件

问题描述

我正在为我的电报机器人使用 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_filedownload_media下载文件感到困惑。

谢谢你。

标签: pythonpython-3.xtelegramtelethon

解决方案


我需要创建一个新函数还是可以在 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)

resultNone如果没有提供媒体,或者它是空的,将返回。成功时返回文件路径,因为它可能与给定的路径不同。

查看文档以获取更多信息,您必须查看download_mediadownload_file


推荐阅读