python-trueconf-bot 1.1.2__tar.gz → 1.1.3__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 (183) hide show
  1. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/PKG-INFO +1 -1
  2. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/python_trueconf_bot.egg-info/PKG-INFO +1 -1
  3. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/_version.py +3 -3
  4. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/dispatcher/dispatcher.py +12 -5
  5. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/dispatcher/router.py +89 -89
  6. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/filters/command.py +2 -1
  7. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/.github/workflows/docs.yml +0 -0
  8. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/.github/workflows/release-test.yml +0 -0
  9. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/.github/workflows/release.yml +0 -0
  10. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/.gitignore +0 -0
  11. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/LICENSE +0 -0
  12. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/README-PyPI.md +0 -0
  13. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/README-ru.md +0 -0
  14. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/README.md +0 -0
  15. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/assets/head_en.png +0 -0
  16. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/assets/head_ru.png +0 -0
  17. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/assets/logo.svg +0 -0
  18. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/examples/echo_bot.md +0 -0
  19. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/examples/multibot.md +0 -0
  20. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/features.md +0 -0
  21. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/img/head.png +0 -0
  22. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/index.md +0 -0
  23. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/learn/enums.md +0 -0
  24. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/learn/files.md +0 -0
  25. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/learn/filters.md +0 -0
  26. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/learn/getting-started.md +0 -0
  27. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/learn/parse-messages.md +0 -0
  28. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/learn/types.md +0 -0
  29. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/reference/Bot.md +0 -0
  30. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/reference/Dispatcher.md +0 -0
  31. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/reference/Enums.md +0 -0
  32. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/reference/Router.md +0 -0
  33. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/reference/Types.md +0 -0
  34. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/reference/index.md +0 -0
  35. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/en/release_notes.md +0 -0
  36. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/img/chatbot.svg +0 -0
  37. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/img/favicon.ico +0 -0
  38. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/img/logo.svg +0 -0
  39. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/overrides/main.html +0 -0
  40. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/examples/echo_bot.md +0 -0
  41. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/examples/multibot.md +0 -0
  42. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/features.md +0 -0
  43. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/img/head.png +0 -0
  44. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/index.md +0 -0
  45. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/learn/enums.md +0 -0
  46. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/learn/files.md +0 -0
  47. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/learn/filters.md +0 -0
  48. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/learn/getting-started.md +0 -0
  49. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/learn/parse-messages.md +0 -0
  50. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/learn/types.md +0 -0
  51. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/ru/release_notes.md +0 -0
  52. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/docs/stylesheets/extra.css +0 -0
  53. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/examples/README-ru.md +0 -0
  54. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/examples/README.md +0 -0
  55. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/examples/filters.py +0 -0
  56. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/examples/update_token.py +0 -0
  57. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/mkdocs.yml +0 -0
  58. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/pyproject.toml +0 -0
  59. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/python_trueconf_bot.egg-info/SOURCES.txt +0 -0
  60. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/python_trueconf_bot.egg-info/dependency_links.txt +0 -0
  61. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/python_trueconf_bot.egg-info/requires.txt +0 -0
  62. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/python_trueconf_bot.egg-info/top_level.txt +0 -0
  63. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/requirements-docs.txt +0 -0
  64. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/requirements.txt +0 -0
  65. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/setup.cfg +0 -0
  66. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/__init__.py +0 -0
  67. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/client/__init__.py +0 -0
  68. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/client/bot.py +0 -0
  69. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/client/context_controller.py +0 -0
  70. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/client/session.py +0 -0
  71. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/dispatcher/__init__.py +0 -0
  72. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/__init__.py +0 -0
  73. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/aouth_error.py +0 -0
  74. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/chat_participant_role.py +0 -0
  75. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/chat_type.py +0 -0
  76. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/envelope_author_type.py +0 -0
  77. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/file_ready_state.py +0 -0
  78. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/incoming_update_method.py +0 -0
  79. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/message_type.py +0 -0
  80. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/parse_mode.py +0 -0
  81. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/survey_type.py +0 -0
  82. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/enums/update_type.py +0 -0
  83. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/exceptions.py +0 -0
  84. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/filters/__init__.py +0 -0
  85. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/filters/base.py +0 -0
  86. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/filters/instance_of.py +0 -0
  87. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/filters/message.py +0 -0
  88. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/filters/method.py +0 -0
  89. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/loggers.py +0 -0
  90. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/__init__.py +0 -0
  91. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/add_participant_to_chat.py +0 -0
  92. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/auth.py +0 -0
  93. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/base.py +0 -0
  94. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/change_participant_role.py +0 -0
  95. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/create_channel.py +0 -0
  96. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/create_favorites_chat.py +0 -0
  97. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/create_group_chat.py +0 -0
  98. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/create_p2p_chat.py +0 -0
  99. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/edit_message.py +0 -0
  100. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/edit_survey.py +0 -0
  101. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/forward_message.py +0 -0
  102. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/get_chat_by_id.py +0 -0
  103. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/get_chat_history.py +0 -0
  104. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/get_chat_participants.py +0 -0
  105. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/get_chats.py +0 -0
  106. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/get_file_info.py +0 -0
  107. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/get_message_by_id.py +0 -0
  108. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/get_user_display_name.py +0 -0
  109. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/has_chat_participant.py +0 -0
  110. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/remove_chat.py +0 -0
  111. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/remove_message.py +0 -0
  112. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/remove_participant_from_chat.py +0 -0
  113. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/send_file.py +0 -0
  114. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/send_message.py +0 -0
  115. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/send_survey.py +0 -0
  116. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/subscribe_file_progress.py +0 -0
  117. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/unsubscribe_file_progress.py +0 -0
  118. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/methods/upload_file.py +0 -0
  119. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/py.typed +0 -0
  120. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/__init__.py +0 -0
  121. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/author_box.py +0 -0
  122. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/chat_participant.py +0 -0
  123. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/__init__.py +0 -0
  124. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/attachment.py +0 -0
  125. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/base.py +0 -0
  126. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/chat_created.py +0 -0
  127. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/document.py +0 -0
  128. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/forward_message.py +0 -0
  129. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/photo.py +0 -0
  130. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/remove_participant.py +0 -0
  131. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/sticker.py +0 -0
  132. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/survey.py +0 -0
  133. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/text.py +0 -0
  134. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/content/video.py +0 -0
  135. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/input_file.py +0 -0
  136. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/last_message.py +0 -0
  137. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/message.py +0 -0
  138. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/parser.py +0 -0
  139. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/__init__.py +0 -0
  140. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/added_chat_participant.py +0 -0
  141. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/changed_participant_role.py +0 -0
  142. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/created_channel.py +0 -0
  143. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/created_favorites_chat.py +0 -0
  144. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/created_group_chat.py +0 -0
  145. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/created_personal_chat.py +0 -0
  146. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/edited_message.py +0 -0
  147. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/removed_chat.py +0 -0
  148. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/removed_chat_participant.py +0 -0
  149. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/removed_message.py +0 -0
  150. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/requests/uploading_progress.py +0 -0
  151. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/__init__.py +0 -0
  152. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/add_chat_participant_response.py +0 -0
  153. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/api_error.py +0 -0
  154. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/auth_response_payload.py +0 -0
  155. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/change_participant_role_response.py +0 -0
  156. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/create_channel_response.py +0 -0
  157. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/create_favorites_chat_response.py +0 -0
  158. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/create_group_chat_response.py +0 -0
  159. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/create_p2p_chat_response.py +0 -0
  160. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/edit_message_response.py +0 -0
  161. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/edit_survey_response.py +0 -0
  162. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/forward_message_response.py +0 -0
  163. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/get_chat_by_id_response.py +0 -0
  164. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/get_chat_history_response.py +0 -0
  165. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/get_chat_participants_response.py +0 -0
  166. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/get_chats_response.py +0 -0
  167. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/get_file_info_response.py +0 -0
  168. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/get_message_by_id_response.py +0 -0
  169. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/get_user_display_name_response.py +0 -0
  170. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/has_chat_participant_response.py +0 -0
  171. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/remove_chat_participant_response.py +0 -0
  172. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/remove_chat_response.py +0 -0
  173. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/remove_message_response.py +0 -0
  174. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/send_file_response.py +0 -0
  175. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/send_message_response.py +0 -0
  176. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/send_survey_response.py +0 -0
  177. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/subscribe_file_progress_response.py +0 -0
  178. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/unsubscribe_file_progress_response.py +0 -0
  179. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/responses/upload_file_response.py +0 -0
  180. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/types/update.py +0 -0
  181. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/utils/__init__.py +0 -0
  182. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/utils/generate_secret_for_survey.py +0 -0
  183. {python_trueconf_bot-1.1.2 → python_trueconf_bot-1.1.3}/trueconf/utils/token.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-trueconf-bot
3
- Version: 1.1.2
3
+ Version: 1.1.3
4
4
  Summary: Lightweight and powerful framework for the TrueConf Server Chatbot API
5
5
  Author-email: TrueConf LLC <info@trueconf.com>, Anton Baadzhi <baadzhianton@gmail.com>
6
6
  License-Expression: BSD-3-Clause-Clear
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-trueconf-bot
3
- Version: 1.1.2
3
+ Version: 1.1.3
4
4
  Summary: Lightweight and powerful framework for the TrueConf Server Chatbot API
5
5
  Author-email: TrueConf LLC <info@trueconf.com>, Anton Baadzhi <baadzhianton@gmail.com>
6
6
  License-Expression: BSD-3-Clause-Clear
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '1.1.2'
32
- __version_tuple__ = version_tuple = (1, 1, 2)
31
+ __version__ = version = '1.1.3'
32
+ __version_tuple__ = version_tuple = (1, 1, 3)
33
33
 
34
- __commit_id__ = commit_id = 'g3a483a550'
34
+ __commit_id__ = commit_id = 'g4227707ff'
@@ -49,8 +49,15 @@ class Dispatcher:
49
49
  Returns:
50
50
  None
51
51
  """
52
- for root in self.routers:
53
- for r in root._iter_all():
54
- handled = await r._feed(event)
55
- if handled:
56
- return
52
+
53
+ async def progress_router(router, count = 0):
54
+ handled = await router._feed(event)
55
+ if count < 0 or count >= len(router._subrouters):
56
+ return
57
+ if (not handled) or (handled and router.allow_child_on_event):
58
+ subrouter = router._subrouters[count]
59
+ return await progress_router(subrouter, count=len(router._subrouters) - 1)
60
+ return
61
+
62
+ for router in self.routers:
63
+ await progress_router(router)
@@ -58,17 +58,13 @@ class Router:
58
58
  If you have multiple routers, use `.include_router()` to add them to a parent router.
59
59
  """
60
60
 
61
- def __init__(self, name: str | None = None, stop_on_first: bool = True):
61
+ def __init__(self, name: str | None = None, allow_child_on_event: bool = False):
62
62
 
63
63
  self.name = name or hex(id(self))
64
- self.stop_on_first = stop_on_first
64
+ self.allow_child_on_event = allow_child_on_event
65
65
  self._handlers: List[Tuple[Tuple[FilterLike, ...], Handler]] = []
66
66
  self._subrouters: List["Router"] = []
67
67
 
68
- def include_router(self, router: "Router") -> None:
69
- """Include a child router for hierarchical event routing."""
70
- self._subrouters.append(router)
71
-
72
68
  def _iter_all(self) -> List["Router"]:
73
69
  """Return a list of this router and all nested subrouters recursively."""
74
70
  out = [self]
@@ -76,89 +72,6 @@ class Router:
76
72
  out.extend(child._iter_all())
77
73
  return out
78
74
 
79
- def event(self, method: str, *filters: FilterLike):
80
- """
81
- Register a handler for a generic event type, filtered by method name.
82
-
83
- Examples:
84
- >>> @r.event(F.method == "SendMessage")
85
- >>> async def handle_message(msg: Message): ...
86
-
87
- """
88
- mf = MethodFilter(method)
89
- return self._register((mf, *filters))
90
-
91
- def message(self, *filters: FilterLike):
92
- """Register a handler for incoming `Message` events."""
93
- return self._register((InstanceOfFilter(Message), *filters))
94
-
95
- def uploading_progress(self, *filters: FilterLike):
96
- """Register a handler for file uploading progress events."""
97
- return self._register((InstanceOfFilter(UploadingProgress), *filters))
98
-
99
- def changed_participant_role(self, *filters: FilterLike):
100
- """
101
- **Requires TrueConf Server 5.5.2+**
102
- Registers a handler for participant role change events in chats.
103
-
104
- This handler is triggered when a user's role is changed in a personal chat, group chat, channel,
105
- or conference chat. Used with the `ChangedParticipantRole` event type.
106
-
107
- Args:
108
- *filters (FilterLike): Optional filters to apply to the event. Multiple filters can be specified.
109
-
110
- Returns:
111
- Callable: A decorator function for registering the handler.
112
-
113
- Example:
114
- ```python
115
- from trueconf.enums import ChatParticipantRole as role
116
- from trueconf.types import ChangedParticipantRole
117
-
118
- @router.changed_participant_role()
119
- async def on_role_changed(event: ChangedParticipantRole):
120
- if event.role == role.admin:
121
- print(f"{event.user_id} has been promoted to admin in chat {event.chat_id}")
122
- ```
123
- """
124
- return self._register((InstanceOfFilter(ChangedParticipantRole), *filters))
125
-
126
- def created_personal_chat(self, *filters: FilterLike):
127
- """Register a handler for personal chat creation events."""
128
- return self._register((InstanceOfFilter(CreatedPersonalChat), *filters))
129
-
130
- def created_group_chat(self, *filters: FilterLike):
131
- """Register a handler for group chat creation events."""
132
- return self._register((InstanceOfFilter(CreatedGroupChat), *filters))
133
-
134
- def created_favorites_chat(self, *filters: FilterLike):
135
- """**Requires TrueConf Server 5.5.2+**. Register a handler for favorites chat creation events."""
136
- return self._register((InstanceOfFilter(CreatedFavoritesChat), *filters))
137
-
138
- def created_channel(self, *filters: FilterLike):
139
- """Register a handler for channel creation events."""
140
- return self._register((InstanceOfFilter(CreatedChannel), *filters))
141
-
142
- def added_chat_participant(self, *filters: FilterLike):
143
- """Register a handler when a participant is added to a chat."""
144
- return self._register((InstanceOfFilter(AddedChatParticipant), *filters))
145
-
146
- def removed_chat_participant(self, *filters: FilterLike):
147
- """Register a handler when a participant is removed from a chat."""
148
- return self._register((InstanceOfFilter(RemovedChatParticipant), *filters))
149
-
150
- def removed_chat(self, *filters: FilterLike):
151
- """Register a handler when a chat is removed."""
152
- return self._register((InstanceOfFilter(RemovedChat), *filters))
153
-
154
- def edited_message(self, *filters: FilterLike):
155
- """Register a handler for message edit events."""
156
- return self._register((InstanceOfFilter(EditedMessage), *filters))
157
-
158
- def removed_message(self, *filters: FilterLike):
159
- """Register a handler for message deletion events."""
160
- return self._register((InstanceOfFilter(RemovedMessage), *filters))
161
-
162
75
  def _register(self, filters: Tuple[FilterLike, ...]):
163
76
  """Internal decorator for registering handlers with filters."""
164
77
 
@@ -245,3 +158,90 @@ class Router:
245
158
  if isinstance(res, (bool, dict)):
246
159
  return res
247
160
  return bool(res)
161
+
162
+ def include_router(self, router: "Router") -> None:
163
+ """Include a child router for hierarchical event routing."""
164
+ self._subrouters.append(router)
165
+
166
+ def event(self, method: str, *filters: FilterLike):
167
+ """
168
+ Register a handler for a generic event type, filtered by method name.
169
+
170
+ Examples:
171
+ >>> @r.event(F.method == "SendMessage")
172
+ >>> async def handle_message(msg: Message): ...
173
+
174
+ """
175
+ mf = MethodFilter(method)
176
+ return self._register((mf, *filters))
177
+
178
+ def message(self, *filters: FilterLike):
179
+ """Register a handler for incoming `Message` events."""
180
+ return self._register((InstanceOfFilter(Message), *filters))
181
+
182
+ def uploading_progress(self, *filters: FilterLike):
183
+ """Register a handler for file uploading progress events."""
184
+ return self._register((InstanceOfFilter(UploadingProgress), *filters))
185
+
186
+ def changed_participant_role(self, *filters: FilterLike):
187
+ """
188
+ **Requires TrueConf Server 5.5.2+**
189
+ Registers a handler for participant role change events in chats.
190
+
191
+ This handler is triggered when a user's role is changed in a personal chat, group chat, channel,
192
+ or conference chat. Used with the `ChangedParticipantRole` event type.
193
+
194
+ Args:
195
+ *filters (FilterLike): Optional filters to apply to the event. Multiple filters can be specified.
196
+
197
+ Returns:
198
+ Callable: A decorator function for registering the handler.
199
+
200
+ Example:
201
+ ```python
202
+ from trueconf.enums import ChatParticipantRole as role
203
+ from trueconf.types import ChangedParticipantRole
204
+
205
+ @router.changed_participant_role()
206
+ async def on_role_changed(event: ChangedParticipantRole):
207
+ if event.role == role.admin:
208
+ print(f"{event.user_id} has been promoted to admin in chat {event.chat_id}")
209
+ ```
210
+ """
211
+ return self._register((InstanceOfFilter(ChangedParticipantRole), *filters))
212
+
213
+ def created_personal_chat(self, *filters: FilterLike):
214
+ """Register a handler for personal chat creation events."""
215
+ return self._register((InstanceOfFilter(CreatedPersonalChat), *filters))
216
+
217
+ def created_group_chat(self, *filters: FilterLike):
218
+ """Register a handler for group chat creation events."""
219
+ return self._register((InstanceOfFilter(CreatedGroupChat), *filters))
220
+
221
+ def created_favorites_chat(self, *filters: FilterLike):
222
+ """**Requires TrueConf Server 5.5.2+**. Register a handler for favorites chat creation events."""
223
+ return self._register((InstanceOfFilter(CreatedFavoritesChat), *filters))
224
+
225
+ def created_channel(self, *filters: FilterLike):
226
+ """Register a handler for channel creation events."""
227
+ return self._register((InstanceOfFilter(CreatedChannel), *filters))
228
+
229
+ def added_chat_participant(self, *filters: FilterLike):
230
+ """Register a handler when a participant is added to a chat."""
231
+ return self._register((InstanceOfFilter(AddedChatParticipant), *filters))
232
+
233
+ def removed_chat_participant(self, *filters: FilterLike):
234
+ """Register a handler when a participant is removed from a chat."""
235
+ return self._register((InstanceOfFilter(RemovedChatParticipant), *filters))
236
+
237
+ def removed_chat(self, *filters: FilterLike):
238
+ """Register a handler when a chat is removed."""
239
+ return self._register((InstanceOfFilter(RemovedChat), *filters))
240
+
241
+ def edited_message(self, *filters: FilterLike):
242
+ """Register a handler for message edit events."""
243
+ return self._register((InstanceOfFilter(EditedMessage), *filters))
244
+
245
+ def removed_message(self, *filters: FilterLike):
246
+ """Register a handler for message deletion events."""
247
+ return self._register((InstanceOfFilter(RemovedMessage), *filters))
@@ -63,7 +63,8 @@ class Command:
63
63
 
64
64
  return {"command": command_obj}
65
65
 
66
- def extract_command(self, text: str) -> CommandObject:
66
+ @staticmethod
67
+ def extract_command(text: str) -> CommandObject:
67
68
  try:
68
69
  full_command, *args = text.split(maxsplit=1)
69
70
  except ValueError: