main.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import logging
  2. from telegram import InlineKeyboardMarkup
  3. from telegram.ext import Updater, CallbackQueryHandler, MessageHandler, Filters
  4. from vid_utils import Video, BadLink
  5. logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
  6. logger = logging.getLogger(__name__)
  7. def get_format(update, context):
  8. logger.info("from {}: {}".format(update.message.chat_id, update.message.text)) # "history"
  9. try:
  10. video = Video(link=update.message.text, init_keyboard=True)
  11. except BadLink as e:
  12. update.message.reply_text("Bad link: {}".format(e))
  13. else:
  14. reply_markup = InlineKeyboardMarkup(video.keyboard)
  15. update.message.reply_text('Choose format:', reply_markup=reply_markup)
  16. def download_choosen_format(update, context):
  17. query = update.callback_query
  18. video_index = query.data
  19. context.bot.edit_message_text(text="Downloading...",
  20. chat_id=query.message.chat_id,
  21. message_id=query.message.message_id)
  22. video = Video(vid=video_index)
  23. video.download()
  24. with video.send() as files:
  25. for f in files:
  26. logger.log("Sending... {} ".format(f))
  27. context.bot.send_document(chat_id=query.message.chat_id, document=open(f, 'rb'))
  28. context.bot.delete_message(chat_id=query.message.chat_id,
  29. message_id=query.message.message_id)
  30. updater = Updater(token="")
  31. updater.dispatcher.add_handler(MessageHandler(Filters.text, get_format))
  32. updater.dispatcher.add_handler(CallbackQueryHandler(download_choosen_format))
  33. updater.start_polling()
  34. updater.idle()