Reputation: 123
I have a problem about file messages in python telegram bot. How can I receive file and read that file ? Or save it.
Upvotes: 10
Views: 16580
Reputation: 502
Here is some changes for python-telegram-bot v20.
from telegram.ext import Application, MessageHandler, filters
async def downloader(update, context):
file = await context.bot.get_file(update.message.document)
await file.download_to_drive('file_name')
def main() -> None:
application = Application.builder().token('BOT_TOKEN').build()
application.add_handler(MessageHandler(filters.Document.ALL, downloader))
application.run_polling()
if __name__ == '__main__':
main()
Upvotes: 6
Reputation: 7538
You can:
Document
File
object from the update (inside the listener using get_file
).download()
to download the documentHere a sample code to get you started:
from telegram.ext import Updater, MessageHandler, Filters
BOT_TOKEN = ' ... '
def downloader(update, context):
context.bot.get_file(update.message.document).download()
# writing to a custom file
with open("custom/file.doc", 'wb') as f:
context.bot.get_file(update.message.document).download(out=f)
updater = Updater(BOT_TOKEN, use_context=True)
updater.dispatcher.add_handler(MessageHandler(Filters.document, downloader))
updater.start_polling()
updater.idle()
Upvotes: 11