Скачать фото с телеграмм-бота - PullRequest
0 голосов
/ 08 мая 2020

Я сейчас использую приведенный ниже код для загрузки изображений, которые отправляются моему боту. Однако недостатком этого инструмента является то, что фото , отправленные в виде файлов , являются единственными, которые извлекаются и загружаются в мою локальную папку. Что я могу сделать, чтобы бот мог получать и скачивать изображения отправленные как фотографии

from telegram.ext import Updater, CommandHandler, MessageHandler, Filters

def start(update,context):
    update.message.reply_text("Hi! Welcome to tutorial")

def message(update,context):
    update.message.reply_text(update.message.text.upper())

def command_handler(update,context):
    upper.message.reply_text(f"Command: {update.message.text}")


def receive_image(update,context):
    try:
        obj = context.bot.getFile(file_id=update.message.photo.file_id)
        obj.download()
        update.message.reply_text("File has been downloaded")
    except Exception as e:
        print(str(e))

def receive_audio(update,context):
    try:
        audio_obj = context.bot.getFile(file_id=update.message.audio.file_id)
        audio_obj.download()
        update.message.reply_text("your audio has been processed")
    except Exception as e:
        print(str(e))


def main():
    updater = Updater(token=TOKEN,use_context=True)
    dp = updater.dispatcher
    dp.add_handler(CommandHandler("start",start))
    dp.add_handler(MessageHandler(Filters.text,message))
    dp.add_handler(MessageHandler(Filters.command,command_handler))
    dp.add_handler(MessageHandler(Filters.audio,receive_audio))
    dp.add_handler(MessageHandler(Filters.photo,receive_image))
    updater.start_polling()
    updater.idle()

if __name__ == "__main__":
    main()
...