main.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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(bot, update):
  8. logger.info("from {}: {}".format(update.message.chat_id, update.message.text)) # "history"
  9. try:
  10. video = Video(update.message.text, init_keyboard=True)
  11. except BadLink:
  12. update.message.reply_text("Bad link")
  13. else:
  14. reply_markup = InlineKeyboardMarkup(video.keyboard)
  15. update.message.reply_text('Choose format:', reply_markup=reply_markup)
  16. def download_choosen_format(bot, update):
  17. query = update.callback_query
  18. resolution_code, link = query.data.split(' ', 1)
  19. bot.edit_message_text(text="Downloading...",
  20. chat_id=query.message.chat_id,
  21. message_id=query.message.message_id)
  22. video = Video(link)
  23. video.download(resolution_code)
  24. with video.send() as files:
  25. for f in files:
  26. bot.send_document(chat_id=query.message.chat_id, document=open(f, 'rb'))
  27. updater = Updater(token=YOUR_TOKEN)
  28. updater.dispatcher.add_handler(MessageHandler(Filters.text, get_format))
  29. updater.dispatcher.add_handler(CallbackQueryHandler(download_choosen_format))
  30. updater.start_polling()
  31. updater.idle()