【问题标题】:Downloads an uploaded file from updates telethon从更新电视节目下载上传的文件
【发布时间】:2020-03-25 11:46:54
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: python python-3.x telegram telethon


    【解决方案1】:

    我是否需要创建一个新函数,或者它可以在 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_mediadownload_file

    【讨论】:

    • event.download_media 或文件工作正常,谢谢。顺便说一句,如果超过 5 mb,我可以验证文件,文件不会下载吗?
    • @Aer0nux 那么请在我的答案上签名为正确答案,顺便说一句,Telegram 将下载并发送遵守这些限制的文件:照片最大 5 MB,其他类型内容最大 20 MB。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 2014-03-29
    • 1970-01-01
    • 2012-10-18
    • 2015-07-16
    • 2010-09-27
    • 2018-11-02
    相关资源
    最近更新 更多