test.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/usr/bin/env python3
  2. import argparse
  3. import io
  4. import logging
  5. import pathlib
  6. import requests
  7. import telegram.ext
  8. import telegram.update
  9. _LOGGER = logging.getLogger(__name__)
  10. def _start_command(
  11. update: telegram.update.Update,
  12. context: telegram.ext.callbackcontext.CallbackContext,
  13. ):
  14. update.effective_chat.send_message(text=f"chat_data={context.chat_data}",)
  15. photo_request = requests.get(
  16. "https://upload.wikimedia.org/wikipedia/commons/c/cf/Clematis_alpina_02.jpg"
  17. )
  18. update.effective_chat.send_photo(photo=io.BytesIO(photo_request.content))
  19. # https://github.com/python-telegram-bot/python-telegram-bot/pull/2043
  20. context.bot.send_location(
  21. chat_id=update.effective_chat.id,
  22. latitude=48,
  23. longitude=16,
  24. # reply_to_message_id TODO
  25. )
  26. context.chat_data["last_update"] = update.message.date
  27. def _main():
  28. logging.basicConfig(
  29. level=logging.DEBUG,
  30. format="%(asctime)s:%(levelname)s:%(name)s:%(funcName)s:%(message)s",
  31. datefmt="%Y-%m-%dT%H:%M:%S%z",
  32. )
  33. argparser = argparse.ArgumentParser()
  34. argparser.add_argument("--token-path", type=pathlib.Path, required=True)
  35. args = argparser.parse_args()
  36. _LOGGER.debug("args=%r", args)
  37. updater = telegram.ext.Updater(
  38. token=args.token_path.read_text().rstrip(), use_context=True
  39. )
  40. updater.dispatcher.add_handler(telegram.ext.CommandHandler("start", _start_command))
  41. updater.start_polling()
  42. if __name__ == "__main__":
  43. _main()