pyTelegramBotAPI 4.29.0__tar.gz → 4.30.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.29.0 → pytelegrambotapi-4.30.0}/.github/workflows/setup_python.yml +1 -1
  2. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/.travis.yml +1 -1
  3. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/PKG-INFO +3 -3
  4. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/README.md +1 -1
  5. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/conf.py +1 -1
  6. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/serverless/flask_google_cloud_bot/requirements.txt +1 -1
  7. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/pyproject.toml +2 -2
  8. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/requirements.txt +1 -1
  9. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/__init__.py +254 -9
  10. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/apihelper.py +119 -23
  11. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/async_telebot.py +256 -20
  12. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/asyncio_helper.py +112 -23
  13. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/types.py +260 -35
  14. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/util.py +1 -1
  15. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/version.py +1 -1
  16. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/.github/ISSUE_TEMPLATE +0 -0
  17. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  18. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/.gitignore +0 -0
  19. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/.readthedocs.yml +0 -0
  20. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/LICENSE +0 -0
  21. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/doc_req.txt +0 -0
  22. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/Makefile +0 -0
  23. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/_static/logo.png +0 -0
  24. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/_static/logo2.png +0 -0
  25. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/async_version/index.rst +0 -0
  26. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/calldata.rst +0 -0
  27. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/formatting.rst +0 -0
  28. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/index.rst +0 -0
  29. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/install.rst +0 -0
  30. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/en/LC_MESSAGES/async_version.po +0 -0
  31. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/en/LC_MESSAGES/calldata.po +0 -0
  32. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/en/LC_MESSAGES/formatting.po +0 -0
  33. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/en/LC_MESSAGES/index.po +0 -0
  34. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/en/LC_MESSAGES/install.po +0 -0
  35. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/en/LC_MESSAGES/quick_start.po +0 -0
  36. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/en/LC_MESSAGES/sync_version.po +0 -0
  37. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/en/LC_MESSAGES/types.po +0 -0
  38. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/en/LC_MESSAGES/util.po +0 -0
  39. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/ru/LC_MESSAGES/async_version.po +0 -0
  40. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/ru/LC_MESSAGES/calldata.po +0 -0
  41. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/ru/LC_MESSAGES/formatting.po +0 -0
  42. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/ru/LC_MESSAGES/index.po +0 -0
  43. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/ru/LC_MESSAGES/install.po +0 -0
  44. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/ru/LC_MESSAGES/quick_start.po +0 -0
  45. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/ru/LC_MESSAGES/sync_version.po +0 -0
  46. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/ru/LC_MESSAGES/types.po +0 -0
  47. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/locales/ru/LC_MESSAGES/util.po +0 -0
  48. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/quick_start.rst +0 -0
  49. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/sync_version/index.rst +0 -0
  50. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/types.rst +0 -0
  51. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/docs/source/util.rst +0 -0
  52. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/anonymous_bot.py +0 -0
  53. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/callback_data_examples/advanced_calendar_example/filters.py +0 -0
  54. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/callback_data_examples/advanced_calendar_example/keyboards.py +0 -0
  55. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/callback_data_examples/advanced_calendar_example/main.py +0 -0
  56. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/callback_data_examples/simple_products_example.py +0 -0
  57. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/chat_join_request.py +0 -0
  58. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/chat_member_example.py +0 -0
  59. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/continue_handling.py +0 -0
  60. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/custom_filters/admin_filter_example.py +0 -0
  61. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/custom_filters/advanced_text_filter.py +0 -0
  62. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/custom_filters/general_custom_filters.py +0 -0
  63. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/custom_filters/id_filter_example.py +0 -0
  64. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/custom_filters/is_filter_example.py +0 -0
  65. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/custom_filters/text_filter_example.py +0 -0
  66. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/custom_states.py +0 -0
  67. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/detect_changes.py +0 -0
  68. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/download_file_example.py +0 -0
  69. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/echo_bot.py +0 -0
  70. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/exception_handler.py +0 -0
  71. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/formatting_example.py +0 -0
  72. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/message_reaction_example.py +0 -0
  73. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/middleware/flooding_middleware.py +0 -0
  74. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/middleware/i18n.py +0 -0
  75. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/i18n_base_midddleware.py +0 -0
  76. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/keyboards.py +0 -0
  77. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/locales/en/LC_MESSAGES/messages.po +0 -0
  78. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/locales/ru/LC_MESSAGES/messages.po +0 -0
  79. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/locales/uz_Latn/LC_MESSAGES/messages.po +0 -0
  80. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/main.py +0 -0
  81. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/mini_app.py +0 -0
  82. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/multibot/README.MD +0 -0
  83. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/multibot/config.py +0 -0
  84. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/multibot/handlers.py +0 -0
  85. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/multibot/main.py +0 -0
  86. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/multibot/nginx_conf.conf +0 -0
  87. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/register_handler.py +0 -0
  88. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/send_file_example.py +0 -0
  89. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/set_command_example.py +0 -0
  90. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/skip_updates_example.py +0 -0
  91. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/timer_bot_async.py +0 -0
  92. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/update_listener.py +0 -0
  93. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/webhooks/async_webhook_aiohttp_echo_bot.py +0 -0
  94. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/webhooks/run_webhooks.py +0 -0
  95. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/asynchronous_telebot/webhooks/webhook_starlette_echo_bot.py +0 -0
  96. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/callback_data_examples/advanced_calendar_example/filters.py +0 -0
  97. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/callback_data_examples/advanced_calendar_example/keyboards.py +0 -0
  98. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/callback_data_examples/advanced_calendar_example/main.py +0 -0
  99. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/callback_data_examples/simple_products_example.py +0 -0
  100. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/chat_join_request.py +0 -0
  101. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/chat_member_example.py +0 -0
  102. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/continue_handling.py +0 -0
  103. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/create_invite_link.py +0 -0
  104. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/custom_filters/admin_filter_example.py +0 -0
  105. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/custom_filters/advanced_text_filter.py +0 -0
  106. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/custom_filters/general_custom_filters.py +0 -0
  107. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/custom_filters/id_filter_example.py +0 -0
  108. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/custom_filters/is_filter_example.py +0 -0
  109. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/custom_filters/text_filter_example.py +0 -0
  110. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/custom_states.py +0 -0
  111. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/deep_linking.py +0 -0
  112. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/detailed_example/detailed_example.py +0 -0
  113. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/detailed_example/kitten.jpg +0 -0
  114. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/detailed_example/rooster.jpg +0 -0
  115. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/detect_changes.py +0 -0
  116. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/download_file_example.py +0 -0
  117. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/echo_bot.py +0 -0
  118. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/formatting_example.py +0 -0
  119. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/inline_example.py +0 -0
  120. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/inline_keyboard_example.py +0 -0
  121. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/message_reaction_example.py +0 -0
  122. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/README.md +0 -0
  123. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/class_based/antiflood_middleware.py +0 -0
  124. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/class_based/basic_example.py +0 -0
  125. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/class_based/i18n_middleware/i18n_base_middleware.py +0 -0
  126. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/class_based/i18n_middleware/keyboards.py +0 -0
  127. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/class_based/i18n_middleware/locales/en/LC_MESSAGES/messages.po +0 -0
  128. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/class_based/i18n_middleware/locales/ru/LC_MESSAGES/messages.po +0 -0
  129. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/class_based/i18n_middleware/locales/uz_Latn/LC_MESSAGES/messages.po +0 -0
  130. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/class_based/i18n_middleware/main.py +0 -0
  131. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/function_based/i18n.py +0 -0
  132. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/function_based/i18n_gettext/i18n_class.py +0 -0
  133. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/function_based/i18n_gettext/keyboards.py +0 -0
  134. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/function_based/i18n_gettext/locales/en/LC_MESSAGES/messages.po +0 -0
  135. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/function_based/i18n_gettext/locales/ru/LC_MESSAGES/messages.po +0 -0
  136. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/function_based/i18n_gettext/locales/uz_Latn/LC_MESSAGES/messages.po +0 -0
  137. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/function_based/i18n_gettext/main.py +0 -0
  138. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/middleware/function_based/session.py +0 -0
  139. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/mini_app.py +0 -0
  140. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/mini_app_web/index.html +0 -0
  141. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/mini_app_web/script.js +0 -0
  142. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/mini_app_web/style.css +0 -0
  143. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/multibot/README.MD +0 -0
  144. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/multibot/config.py +0 -0
  145. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/multibot/handlers.py +0 -0
  146. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/multibot/main.py +0 -0
  147. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/multibot/nginx_conf.conf +0 -0
  148. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/payments_example.py +0 -0
  149. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/poll_example.py +0 -0
  150. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/register_handler.py +0 -0
  151. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/reply_keyboard_markup_example.py +0 -0
  152. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/serverless/aws_lambda_function.py +0 -0
  153. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/serverless/azure_functions +0 -0
  154. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/serverless/flask_google_cloud_bot/.gcloudignore +0 -0
  155. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/serverless/flask_google_cloud_bot/app.yaml +0 -0
  156. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/serverless/flask_google_cloud_bot/main.py +0 -0
  157. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/set_command_example.py +0 -0
  158. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/skip_updates_example.py +0 -0
  159. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/stars_payment.py +0 -0
  160. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/step_example.py +0 -0
  161. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/telebot_bot/telebot_bot.py +0 -0
  162. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/timer_bot.py +0 -0
  163. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/webhook_examples/README.md +0 -0
  164. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/webhook_examples/run_webhooks.py +0 -0
  165. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/webhook_examples/webhook_aiohttp_echo_bot.py +0 -0
  166. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/webhook_examples/webhook_cherrypy_echo_bot.py +0 -0
  167. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/webhook_examples/webhook_cpython_echo_bot.py +0 -0
  168. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/webhook_examples/webhook_fastapi_echo_bot.py +0 -0
  169. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/webhook_examples/webhook_flask_echo_bot.py +0 -0
  170. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/webhook_examples/webhook_flask_heroku_echo.py +0 -0
  171. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/webhook_examples/webhook_tornado_echo_bot.py +0 -0
  172. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/examples/webhook_examples/webhook_twisted_echo_bot.py +0 -0
  173. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/asyncio_filters.py +0 -0
  174. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/asyncio_handler_backends.py +0 -0
  175. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/asyncio_storage/__init__.py +0 -0
  176. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/asyncio_storage/base_storage.py +0 -0
  177. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/asyncio_storage/memory_storage.py +0 -0
  178. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/asyncio_storage/pickle_storage.py +0 -0
  179. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/asyncio_storage/redis_storage.py +0 -0
  180. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/callback_data.py +0 -0
  181. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/custom_filters.py +0 -0
  182. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/ext/__init__.py +0 -0
  183. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/ext/aio/__init__.py +0 -0
  184. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/ext/aio/webhooks.py +0 -0
  185. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/ext/reloader.py +0 -0
  186. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/ext/sync/__init__.py +0 -0
  187. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/ext/sync/webhooks.py +0 -0
  188. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/formatting.py +0 -0
  189. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/handler_backends.py +0 -0
  190. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/py.typed +0 -0
  191. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/service_utils.py +0 -0
  192. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/states/__init__.py +0 -0
  193. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/states/asyncio/__init__.py +0 -0
  194. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/states/asyncio/context.py +0 -0
  195. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/states/asyncio/middleware.py +0 -0
  196. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/states/sync/__init__.py +0 -0
  197. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/states/sync/context.py +0 -0
  198. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/states/sync/middleware.py +0 -0
  199. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/storage/__init__.py +0 -0
  200. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/storage/base_storage.py +0 -0
  201. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/storage/memory_storage.py +0 -0
  202. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/storage/pickle_storage.py +0 -0
  203. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/telebot/storage/redis_storage.py +0 -0
  204. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/tests/__init__.py +0 -0
  205. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/tests/test_data/record.mp3 +0 -0
  206. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/tests/test_data/record.ogg +0 -0
  207. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/tests/test_data/record.wav +0 -0
  208. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/tests/test_data/test_video.mp4 +0 -0
  209. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/tests/test_handler_backends.py +0 -0
  210. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/tests/test_telebot.py +0 -0
  211. {pytelegrambotapi-4.29.0 → pytelegrambotapi-4.30.0}/tests/test_types.py +0 -0
@@ -20,7 +20,7 @@ jobs:
20
20
  runs-on: ubuntu-latest
21
21
  strategy:
22
22
  matrix:
23
- python-version: [ '3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10']
23
+ python-version: [ '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.11']
24
24
  name: ${{ matrix.python-version }} and tests
25
25
  steps:
26
26
  - uses: actions/checkout@v2
@@ -1,10 +1,10 @@
1
1
  language: python
2
2
  python:
3
- - "3.9"
4
3
  - "3.10"
5
4
  - "3.11"
6
5
  - "3.12"
7
6
  - "3.13"
7
+ - "3.14"
8
8
  - "pypy3"
9
9
  install: "pip install -r requirements.txt"
10
10
  script:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyTelegramBotAPI
3
- Version: 4.29.0
3
+ Version: 4.30.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
@@ -14,11 +14,11 @@ Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Environment :: Console
15
15
  Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
16
16
  Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.9
18
17
  Classifier: Programming Language :: Python :: 3.10
19
18
  Classifier: Programming Language :: Python :: 3.11
20
19
  Classifier: Programming Language :: Python :: 3.12
21
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
22
  Requires-Python: >=3.9
23
23
  Requires-Dist: requests
24
24
  Provides-Extra: coloredlogs
@@ -613,7 +613,7 @@ Refer [Bot Api](https://core.telegram.org/bots/api#messageentity) for extra deta
613
613
 
614
614
  ## Advanced use of the API
615
615
 
616
- ### Using local Bot API Sever
616
+ ### Using local Bot API Server
617
617
  Since version 5.0 of the Bot API, you have the possibility to run your own [Local Bot API Server](https://core.telegram.org/bots/api#using-a-local-bot-api-server).
618
618
  pyTelegramBotAPI also supports this feature.
619
619
  ```python
@@ -572,7 +572,7 @@ Refer [Bot Api](https://core.telegram.org/bots/api#messageentity) for extra deta
572
572
 
573
573
  ## Advanced use of the API
574
574
 
575
- ### Using local Bot API Sever
575
+ ### Using local Bot API Server
576
576
  Since version 5.0 of the Bot API, you have the possibility to run your own [Local Bot API Server](https://core.telegram.org/bots/api#using-a-local-bot-api-server).
577
577
  pyTelegramBotAPI also supports this feature.
578
578
  ```python
@@ -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.29.0'
25
+ release = '4.30.0'
26
26
 
27
27
 
28
28
  # -- General configuration ---------------------------------------------------
@@ -1,4 +1,4 @@
1
1
  pyTelegramBotAPI==4.11.0
2
2
  Flask==3.0.0
3
3
  gunicorn==23.0.0
4
- Werkzeug==3.0.6
4
+ Werkzeug==3.1.5
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pyTelegramBotAPI"
7
- version = "4.29.0"
7
+ version = "4.30.0"
8
8
  description = "Python Telegram bot API."
9
9
  authors = [{name = "eternnoir", email = "eternnoir@gmail.com"}]
10
10
  license = {text = "GPL2"}
@@ -14,11 +14,11 @@ keywords = ["telegram", "bot", "api", "tools"]
14
14
  classifiers = [
15
15
  "Development Status :: 5 - Production/Stable",
16
16
  "Programming Language :: Python :: 3",
17
- "Programming Language :: Python :: 3.9",
18
17
  "Programming Language :: Python :: 3.10",
19
18
  "Programming Language :: Python :: 3.11",
20
19
  "Programming Language :: Python :: 3.12",
21
20
  "Programming Language :: Python :: 3.13",
21
+ "Programming Language :: Python :: 3.14",
22
22
  "Environment :: Console",
23
23
  "License :: OSI Approved :: GNU General Public License v2 (GPLv2)"
24
24
  ]
@@ -1,4 +1,4 @@
1
1
  pytest
2
2
  requests==2.32.4
3
3
  wheel==0.38.1
4
- aiohttp==3.12.14
4
+ aiohttp==3.13.3
@@ -1827,7 +1827,8 @@ class TeleBot:
1827
1827
  message_thread_id: Optional[int]=None,
1828
1828
  video_start_timestamp: Optional[int]=None,
1829
1829
  direct_messages_topic_id: Optional[int]=None,
1830
- suggested_post_parameters: Optional[types.SuggestedPostParameters]=None) -> types.Message:
1830
+ suggested_post_parameters: Optional[types.SuggestedPostParameters]=None,
1831
+ message_effect_id: Optional[str]=None) -> types.Message:
1831
1832
  """
1832
1833
  Use this method to forward messages of any kind.
1833
1834
 
@@ -1866,6 +1867,9 @@ class TeleBot:
1866
1867
  is automatically declined.
1867
1868
  :type suggested_post_parameters: :class:`telebot.types.SuggestedPostParameters`
1868
1869
 
1870
+ :param message_effect_id: Unique identifier of the message effect to be added to the message; only available when forwarding to private chats
1871
+ :type message_effect_id: :obj:`str`
1872
+
1869
1873
  :return: On success, the sent Message is returned.
1870
1874
  :rtype: :class:`telebot.types.Message`
1871
1875
  """
@@ -1877,7 +1881,7 @@ class TeleBot:
1877
1881
  self.token, chat_id, from_chat_id, message_id, disable_notification=disable_notification,
1878
1882
  timeout=timeout, protect_content=protect_content, message_thread_id=message_thread_id,
1879
1883
  video_start_timestamp=video_start_timestamp, direct_messages_topic_id=direct_messages_topic_id,
1880
- suggested_post_parameters=suggested_post_parameters
1884
+ suggested_post_parameters=suggested_post_parameters, message_effect_id=message_effect_id
1881
1885
  )
1882
1886
  )
1883
1887
 
@@ -1901,7 +1905,8 @@ class TeleBot:
1901
1905
  allow_paid_broadcast: Optional[bool]=None,
1902
1906
  video_start_timestamp: Optional[int]=None,
1903
1907
  direct_messages_topic_id: Optional[int]=None,
1904
- suggested_post_parameters: Optional[types.SuggestedPostParameters]=None) -> types.MessageID:
1908
+ suggested_post_parameters: Optional[types.SuggestedPostParameters]=None,
1909
+ message_effect_id: Optional[str]=None) -> types.MessageID:
1905
1910
  """
1906
1911
  Use this method to copy messages of any kind.
1907
1912
  Service messages, paid media messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied.
@@ -1973,6 +1978,9 @@ class TeleBot:
1973
1978
  is automatically declined.
1974
1979
  :type suggested_post_parameters: :class:`telebot.types.SuggestedPostParameters`
1975
1980
 
1981
+ :param message_effect_id: Unique identifier of the message effect to be added to the message; only available when copying to private chats
1982
+ :type message_effect_id: :obj:`str`
1983
+
1976
1984
  :return: On success, the MessageId of the sent message is returned.
1977
1985
  :rtype: :class:`telebot.types.MessageID`
1978
1986
  """
@@ -2006,7 +2014,7 @@ class TeleBot:
2006
2014
  message_thread_id=message_thread_id, reply_parameters=reply_parameters,
2007
2015
  show_caption_above_media=show_caption_above_media, allow_paid_broadcast=allow_paid_broadcast,
2008
2016
  video_start_timestamp=video_start_timestamp, direct_messages_topic_id=direct_messages_topic_id,
2009
- suggested_post_parameters=suggested_post_parameters
2017
+ suggested_post_parameters=suggested_post_parameters, message_effect_id=message_effect_id
2010
2018
  ))
2011
2019
 
2012
2020
 
@@ -4195,6 +4203,45 @@ class TeleBot:
4195
4203
  business_connection_id=business_connection_id, message_effect_id=message_effect_id, allow_paid_broadcast=allow_paid_broadcast,
4196
4204
  direct_messages_topic_id=direct_messages_topic_id, suggested_post_parameters=suggested_post_parameters)
4197
4205
  )
4206
+
4207
+
4208
+ def send_message_draft(
4209
+ self, chat_id: int,
4210
+ draft_id: int,
4211
+ text: str,
4212
+ message_thread_id: Optional[int]=None,
4213
+ parse_mode: Optional[str]=None,
4214
+ entities: Optional[List[types.MessageEntity]]=None):
4215
+ """
4216
+ Use this method to stream a partial message to a user while the message is being generated;
4217
+ supported only for bots with forum topic mode enabled. Returns True on success.
4218
+
4219
+ Telegram documentation: https://core.telegram.org/bots/api#sendmessagedraft
4220
+
4221
+ :param chat_id: Unique identifier for the target private chat
4222
+ :type chat_id: :obj:`int`
4223
+
4224
+ :param message_thread_id: Unique identifier for the target message thread
4225
+ :type message_thread_id: :obj:`int`
4226
+
4227
+ :param draft_id: Unique identifier of the message draft; must be non-zero. Changes of drafts with the same identifier are animated
4228
+ :type draft_id: :obj:`int`
4229
+
4230
+ :param text: Text of the message to be sent, 1-4096 characters after entities parsing
4231
+ :type text: :obj:`str`
4232
+
4233
+ :param parse_mode: Mode for parsing entities in the message text. See formatting options for more details.
4234
+ :type parse_mode: :obj:`str`
4235
+
4236
+ :param entities: A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode
4237
+ :type entities: :obj:`list` of :class:`telebot.types.MessageEntity
4238
+
4239
+ :return: Returns True on success.
4240
+ :rtype: :obj:`bool`
4241
+ """
4242
+ return apihelper.send_message_draft(
4243
+ self.token, chat_id, draft_id, text, parse_mode=parse_mode, entities=entities, message_thread_id=message_thread_id)
4244
+
4198
4245
 
4199
4246
 
4200
4247
  def send_chat_action(
@@ -4222,7 +4269,7 @@ class TeleBot:
4222
4269
  :param timeout: Timeout in seconds for the request.
4223
4270
  :type timeout: :obj:`int`
4224
4271
 
4225
- :param message_thread_id: The thread identifier of a message from which the reply will be sent(supergroups only)
4272
+ :param message_thread_id: The thread identifier of a message from which the reply will be sent(for supergroups and private chats)
4226
4273
  :type message_thread_id: :obj:`int`
4227
4274
 
4228
4275
  :param business_connection_id: Identifier of a business connection
@@ -6909,7 +6956,10 @@ class TeleBot:
6909
6956
  exclude_unique: Optional[bool]=None,
6910
6957
  sort_by_price: Optional[bool]=None,
6911
6958
  offset: Optional[str]=None,
6912
- limit: Optional[int]=None) -> types.OwnedGifts:
6959
+ limit: Optional[int]=None,
6960
+ exclude_limited_upgradable: Optional[bool]=None,
6961
+ exclude_limited_non_upgradable: Optional[bool]=None,
6962
+ exclude_from_blockchain: Optional[bool]=None,) -> types.OwnedGifts:
6913
6963
  """
6914
6964
  Returns the gifts received and owned by a managed business account. Requires the can_view_gifts_and_stars business bot right. Returns OwnedGifts on success.
6915
6965
 
@@ -6927,12 +6977,15 @@ class TeleBot:
6927
6977
  :param exclude_unlimited: Pass True to exclude gifts that can be purchased an unlimited number of times
6928
6978
  :type exclude_unlimited: :obj:`bool`
6929
6979
 
6930
- :param exclude_limited: Pass True to exclude gifts that can be purchased a limited number of times
6980
+ :param exclude_limited: Deprecated, use exclude_limited_upgradable and exclude_limited_non_upgradable instead.
6931
6981
  :type exclude_limited: :obj:`bool`
6932
6982
 
6933
6983
  :param exclude_unique: Pass True to exclude unique gifts
6934
6984
  :type exclude_unique: :obj:`bool`
6935
6985
 
6986
+ :param exclude_from_blockchain: Pass True to exclude gifts that were assigned from the TON blockchain and can't be resold or transferred in Telegram
6987
+ :type exclude_from_blockchain: :obj:`bool`
6988
+
6936
6989
  :param sort_by_price: Pass True to sort results by gift price instead of send date. Sorting is applied before pagination.
6937
6990
  :type sort_by_price: :obj:`bool`
6938
6991
 
@@ -6942,16 +6995,163 @@ class TeleBot:
6942
6995
  :param limit: The maximum number of gifts to be returned; 1-100. Defaults to 100
6943
6996
  :type limit: :obj:`int`
6944
6997
 
6998
+ :param exclude_limited_upgradable: Pass True to exclude gifts that can be purchased a limited number of times and can be upgraded to unique
6999
+ :type exclude_limited_upgradable: :obj:`bool`
7000
+
7001
+ :param exclude_limited_non_upgradable: Pass True to exclude gifts that can be purchased a limited number of times and can't be upgraded to unique
7002
+ :type exclude_limited_non_upgradable: :obj:`bool`
7003
+
6945
7004
  :return: On success, a OwnedGifts object is returned.
6946
7005
  :rtype: :class:`telebot.types.OwnedGifts`
6947
7006
  """
7007
+
7008
+ if exclude_limited is not None:
7009
+ logger.warning("Deprecation warning. 'exclude_limited' parameter is deprecated in get_business_account_gifts. Use 'exclude_limited_upgradable' and 'exclude_limited_non_upgradable' instead.")
7010
+
7011
+ if exclude_limited_upgradable is not None or exclude_limited_non_upgradable is not None:
7012
+ logger.warning("Both 'exclude_limited' and 'exclude_limited_upgradable'/'exclude_limited_non_upgradable' parameters are set: conflicting, using 'exclude_limited_upgradable' and 'exclude_limited_non_upgradable' values.")
7013
+
7014
+ else:
7015
+ exclude_limited_upgradable = exclude_limited
7016
+ exclude_limited_non_upgradable = exclude_limited
7017
+
6948
7018
  return types.OwnedGifts.de_json(
6949
7019
  apihelper.get_business_account_gifts(
6950
7020
  self.token, business_connection_id,
6951
7021
  exclude_unsaved=exclude_unsaved,
6952
7022
  exclude_saved=exclude_saved,
6953
7023
  exclude_unlimited=exclude_unlimited,
6954
- exclude_limited=exclude_limited,
7024
+ exclude_unique=exclude_unique,
7025
+ sort_by_price=sort_by_price,
7026
+ offset=offset,
7027
+ limit=limit,
7028
+ exclude_limited_upgradable=exclude_limited_upgradable,
7029
+ exclude_limited_non_upgradable=exclude_limited_non_upgradable,
7030
+ exclude_from_blockchain=exclude_from_blockchain
7031
+ )
7032
+ )
7033
+
7034
+ def get_user_gifts(
7035
+ self, user_id: int,
7036
+ exclude_unlimited: Optional[bool]=None,
7037
+ exclude_limited_upgradable: Optional[bool]=None,
7038
+ exclude_limited_non_upgradable: Optional[bool]=None,
7039
+ exclude_from_blockchain: Optional[bool]=None,
7040
+ exclude_unique: Optional[bool]=None,
7041
+ sort_by_price: Optional[bool]=None,
7042
+ offset: Optional[str]=None,
7043
+ limit: Optional[int]=None) -> types.OwnedGifts:
7044
+ """
7045
+ Returns the gifts owned and hosted by a user. Returns OwnedGifts on success.
7046
+
7047
+ Telegram documentation: https://core.telegram.org/bots/api#getusergifts
7048
+
7049
+ :param user_id: Unique identifier of the user
7050
+ :type user_id: :obj:`int`
7051
+
7052
+ :param exclude_unlimited: Pass True to exclude gifts that can be purchased an unlimited number of times
7053
+ :type exclude_unlimited: :obj:`bool`
7054
+
7055
+ :param exclude_limited_upgradable: Pass True to exclude gifts that can be purchased a limited number of times and can be upgraded to unique
7056
+ :type exclude_limited_upgradable: :obj:`bool`
7057
+
7058
+ :param exclude_limited_non_upgradable: Pass True to exclude gifts that can be purchased a limited number of times and can't be upgraded to unique
7059
+ :type exclude_limited_non_upgradable: :obj:`bool`
7060
+
7061
+ :param exclude_from_blockchain: Pass True to exclude gifts that were assigned from the TON blockchain and can't be resold or transferred in Telegram
7062
+ :type exclude_from_blockchain: :obj:`bool`
7063
+
7064
+ :param exclude_unique: Pass True to exclude unique gifts
7065
+ :type exclude_unique: :obj:`bool`
7066
+
7067
+ :param sort_by_price: Pass True to sort results by gift price instead of send date. Sorting is applied before pagination.
7068
+ :type sort_by_price: :obj:`bool`
7069
+
7070
+ :param offset: Offset of the first entry to return as received from the previous request; use an empty string to get the first chunk of results
7071
+ :type offset: :obj:`str`
7072
+
7073
+ :param limit: The maximum number of gifts to be returned; 1-100. Defaults to 100
7074
+ :type limit: :obj:`int`
7075
+
7076
+ :return: On success, a OwnedGifts object is returned.
7077
+ :rtype: :class:`telebot.types.OwnedGifts`
7078
+ """
7079
+ return types.OwnedGifts.de_json(
7080
+ apihelper.get_user_gifts(
7081
+ self.token, user_id,
7082
+ exclude_unlimited=exclude_unlimited,
7083
+ exclude_limited_upgradable=exclude_limited_upgradable,
7084
+ exclude_limited_non_upgradable=exclude_limited_non_upgradable,
7085
+ exclude_from_blockchain=exclude_from_blockchain,
7086
+ exclude_unique=exclude_unique,
7087
+ sort_by_price=sort_by_price,
7088
+ offset=offset,
7089
+ limit=limit
7090
+ )
7091
+ )
7092
+
7093
+ def get_chat_gifts(
7094
+ self, chat_id: Union[int, str],
7095
+ exclude_unsaved: Optional[bool]=None,
7096
+ exclude_saved: Optional[bool]=None,
7097
+ exclude_unlimited: Optional[bool]=None,
7098
+ exclude_limited_upgradable: Optional[bool]=None,
7099
+ exclude_limited_non_upgradable: Optional[bool]=None,
7100
+ exclude_from_blockchain: Optional[bool]=None,
7101
+ exclude_unique: Optional[bool]=None,
7102
+ sort_by_price: Optional[bool]=None,
7103
+ offset: Optional[str]=None,
7104
+ limit: Optional[int]=None) -> types.OwnedGifts:
7105
+ """
7106
+ Returns the gifts owned by a chat. Returns OwnedGifts on success.
7107
+
7108
+ Telegram documentation: https://core.telegram.org/bots/api#getchatgifts
7109
+
7110
+ :param chat_id: Unique identifier for the target chat or username of the target channel (in the format @channelusername)
7111
+ :type chat_id: :obj:`int` | :obj:`str`
7112
+
7113
+ :param exclude_unsaved: Pass True to exclude gifts that aren't saved to the chat's profile page. Always True, unless the bot has the can_post_messages administrator right in the channel.
7114
+ :type exclude_unsaved: :obj:`bool`
7115
+
7116
+ :param exclude_saved: Pass True to exclude gifts that are saved to the chat's profile page. Always False, unless the bot has the can_post_messages administrator right in the channel.
7117
+ :type exclude_saved: :obj:`bool`
7118
+
7119
+ :param exclude_unlimited: Pass True to exclude gifts that can be purchased an unlimited number of times
7120
+ :type exclude_unlimited: :obj:`bool`
7121
+
7122
+ :param exclude_limited_upgradable: Pass True to exclude gifts that can be purchased a limited number of times and can be upgraded to unique
7123
+ :type exclude_limited_upgradable: :obj:`bool`
7124
+
7125
+ :param exclude_limited_non_upgradable: Pass True to exclude gifts that can be purchased a limited number of times and can't be upgraded to unique
7126
+ :type exclude_limited_non_upgradable: :obj:`bool`
7127
+
7128
+ :param exclude_from_blockchain: Pass True to exclude gifts that were assigned from the TON blockchain and can't be resold or transferred in Telegram
7129
+ :type exclude_from_blockchain: :obj:`bool`
7130
+
7131
+ :param exclude_unique: Pass True to exclude unique gifts
7132
+ :type exclude_unique: :obj:`bool`
7133
+
7134
+ :param sort_by_price: Pass True to sort results by gift price instead of send date. Sorting is applied before pagination.
7135
+ :type sort_by_price: :obj:`bool`
7136
+
7137
+ :param offset: Offset of the first entry to return as received from the previous request; use an empty string to get the first chunk of results
7138
+ :type offset: :obj:`str`
7139
+
7140
+ :param limit: The maximum number of gifts to be returned; 1-100. Defaults to 100
7141
+ :type limit: :obj:`int`
7142
+
7143
+ :return: On success, a OwnedGifts object is returned.
7144
+ :rtype: :class:`telebot.types.OwnedGifts`
7145
+ """
7146
+ return types.OwnedGifts.de_json(
7147
+ apihelper.get_chat_gifts(
7148
+ self.token, chat_id,
7149
+ exclude_unsaved=exclude_unsaved,
7150
+ exclude_saved=exclude_saved,
7151
+ exclude_unlimited=exclude_unlimited,
7152
+ exclude_limited_upgradable=exclude_limited_upgradable,
7153
+ exclude_limited_non_upgradable=exclude_limited_non_upgradable,
7154
+ exclude_from_blockchain=exclude_from_blockchain,
6955
7155
  exclude_unique=exclude_unique,
6956
7156
  sort_by_price=sort_by_price,
6957
7157
  offset=offset,
@@ -6959,6 +7159,7 @@ class TeleBot:
6959
7159
  )
6960
7160
  )
6961
7161
 
7162
+
6962
7163
  def convert_gift_to_stars(self, business_connection_id: str, owned_gift_id: str) -> bool:
6963
7164
  """
6964
7165
  Converts a given regular gift to Telegram Stars. Requires the can_convert_gifts_to_stars business bot right. Returns True on success.
@@ -7096,6 +7297,50 @@ class TeleBot:
7096
7297
  )
7097
7298
  )
7098
7299
 
7300
+ def repost_story(
7301
+ self, business_connection_id: str,
7302
+ from_chat_id: int, from_story_id: int,
7303
+ active_period: int,
7304
+ post_to_chat_page: Optional[bool]=None,
7305
+ protect_content: Optional[bool]=None) -> types.Story:
7306
+ """
7307
+ Reposts a story on behalf of a business account from another business account. Both business accounts
7308
+ must be managed by the same bot, and the story on the source account must have been posted (or reposted)
7309
+ by the bot. Requires the can_manage_stories business bot right for both business accounts. Returns Story on success.
7310
+
7311
+ Telegram documentation: https://core.telegram.org/bots/api#repoststory
7312
+
7313
+ :param business_connection_id: Unique identifier of the business connection
7314
+ :type business_connection_id: :obj:`str`
7315
+
7316
+ :param from_chat_id: Unique identifier of the chat which posted the story that should be reposted
7317
+ :type from_chat_id: :obj:`int`
7318
+
7319
+ :param from_story_id: Unique identifier of the story that should be reposted
7320
+ :type from_story_id: :obj:`int`
7321
+
7322
+ :param active_period: Period after which the story is moved to the archive, in seconds; must be one of 6 * 3600, 12 * 3600, 86400, or 2 * 86400
7323
+ :type active_period: :obj:`int`
7324
+
7325
+ :param post_to_chat_page: Pass True to keep the story accessible after it expires
7326
+ :type post_to_chat_page: :obj:`bool`
7327
+
7328
+ :param protect_content: Pass True if the content of the story must be protected from forwarding and screenshotting
7329
+ :type protect_content: :obj:`bool`
7330
+
7331
+ :return: On success, a Story object is returned.
7332
+ :rtype: :class:`telebot.types.Story`
7333
+ """
7334
+ return types.Story.de_json(
7335
+ apihelper.repost_story(
7336
+ self.token, business_connection_id,
7337
+ from_chat_id, from_story_id,
7338
+ active_period,
7339
+ post_to_chat_page=post_to_chat_page,
7340
+ protect_content=protect_content
7341
+ )
7342
+ )
7343
+
7099
7344
  def edit_story(
7100
7345
  self, business_connection_id: str, story_id: int,
7101
7346
  content: types.InputStoryContent,
@@ -7408,7 +7653,7 @@ class TeleBot:
7408
7653
  if contains_masks is not None:
7409
7654
  logger.warning('The parameter "contains_masks" is deprecated, use "sticker_type" instead')
7410
7655
  if sticker_type is None:
7411
- sticker_type = 'mask' if contains_masks else 'regular'
7656
+ sticker_type = 'mask' if contains_masks else 'regular'
7412
7657
 
7413
7658
  if stickers is None:
7414
7659
  stickers = png_sticker or tgs_sticker or webm_sticker