pyTelegramBotAPI 4.27.0__tar.gz → 4.28.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/PKG-INFO +5 -4
  2. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/README.md +1 -1
  3. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/conf.py +1 -1
  4. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/pyproject.toml +2 -3
  5. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/requirements.txt +1 -1
  6. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/__init__.py +98 -3
  7. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/apihelper.py +34 -0
  8. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/async_telebot.py +93 -1
  9. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/asyncio_helper.py +34 -0
  10. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/types.py +350 -24
  11. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/util.py +3 -2
  12. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/version.py +1 -1
  13. pytelegrambotapi-4.28.0/tests/__init__.py +0 -0
  14. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/.github/ISSUE_TEMPLATE +0 -0
  15. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  16. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/.github/workflows/setup_python.yml +0 -0
  17. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/.gitignore +0 -0
  18. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/.readthedocs.yml +0 -0
  19. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/.travis.yml +0 -0
  20. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/LICENSE +0 -0
  21. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/doc_req.txt +0 -0
  22. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/Makefile +0 -0
  23. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/_static/logo.png +0 -0
  24. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/_static/logo2.png +0 -0
  25. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/async_version/index.rst +0 -0
  26. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/calldata.rst +0 -0
  27. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/formatting.rst +0 -0
  28. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/index.rst +0 -0
  29. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/install.rst +0 -0
  30. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/en/LC_MESSAGES/async_version.po +0 -0
  31. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/en/LC_MESSAGES/calldata.po +0 -0
  32. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/en/LC_MESSAGES/formatting.po +0 -0
  33. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/en/LC_MESSAGES/index.po +0 -0
  34. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/en/LC_MESSAGES/install.po +0 -0
  35. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/en/LC_MESSAGES/quick_start.po +0 -0
  36. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/en/LC_MESSAGES/sync_version.po +0 -0
  37. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/en/LC_MESSAGES/types.po +0 -0
  38. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/en/LC_MESSAGES/util.po +0 -0
  39. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/ru/LC_MESSAGES/async_version.po +0 -0
  40. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/ru/LC_MESSAGES/calldata.po +0 -0
  41. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/ru/LC_MESSAGES/formatting.po +0 -0
  42. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/ru/LC_MESSAGES/index.po +0 -0
  43. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/ru/LC_MESSAGES/install.po +0 -0
  44. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/ru/LC_MESSAGES/quick_start.po +0 -0
  45. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/ru/LC_MESSAGES/sync_version.po +0 -0
  46. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/ru/LC_MESSAGES/types.po +0 -0
  47. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/locales/ru/LC_MESSAGES/util.po +0 -0
  48. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/quick_start.rst +0 -0
  49. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/sync_version/index.rst +0 -0
  50. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/types.rst +0 -0
  51. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/docs/source/util.rst +0 -0
  52. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/anonymous_bot.py +0 -0
  53. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/callback_data_examples/advanced_calendar_example/filters.py +0 -0
  54. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/callback_data_examples/advanced_calendar_example/keyboards.py +0 -0
  55. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/callback_data_examples/advanced_calendar_example/main.py +0 -0
  56. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/callback_data_examples/simple_products_example.py +0 -0
  57. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/chat_join_request.py +0 -0
  58. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/chat_member_example.py +0 -0
  59. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/continue_handling.py +0 -0
  60. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/custom_filters/admin_filter_example.py +0 -0
  61. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/custom_filters/advanced_text_filter.py +0 -0
  62. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/custom_filters/general_custom_filters.py +0 -0
  63. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/custom_filters/id_filter_example.py +0 -0
  64. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/custom_filters/is_filter_example.py +0 -0
  65. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/custom_filters/text_filter_example.py +0 -0
  66. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/custom_states.py +0 -0
  67. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/detect_changes.py +0 -0
  68. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/download_file_example.py +0 -0
  69. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/echo_bot.py +0 -0
  70. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/exception_handler.py +0 -0
  71. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/formatting_example.py +0 -0
  72. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/message_reaction_example.py +0 -0
  73. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/middleware/flooding_middleware.py +0 -0
  74. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/middleware/i18n.py +0 -0
  75. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/i18n_base_midddleware.py +0 -0
  76. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/keyboards.py +0 -0
  77. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/locales/en/LC_MESSAGES/messages.po +0 -0
  78. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/locales/ru/LC_MESSAGES/messages.po +0 -0
  79. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/locales/uz_Latn/LC_MESSAGES/messages.po +0 -0
  80. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/main.py +0 -0
  81. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/mini_app.py +0 -0
  82. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/multibot/README.MD +0 -0
  83. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/multibot/config.py +0 -0
  84. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/multibot/handlers.py +0 -0
  85. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/multibot/main.py +0 -0
  86. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/multibot/nginx_conf.conf +0 -0
  87. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/register_handler.py +0 -0
  88. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/send_file_example.py +0 -0
  89. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/set_command_example.py +0 -0
  90. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/skip_updates_example.py +0 -0
  91. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/timer_bot_async.py +0 -0
  92. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/update_listener.py +0 -0
  93. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/webhooks/async_webhook_aiohttp_echo_bot.py +0 -0
  94. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/webhooks/run_webhooks.py +0 -0
  95. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/asynchronous_telebot/webhooks/webhook_starlette_echo_bot.py +0 -0
  96. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/callback_data_examples/advanced_calendar_example/filters.py +0 -0
  97. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/callback_data_examples/advanced_calendar_example/keyboards.py +0 -0
  98. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/callback_data_examples/advanced_calendar_example/main.py +0 -0
  99. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/callback_data_examples/simple_products_example.py +0 -0
  100. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/chat_join_request.py +0 -0
  101. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/chat_member_example.py +0 -0
  102. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/continue_handling.py +0 -0
  103. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/create_invite_link.py +0 -0
  104. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/custom_filters/admin_filter_example.py +0 -0
  105. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/custom_filters/advanced_text_filter.py +0 -0
  106. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/custom_filters/general_custom_filters.py +0 -0
  107. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/custom_filters/id_filter_example.py +0 -0
  108. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/custom_filters/is_filter_example.py +0 -0
  109. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/custom_filters/text_filter_example.py +0 -0
  110. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/custom_states.py +0 -0
  111. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/deep_linking.py +0 -0
  112. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/detailed_example/detailed_example.py +0 -0
  113. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/detailed_example/kitten.jpg +0 -0
  114. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/detailed_example/rooster.jpg +0 -0
  115. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/detect_changes.py +0 -0
  116. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/download_file_example.py +0 -0
  117. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/echo_bot.py +0 -0
  118. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/formatting_example.py +0 -0
  119. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/inline_example.py +0 -0
  120. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/inline_keyboard_example.py +0 -0
  121. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/message_reaction_example.py +0 -0
  122. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/README.md +0 -0
  123. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/class_based/antiflood_middleware.py +0 -0
  124. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/class_based/basic_example.py +0 -0
  125. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/class_based/i18n_middleware/i18n_base_middleware.py +0 -0
  126. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/class_based/i18n_middleware/keyboards.py +0 -0
  127. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/class_based/i18n_middleware/locales/en/LC_MESSAGES/messages.po +0 -0
  128. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/class_based/i18n_middleware/locales/ru/LC_MESSAGES/messages.po +0 -0
  129. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/class_based/i18n_middleware/locales/uz_Latn/LC_MESSAGES/messages.po +0 -0
  130. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/class_based/i18n_middleware/main.py +0 -0
  131. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/function_based/i18n.py +0 -0
  132. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/function_based/i18n_gettext/i18n_class.py +0 -0
  133. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/function_based/i18n_gettext/keyboards.py +0 -0
  134. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/function_based/i18n_gettext/locales/en/LC_MESSAGES/messages.po +0 -0
  135. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/function_based/i18n_gettext/locales/ru/LC_MESSAGES/messages.po +0 -0
  136. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/function_based/i18n_gettext/locales/uz_Latn/LC_MESSAGES/messages.po +0 -0
  137. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/function_based/i18n_gettext/main.py +0 -0
  138. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/middleware/function_based/session.py +0 -0
  139. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/mini_app.py +0 -0
  140. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/mini_app_web/index.html +0 -0
  141. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/mini_app_web/script.js +0 -0
  142. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/mini_app_web/style.css +0 -0
  143. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/multibot/README.MD +0 -0
  144. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/multibot/config.py +0 -0
  145. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/multibot/handlers.py +0 -0
  146. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/multibot/main.py +0 -0
  147. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/multibot/nginx_conf.conf +0 -0
  148. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/payments_example.py +0 -0
  149. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/poll_example.py +0 -0
  150. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/register_handler.py +0 -0
  151. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/reply_keyboard_markup_example.py +0 -0
  152. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/serverless/aws_lambda_function.py +0 -0
  153. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/serverless/azure_functions +0 -0
  154. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/serverless/flask_google_cloud_bot/.gcloudignore +0 -0
  155. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/serverless/flask_google_cloud_bot/app.yaml +0 -0
  156. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/serverless/flask_google_cloud_bot/main.py +0 -0
  157. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/serverless/flask_google_cloud_bot/requirements.txt +0 -0
  158. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/set_command_example.py +0 -0
  159. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/skip_updates_example.py +0 -0
  160. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/stars_payment.py +0 -0
  161. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/step_example.py +0 -0
  162. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/telebot_bot/telebot_bot.py +0 -0
  163. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/timer_bot.py +0 -0
  164. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/webhook_examples/README.md +0 -0
  165. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/webhook_examples/run_webhooks.py +0 -0
  166. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/webhook_examples/webhook_aiohttp_echo_bot.py +0 -0
  167. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/webhook_examples/webhook_cherrypy_echo_bot.py +0 -0
  168. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/webhook_examples/webhook_cpython_echo_bot.py +0 -0
  169. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/webhook_examples/webhook_fastapi_echo_bot.py +0 -0
  170. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/webhook_examples/webhook_flask_echo_bot.py +0 -0
  171. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/webhook_examples/webhook_flask_heroku_echo.py +0 -0
  172. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/webhook_examples/webhook_tornado_echo_bot.py +0 -0
  173. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/examples/webhook_examples/webhook_twisted_echo_bot.py +0 -0
  174. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/asyncio_filters.py +0 -0
  175. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/asyncio_handler_backends.py +0 -0
  176. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/asyncio_storage/__init__.py +0 -0
  177. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/asyncio_storage/base_storage.py +0 -0
  178. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/asyncio_storage/memory_storage.py +0 -0
  179. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/asyncio_storage/pickle_storage.py +0 -0
  180. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/asyncio_storage/redis_storage.py +0 -0
  181. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/callback_data.py +0 -0
  182. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/custom_filters.py +0 -0
  183. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/ext/__init__.py +0 -0
  184. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/ext/aio/__init__.py +0 -0
  185. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/ext/aio/webhooks.py +0 -0
  186. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/ext/reloader.py +0 -0
  187. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/ext/sync/__init__.py +0 -0
  188. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/ext/sync/webhooks.py +0 -0
  189. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/formatting.py +0 -0
  190. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/handler_backends.py +0 -0
  191. /pytelegrambotapi-4.27.0/tests/__init__.py → /pytelegrambotapi-4.28.0/telebot/py.typed +0 -0
  192. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/service_utils.py +0 -0
  193. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/states/__init__.py +0 -0
  194. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/states/asyncio/__init__.py +0 -0
  195. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/states/asyncio/context.py +0 -0
  196. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/states/asyncio/middleware.py +0 -0
  197. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/states/sync/__init__.py +0 -0
  198. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/states/sync/context.py +0 -0
  199. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/states/sync/middleware.py +0 -0
  200. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/storage/__init__.py +0 -0
  201. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/storage/base_storage.py +0 -0
  202. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/storage/memory_storage.py +0 -0
  203. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/storage/pickle_storage.py +0 -0
  204. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/telebot/storage/redis_storage.py +0 -0
  205. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/tests/test_data/record.mp3 +0 -0
  206. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/tests/test_data/record.ogg +0 -0
  207. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/tests/test_data/record.wav +0 -0
  208. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/tests/test_data/test_video.mp4 +0 -0
  209. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/tests/test_handler_backends.py +0 -0
  210. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/tests/test_telebot.py +0 -0
  211. {pytelegrambotapi-4.27.0 → pytelegrambotapi-4.28.0}/tests/test_types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyTelegramBotAPI
3
- Version: 4.27.0
3
+ Version: 4.28.0
4
4
  Summary: Python Telegram bot api.
5
5
  Project-URL: Homepage, https://github.com/eternnoir/pyTelegramBotAPI
6
6
  Project-URL: Documentation, https://pytba.readthedocs.org
@@ -20,9 +20,10 @@ Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Programming Language :: Python :: 3.13
22
22
  Requires-Python: >=3.9
23
+ Requires-Dist: aiohttp
24
+ Requires-Dist: pytest
23
25
  Requires-Dist: requests
24
- Provides-Extra: aiohttp
25
- Requires-Dist: aiohttp; extra == 'aiohttp'
26
+ Requires-Dist: wheel
26
27
  Provides-Extra: coloredlogs
27
28
  Requires-Dist: coloredlogs; extra == 'coloredlogs'
28
29
  Provides-Extra: fastapi
@@ -53,7 +54,7 @@ Description-Content-Type: text/markdown
53
54
  <p align="center">A simple, but extensible Python implementation for the <a href="https://core.telegram.org/bots/api">Telegram Bot API</a>.</p>
54
55
  <p align="center">Both synchronous and asynchronous.</p>
55
56
 
56
- ## <p align="center">Supported Bot API version: <a href="https://core.telegram.org/bots/api#april-11-2025"><img src="https://img.shields.io/badge/Bot%20API-9.0-blue?logo=telegram" alt="Supported Bot API version"></a>
57
+ ## <p align="center">Supported Bot API version: <a href="https://core.telegram.org/bots/api#july-3-2025"><img src="https://img.shields.io/badge/Bot%20API-9.1-blue?logo=telegram" alt="Supported Bot API version"></a>
57
58
 
58
59
  <h2><a href='https://pytba.readthedocs.io/en/latest/index.html'>Official documentation</a></h2>
59
60
  <h2><a href='https://pytba.readthedocs.io/ru/latest/index.html'>Official ru documentation</a></h2>
@@ -10,7 +10,7 @@
10
10
  <p align="center">A simple, but extensible Python implementation for the <a href="https://core.telegram.org/bots/api">Telegram Bot API</a>.</p>
11
11
  <p align="center">Both synchronous and asynchronous.</p>
12
12
 
13
- ## <p align="center">Supported Bot API version: <a href="https://core.telegram.org/bots/api#april-11-2025"><img src="https://img.shields.io/badge/Bot%20API-9.0-blue?logo=telegram" alt="Supported Bot API version"></a>
13
+ ## <p align="center">Supported Bot API version: <a href="https://core.telegram.org/bots/api#july-3-2025"><img src="https://img.shields.io/badge/Bot%20API-9.1-blue?logo=telegram" alt="Supported Bot API version"></a>
14
14
 
15
15
  <h2><a href='https://pytba.readthedocs.io/en/latest/index.html'>Official documentation</a></h2>
16
16
  <h2><a href='https://pytba.readthedocs.io/ru/latest/index.html'>Official ru documentation</a></h2>
@@ -22,7 +22,7 @@ author = 'coder2020official'
22
22
  copyright = f'2022-{datetime.now().year}, {author}'
23
23
 
24
24
  # The full version, including alpha/beta/rc tags
25
- release = '4.27.0'
25
+ release = '4.28.0'
26
26
 
27
27
 
28
28
  # -- General configuration ---------------------------------------------------
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pyTelegramBotAPI"
7
- version = "4.27.0"
7
+ version = "4.28.0"
8
8
  description = "Python Telegram bot api."
9
9
  authors = [{name = "eternnoir", email = "eternnoir@gmail.com"}]
10
10
  license = {text = "GPL2"}
@@ -22,7 +22,7 @@ classifiers = [
22
22
  "Environment :: Console",
23
23
  "License :: OSI Approved :: GNU General Public License v2 (GPLv2)"
24
24
  ]
25
- dependencies = ["requests"]
25
+ dependencies = ["pytest", "requests", "wheel", "aiohttp"]
26
26
 
27
27
  [project.urls]
28
28
  Homepage = "https://github.com/eternnoir/pyTelegramBotAPI"
@@ -35,7 +35,6 @@ Issues = "https://github.com/eternnoir/pyTelegramBotAPI/issues"
35
35
  json = ["ujson"]
36
36
  PIL = ["Pillow"]
37
37
  redis = ["redis>=3.4.1"]
38
- aiohttp = ["aiohttp"]
39
38
  fastapi = ["fastapi"]
40
39
  uvicorn = ["uvicorn"]
41
40
  psutil = ["psutil"]
@@ -1,4 +1,4 @@
1
1
  pytest
2
- requests==2.32.0
2
+ requests==2.32.4
3
3
  wheel==0.38.1
4
4
  aiohttp==3.10.11
@@ -2104,6 +2104,90 @@ class TeleBot:
2104
2104
  message_thread_id=message_thread_id, protect_content=protect_content, remove_caption=remove_caption)
2105
2105
  return [types.MessageID.de_json(message_id) for message_id in result]
2106
2106
 
2107
+ def send_checklist(
2108
+ self, business_connection_id: str, chat_id: Union[int, str],
2109
+ checklist: types.InputChecklist,
2110
+ disable_notification: Optional[bool]=None,
2111
+ protect_content: Optional[bool]=None,
2112
+ message_effect_id: Optional[str]=None,
2113
+ reply_parameters: Optional[types.ReplyParameters]=None,
2114
+ reply_markup: Optional[types.InlineKeyboardMarkup]=None) -> types.Message:
2115
+ """
2116
+ Use this method to send a checklist on behalf of a connected business account. On success,
2117
+ the sent Message is returned.
2118
+
2119
+ Telegram documentation: https://core.telegram.org/bots/api#sendchecklist
2120
+
2121
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the message will be sent
2122
+ :type business_connection_id: :obj:`str`
2123
+
2124
+ :param chat_id: Unique identifier for the target chat or username of the target channel (in the format @channelusername)
2125
+ :type chat_id: :obj:`int` or :obj:`str`
2126
+
2127
+ :param checklist: A JSON-serialized object for the checklist to send
2128
+ :type checklist: :class:`telebot.types.InputChecklist`
2129
+
2130
+ :param disable_notification: Sends the message silently. Users will receive a notification with no sound.
2131
+ :type disable_notification: :obj:`bool`
2132
+
2133
+ :param protect_content: Protects the contents of the sent message from forwarding and saving
2134
+ :type protect_content: :obj:`bool`
2135
+
2136
+ :param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
2137
+ :type message_effect_id: :obj:`str`
2138
+
2139
+ :param reply_parameters: Additional parameters for replies to messages
2140
+ :type reply_parameters: :class:`telebot.types.ReplyParameters`
2141
+
2142
+ :param reply_markup: Additional interface options. A JSON-serialized object for an inline keyboard.
2143
+ :type reply_markup: :class:`telebot.types.InlineKeyboardMarkup`
2144
+
2145
+ :return: On success, the sent Message is returned.
2146
+ :rtype: :class:`telebot.types.Message`
2147
+ """
2148
+ disable_notification = self.disable_notification if (disable_notification is None) else disable_notification
2149
+ protect_content = self.protect_content if (protect_content is None) else protect_content
2150
+
2151
+ if reply_parameters and (reply_parameters.allow_sending_without_reply is None):
2152
+ reply_parameters.allow_sending_without_reply = self.allow_sending_without_reply
2153
+
2154
+ return types.Message.de_json(
2155
+ apihelper.send_checklist(
2156
+ self.token, business_connection_id, chat_id, checklist, disable_notification=disable_notification,
2157
+ protect_content=protect_content, message_effect_id=message_effect_id,
2158
+ reply_parameters=reply_parameters, reply_markup=reply_markup))
2159
+
2160
+ def edit_message_checklist(
2161
+ self, business_connection_id: str, chat_id: Union[int, str],
2162
+ message_id: int, checklist: types.InputChecklist,
2163
+ reply_markup: Optional[types.InlineKeyboardMarkup]=None) -> types.Message:
2164
+ """
2165
+ Use this method to edit a checklist on behalf of a connected business account. On success,
2166
+ the edited Message is returned.
2167
+
2168
+ Telegram documentation: https://core.telegram.org/bots/api#editmessagechecklist
2169
+
2170
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the message will be sent
2171
+ :type business_connection_id: :obj:`str`
2172
+
2173
+ :param chat_id: Unique identifier for the target chat or username of the target channel (in the format @channelusername)
2174
+ :type chat_id: :obj:`int` or :obj:`str`
2175
+
2176
+ :param message_id: Unique identifier for the target message
2177
+ :type message_id: :obj:`int`
2178
+
2179
+ :param checklist: A JSON-serialized object for the new checklist
2180
+ :type checklist: :class:`telebot.types.InputChecklist`
2181
+
2182
+ :param reply_markup: Additional interface options. A JSON-serialized object for an inline keyboard.
2183
+ :type reply_markup: :class:`telebot.types.InlineKeyboardMarkup`
2184
+
2185
+ :return: On success, the edited Message is returned.
2186
+ :rtype: :class:`telebot.types.Message`
2187
+ """
2188
+ return types.Message.de_json(
2189
+ apihelper.edit_message_checklist(
2190
+ self.token, business_connection_id, chat_id, message_id, checklist, reply_markup=reply_markup))
2107
2191
 
2108
2192
  def send_dice(
2109
2193
  self, chat_id: Union[int, str],
@@ -3528,7 +3612,7 @@ class TeleBot:
3528
3612
  proximity_alert_radius: Optional[int]=None,
3529
3613
  live_period: Optional[int]=None,
3530
3614
  business_connection_id: Optional[str]=None
3531
- ) -> types.Message or bool:
3615
+ ) -> Union[types.Message, bool]:
3532
3616
  """
3533
3617
  Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly
3534
3618
  disabled by a call to stopMessageLiveLocation. On success, if the edited message is not an inline message, the edited Message
@@ -3590,7 +3674,7 @@ class TeleBot:
3590
3674
  inline_message_id: Optional[str]=None,
3591
3675
  reply_markup: Optional[types.InlineKeyboardMarkup]=None,
3592
3676
  timeout: Optional[int]=None,
3593
- business_connection_id: Optional[str]=None) -> types.Message or bool:
3677
+ business_connection_id: Optional[str]=None) -> Union[types.Message, bool]:
3594
3678
  """
3595
3679
  Use this method to stop updating a live location message before live_period expires.
3596
3680
  On success, if the message is not an inline message, the edited Message is returned, otherwise True is returned.
@@ -5599,7 +5683,7 @@ class TeleBot:
5599
5683
  :param question: Poll question, 1-300 characters
5600
5684
  :type question: :obj:`str`
5601
5685
 
5602
- :param options: A JSON-serialized list of 2-10 answer options
5686
+ :param options: A JSON-serialized list of 2-12 answer options
5603
5687
  :type options: :obj:`list` of :obj:`InputPollOption` | :obj:`list` of :obj:`str`
5604
5688
 
5605
5689
  :param is_anonymous: True, if the poll needs to be anonymous, defaults to True
@@ -5818,6 +5902,17 @@ class TeleBot:
5818
5902
  """
5819
5903
  return apihelper.answer_pre_checkout_query(
5820
5904
  self.token, pre_checkout_query_id, ok, error_message=error_message)
5905
+
5906
+ def get_my_star_balance(self) -> types.StarAmount:
5907
+ """
5908
+ Returns the bot's current Telegram Stars balance. On success, returns a StarAmount object.
5909
+
5910
+ Telegram documentation: https://core.telegram.org/bots/api#getmystarbalance
5911
+
5912
+ :return: On success, returns a StarAmount object.
5913
+ :rtype: :obj:`types.StarAmount`
5914
+ """
5915
+ return types.StarAmount.de_json(apihelper.get_my_star_balance(self.token))
5821
5916
 
5822
5917
 
5823
5918
  def get_star_transactions(self, offset: Optional[int]=None, limit: Optional[int]=None) -> types.StarTransactions:
@@ -473,6 +473,36 @@ def copy_message(token, chat_id, from_chat_id, message_id, caption=None, parse_m
473
473
  payload['video_start_timestamp'] = video_start_timestamp
474
474
  return _make_request(token, method_url, params=payload)
475
475
 
476
+ def send_checklist(
477
+ token, business_connection_id, chat_id, checklist,
478
+ disable_notification=None, protect_content=None, message_effect_id=None,
479
+ reply_parameters=None, reply_markup=None
480
+ ):
481
+ method_url = r'sendChecklist'
482
+ payload = {'chat_id': chat_id, 'checklist': checklist, 'business_connection_id': business_connection_id}
483
+ if disable_notification is not None:
484
+ payload['disable_notification'] = disable_notification
485
+ if protect_content is not None:
486
+ payload['protect_content'] = protect_content
487
+ if message_effect_id:
488
+ payload['message_effect_id'] = message_effect_id
489
+ if reply_parameters:
490
+ payload['reply_parameters'] = reply_parameters.to_json()
491
+ if reply_markup:
492
+ payload['reply_markup'] = _convert_markup(reply_markup)
493
+ return _make_request(token, method_url, params=payload)
494
+
495
+
496
+ def edit_message_checklist(
497
+ token, business_connection_id, chat_id, message_id, checklist,
498
+ reply_markup=None
499
+ ):
500
+ method_url = r'editMessageChecklist'
501
+ payload = {'chat_id': chat_id, 'message_id': message_id, 'checklist': checklist, 'business_connection_id': business_connection_id}
502
+ if reply_markup:
503
+ payload['reply_markup'] = _convert_markup(reply_markup)
504
+ return _make_request(token, method_url, params=payload)
505
+
476
506
 
477
507
  def send_dice(
478
508
  token, chat_id,
@@ -1817,6 +1847,10 @@ def answer_pre_checkout_query(token, pre_checkout_query_id, ok, error_message=No
1817
1847
  payload['error_message'] = error_message
1818
1848
  return _make_request(token, method_url, params=payload)
1819
1849
 
1850
+ def get_my_star_balance(token):
1851
+ method_url = 'getMyStarBalance'
1852
+ return _make_request(token, method_url)
1853
+
1820
1854
  def get_star_transactions(token, offset=None, limit=None):
1821
1855
  method_url = 'getStarTransactions'
1822
1856
  payload = {}
@@ -3619,6 +3619,91 @@ class AsyncTeleBot:
3619
3619
  result = await asyncio_helper.copy_messages(self.token, chat_id, from_chat_id, message_ids, disable_notification, message_thread_id,
3620
3620
  protect_content, remove_caption)
3621
3621
  return [types.MessageID.de_json(message_id) for message_id in result]
3622
+
3623
+ async def send_checklist(
3624
+ self, business_connection_id: str, chat_id: Union[int, str],
3625
+ checklist: types.InputChecklist,
3626
+ disable_notification: Optional[bool]=None,
3627
+ protect_content: Optional[bool]=None,
3628
+ message_effect_id: Optional[str]=None,
3629
+ reply_parameters: Optional[types.ReplyParameters]=None,
3630
+ reply_markup: Optional[types.InlineKeyboardMarkup]=None) -> types.Message:
3631
+ """
3632
+ Use this method to send a checklist on behalf of a connected business account. On success,
3633
+ the sent Message is returned.
3634
+
3635
+ Telegram documentation: https://core.telegram.org/bots/api#sendchecklist
3636
+
3637
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the message will be sent
3638
+ :type business_connection_id: :obj:`str`
3639
+
3640
+ :param chat_id: Unique identifier for the target chat or username of the target channel (in the format @channelusername)
3641
+ :type chat_id: :obj:`int` or :obj:`str`
3642
+
3643
+ :param checklist: A JSON-serialized object for the checklist to send
3644
+ :type checklist: :class:`telebot.types.InputChecklist`
3645
+
3646
+ :param disable_notification: Sends the message silently. Users will receive a notification with no sound.
3647
+ :type disable_notification: :obj:`bool`
3648
+
3649
+ :param protect_content: Protects the contents of the sent message from forwarding and saving
3650
+ :type protect_content: :obj:`bool`
3651
+
3652
+ :param message_effect_id: Unique identifier of the message effect to be added to the message; for private chats only
3653
+ :type message_effect_id: :obj:`str`
3654
+
3655
+ :param reply_parameters: Additional parameters for replies to messages
3656
+ :type reply_parameters: :class:`telebot.types.ReplyParameters`
3657
+
3658
+ :param reply_markup: Additional interface options. A JSON-serialized object for an inline keyboard.
3659
+ :type reply_markup: :class:`telebot.types.InlineKeyboardMarkup`
3660
+
3661
+ :return: On success, the sent Message is returned.
3662
+ :rtype: :class:`telebot.types.Message`
3663
+ """
3664
+ disable_notification = self.disable_notification if (disable_notification is None) else disable_notification
3665
+ protect_content = self.protect_content if (protect_content is None) else protect_content
3666
+
3667
+ if reply_parameters and (reply_parameters.allow_sending_without_reply is None):
3668
+ reply_parameters.allow_sending_without_reply = self.allow_sending_without_reply
3669
+
3670
+ return types.Message.de_json(
3671
+ await asyncio_helper.send_checklist(
3672
+ self.token, business_connection_id, chat_id, checklist, disable_notification=disable_notification,
3673
+ protect_content=protect_content, message_effect_id=message_effect_id,
3674
+ reply_parameters=reply_parameters, reply_markup=reply_markup))
3675
+
3676
+ async def edit_message_checklist(
3677
+ self, business_connection_id: str, chat_id: Union[int, str],
3678
+ message_id: int, checklist: types.InputChecklist,
3679
+ reply_markup: Optional[types.InlineKeyboardMarkup]=None) -> types.Message:
3680
+ """
3681
+ Use this method to edit a checklist on behalf of a connected business account. On success,
3682
+ the edited Message is returned.
3683
+
3684
+ Telegram documentation: https://core.telegram.org/bots/api#editmessagechecklist
3685
+
3686
+ :param business_connection_id: Unique identifier of the business connection on behalf of which the message will be sent
3687
+ :type business_connection_id: :obj:`str`
3688
+
3689
+ :param chat_id: Unique identifier for the target chat or username of the target channel (in the format @channelusername)
3690
+ :type chat_id: :obj:`int` or :obj:`str`
3691
+
3692
+ :param message_id: Unique identifier for the target message
3693
+ :type message_id: :obj:`int`
3694
+
3695
+ :param checklist: A JSON-serialized object for the new checklist
3696
+ :type checklist: :class:`telebot.types.InputChecklist`
3697
+
3698
+ :param reply_markup: Additional interface options. A JSON-serialized object for an inline keyboard.
3699
+ :type reply_markup: :class:`telebot.types.InlineKeyboardMarkup`
3700
+
3701
+ :return: On success, the edited Message is returned.
3702
+ :rtype: :class:`telebot.types.Message`
3703
+ """
3704
+ return types.Message.de_json(
3705
+ await asyncio_helper.edit_message_checklist(
3706
+ self.token, business_connection_id, chat_id, message_id, checklist, reply_markup=reply_markup))
3622
3707
 
3623
3708
  async def send_dice(
3624
3709
  self, chat_id: Union[int, str],
@@ -7256,8 +7341,15 @@ class AsyncTeleBot:
7256
7341
  :rtype: :obj:`bool`
7257
7342
  """
7258
7343
  return await asyncio_helper.answer_pre_checkout_query(self.token, pre_checkout_query_id, ok, error_message)
7259
-
7260
7344
 
7345
+
7346
+ async def get_my_star_balance(self) -> types.StarAmount:
7347
+ """
7348
+ A method to get the current Telegram Stars balance of the bot. Requires no parameters.
7349
+ On success, returns a StarAmount object.
7350
+ """
7351
+ return types.StarAmount.de_json(await asyncio_helper.get_my_star_balance(self.token))
7352
+
7261
7353
  async def get_star_transactions(self, offset: Optional[int]=None, limit: Optional[int]=None) -> types.StarTransactions:
7262
7354
  """
7263
7355
  Returns the bot's Telegram Star transactions in chronological order.
@@ -477,6 +477,35 @@ async def copy_message(token, chat_id, from_chat_id, message_id, caption=None, p
477
477
  payload['video_start_timestamp'] = video_start_timestamp
478
478
  return await _process_request(token, method_url, params=payload)
479
479
 
480
+ async def send_checklist(
481
+ token, business_connection_id, chat_id, checklist,
482
+ disable_notification=None, protect_content=None, message_effect_id=None,
483
+ reply_parameters=None, reply_markup=None
484
+ ):
485
+ method_url = r'sendChecklist'
486
+ payload = {'chat_id': chat_id, 'checklist': checklist, 'business_connection_id': business_connection_id}
487
+ if disable_notification is not None:
488
+ payload['disable_notification'] = disable_notification
489
+ if protect_content is not None:
490
+ payload['protect_content'] = protect_content
491
+ if message_effect_id:
492
+ payload['message_effect_id'] = message_effect_id
493
+ if reply_parameters:
494
+ payload['reply_parameters'] = reply_parameters.to_json()
495
+ if reply_markup:
496
+ payload['reply_markup'] = _convert_markup(reply_markup)
497
+ return await _process_request(token, method_url, params=payload)
498
+
499
+
500
+ async def edit_message_checklist(
501
+ token, business_connection_id, chat_id, message_id, checklist,
502
+ reply_markup=None
503
+ ):
504
+ method_url = r'editMessageChecklist'
505
+ payload = {'chat_id': chat_id, 'message_id': message_id, 'checklist': checklist, 'business_connection_id': business_connection_id}
506
+ if reply_markup:
507
+ payload['reply_markup'] = await _convert_markup(reply_markup)
508
+ return await _process_request(token, method_url, params=payload)
480
509
 
481
510
  async def send_dice(
482
511
  token, chat_id,
@@ -1816,6 +1845,11 @@ async def answer_pre_checkout_query(token, pre_checkout_query_id, ok, error_mess
1816
1845
  payload['error_message'] = error_message
1817
1846
  return await _process_request(token, method_url, params=payload)
1818
1847
 
1848
+
1849
+ async def get_my_star_balance(token):
1850
+ method_url = 'getMyStarBalance'
1851
+ return await _process_request(token, method_url)
1852
+
1819
1853
  async def get_star_transactions(token, offset=None, limit=None):
1820
1854
  method_url = 'getStarTransactions'
1821
1855
  payload = {}