python-trueconf-bot 1.1.6__tar.gz → 1.1.7__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.
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/PKG-INFO +1 -1
- python_trueconf_bot-1.1.7/examples/add_big_list_users_to_channel.py +48 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/python_trueconf_bot.egg-info/PKG-INFO +1 -1
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/python_trueconf_bot.egg-info/SOURCES.txt +1 -0
- python_trueconf_bot-1.1.7/trueconf/_version.py +24 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/client/bot.py +51 -11
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/send_file.py +4 -2
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/message.py +122 -5
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/get_chat_by_id_response.py +1 -1
- python_trueconf_bot-1.1.6/trueconf/_version.py +0 -34
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/.github/workflows/docs.yml +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/.github/workflows/release-test.yml +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/.github/workflows/release.yml +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/.gitignore +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/LICENSE +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/README-PyPI.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/README-ru.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/README.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/assets/head_en.png +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/assets/head_ru.png +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/assets/logo.svg +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/examples/echo_bot.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/examples/multibot.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/features.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/img/head.png +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/img/router_scheme_en.svg +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/index.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/learn/enums.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/learn/files.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/learn/filters.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/learn/getting-started.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/learn/parse-messages.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/learn/types.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/reference/Bot.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/reference/Dispatcher.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/reference/Enums.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/reference/Responses.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/reference/Router.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/reference/Types.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/reference/index.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/en/release_notes.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/img/chatbot.svg +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/img/favicon.ico +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/img/logo.svg +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/overrides/main.html +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/examples/echo_bot.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/examples/multibot.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/features.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/img/head.png +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/img/router_scheme_ru.svg +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/index.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/learn/enums.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/learn/files.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/learn/filters.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/learn/getting-started.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/learn/parse-messages.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/learn/types.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/ru/release_notes.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/docs/stylesheets/extra.css +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/examples/README-ru.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/examples/README.md +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/examples/filters.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/examples/report_bot.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/examples/update_token.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/examples/webhook.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/mkdocs.yml +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/pyproject.toml +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/python_trueconf_bot.egg-info/dependency_links.txt +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/python_trueconf_bot.egg-info/requires.txt +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/python_trueconf_bot.egg-info/top_level.txt +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/requirements-docs.txt +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/requirements.txt +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/setup.cfg +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/client/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/client/context_controller.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/client/session.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/dispatcher/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/dispatcher/dispatcher.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/dispatcher/router.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/aouth_error.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/chat_participant_role.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/chat_type.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/envelope_author_type.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/file_ready_state.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/incoming_update_method.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/message_type.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/parse_mode.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/survey_type.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/enums/update_type.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/exceptions.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/filters/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/filters/base.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/filters/command.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/filters/instance_of.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/filters/message.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/filters/method.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/loggers.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/add_participant_to_chat.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/auth.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/base.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/change_participant_role.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/create_channel.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/create_favorites_chat.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/create_group_chat.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/create_p2p_chat.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/edit_message.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/edit_survey.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/forward_message.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/get_chat_by_id.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/get_chat_history.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/get_chat_participants.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/get_chats.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/get_file_info.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/get_message_by_id.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/get_user_display_name.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/has_chat_participant.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/remove_chat.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/remove_message.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/remove_participant_from_chat.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/send_message.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/send_survey.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/subscribe_file_progress.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/unsubscribe_file_progress.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/methods/upload_file.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/py.typed +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/author_box.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/chat_participant.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/attachment.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/base.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/chat_created.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/document.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/forward_message.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/photo.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/remove_participant.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/sticker.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/survey.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/text.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/content/video.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/input_file.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/last_message.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/parser.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/added_chat_participant.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/changed_participant_role.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/created_channel.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/created_favorites_chat.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/created_group_chat.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/created_personal_chat.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/edited_message.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/removed_chat.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/removed_chat_participant.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/removed_message.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/requests/uploading_progress.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/add_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/api_error.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/auth_response_payload.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/change_participant_role_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/create_channel_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/create_favorites_chat_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/create_group_chat_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/create_p2p_chat_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/edit_message_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/edit_survey_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/forward_message_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/get_chat_history_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/get_chat_participants_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/get_chats_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/get_file_info_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/get_message_by_id_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/get_user_display_name_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/has_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/remove_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/remove_chat_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/remove_message_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/send_file_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/send_message_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/send_survey_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/subscribe_file_progress_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/unsubscribe_file_progress_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/responses/upload_file_response.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/types/update.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/utils/__init__.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/trueconf/utils/generate_secret_for_survey.py +0 -0
- {python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/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.
|
|
3
|
+
Version: 1.1.7
|
|
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
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
from trueconf import Bot
|
|
2
|
+
from trueconf.exceptions import ApiErrorException
|
|
3
|
+
import asyncio
|
|
4
|
+
import logging
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
SERVER_ADDR = ""
|
|
8
|
+
BOT_USERNAME = ""
|
|
9
|
+
BOT_PASSWORD = ""
|
|
10
|
+
PATH_LIST_USERS = ""
|
|
11
|
+
CHANNEL_NAME = ""
|
|
12
|
+
|
|
13
|
+
bot = Bot.from_credentials(
|
|
14
|
+
server=SERVER_ADDR,
|
|
15
|
+
username=BOT_USERNAME,
|
|
16
|
+
password=BOT_PASSWORD,
|
|
17
|
+
verify_ssl=False,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
Path("logs").mkdir(parents=True, exist_ok=True)
|
|
21
|
+
|
|
22
|
+
logging.basicConfig(
|
|
23
|
+
level=logging.DEBUG,
|
|
24
|
+
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
|
|
25
|
+
filename="logs/bot.log",
|
|
26
|
+
encoding="utf-8",
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
async def main():
|
|
30
|
+
await bot.start()
|
|
31
|
+
await bot.connected_event.wait()
|
|
32
|
+
await bot.authorized_event.wait()
|
|
33
|
+
|
|
34
|
+
resp = await bot.create_channel(title=CHANNEL_NAME)
|
|
35
|
+
with open(PATH_LIST_USERS, "r") as file:
|
|
36
|
+
for line in file:
|
|
37
|
+
user_id = line.strip()
|
|
38
|
+
if user_id:
|
|
39
|
+
try:
|
|
40
|
+
await bot.add_participant_to_chat(resp.chat_id, user_id=user_id, display_history=True)
|
|
41
|
+
except ApiErrorException as e:
|
|
42
|
+
if e.code == 309:
|
|
43
|
+
continue
|
|
44
|
+
|
|
45
|
+
await bot.shutdown()
|
|
46
|
+
|
|
47
|
+
if __name__ == "__main__":
|
|
48
|
+
asyncio.run(main())
|
{python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/python_trueconf_bot.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-trueconf-bot
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.7
|
|
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
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# file generated by vcs-versioning
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
__all__ = [
|
|
6
|
+
"__version__",
|
|
7
|
+
"__version_tuple__",
|
|
8
|
+
"version",
|
|
9
|
+
"version_tuple",
|
|
10
|
+
"__commit_id__",
|
|
11
|
+
"commit_id",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
version: str
|
|
15
|
+
__version__: str
|
|
16
|
+
__version_tuple__: tuple[int | str, ...]
|
|
17
|
+
version_tuple: tuple[int | str, ...]
|
|
18
|
+
commit_id: str | None
|
|
19
|
+
__commit_id__: str | None
|
|
20
|
+
|
|
21
|
+
__version__ = version = '1.1.7'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 1, 7)
|
|
23
|
+
|
|
24
|
+
__commit_id__ = commit_id = 'ga3eb6d111'
|
|
@@ -7,6 +7,7 @@ import signal
|
|
|
7
7
|
import ssl
|
|
8
8
|
import tempfile
|
|
9
9
|
import websockets
|
|
10
|
+
import warnings
|
|
10
11
|
from pathlib import Path
|
|
11
12
|
from aiohttp import ClientSession, ClientTimeout, TCPConnector, FormData
|
|
12
13
|
from async_property import async_cached_property
|
|
@@ -337,7 +338,7 @@ class Bot:
|
|
|
337
338
|
preview: InputFile | None = None,
|
|
338
339
|
is_sticker: bool = False,
|
|
339
340
|
timeout: int = 60,
|
|
340
|
-
) -> str
|
|
341
|
+
) -> str:
|
|
341
342
|
"""
|
|
342
343
|
Uploads a file to the server and returns a temporary file identifier (temporalFileId).
|
|
343
344
|
|
|
@@ -390,7 +391,7 @@ class Bot:
|
|
|
390
391
|
|
|
391
392
|
try:
|
|
392
393
|
async with ClientSession(connector=connector, timeout=timeout) as session:
|
|
393
|
-
data = FormData()
|
|
394
|
+
data = FormData(quote_fields=False)
|
|
394
395
|
data.add_field(
|
|
395
396
|
name="file",
|
|
396
397
|
value= await file.read(),
|
|
@@ -1103,6 +1104,12 @@ class Bot:
|
|
|
1103
1104
|
SendMessageResponse: Object containing the result of the message delivery.
|
|
1104
1105
|
"""
|
|
1105
1106
|
|
|
1107
|
+
warnings.warn(
|
|
1108
|
+
"reply_message is deprecated, use send_message(..., reply_message_id=...) instead",
|
|
1109
|
+
DeprecationWarning,
|
|
1110
|
+
stacklevel=2
|
|
1111
|
+
)
|
|
1112
|
+
|
|
1106
1113
|
call = SendMessage(
|
|
1107
1114
|
chat_id=chat_id,
|
|
1108
1115
|
reply_message_id=message_id,
|
|
@@ -1147,6 +1154,7 @@ class Bot:
|
|
|
1147
1154
|
file: InputFile,
|
|
1148
1155
|
caption: str | None = None,
|
|
1149
1156
|
parse_mode: ParseMode | str = ParseMode.TEXT,
|
|
1157
|
+
reply_message_id: str | None = None
|
|
1150
1158
|
) -> SendFileResponse:
|
|
1151
1159
|
"""
|
|
1152
1160
|
Sends a document or any arbitrary file to the specified chat.
|
|
@@ -1163,6 +1171,7 @@ class Bot:
|
|
|
1163
1171
|
file (InputFile): The file to be uploaded. Must be a subclass of `InputFile`.
|
|
1164
1172
|
caption (str | None): Optional caption text to be sent with the file.
|
|
1165
1173
|
parse_mode (ParseMode | str): Text formatting mode (e.g., Markdown, HTML, or plain text).
|
|
1174
|
+
reply_message_id (str, optional): Optional identifier of the message to which this message is a reply.
|
|
1166
1175
|
|
|
1167
1176
|
Returns:
|
|
1168
1177
|
SendFileResponse: An object containing the result of the file upload.
|
|
@@ -1184,14 +1193,21 @@ class Bot:
|
|
|
1184
1193
|
file=file,
|
|
1185
1194
|
)
|
|
1186
1195
|
|
|
1187
|
-
call = SendFile(
|
|
1196
|
+
call = SendFile(
|
|
1197
|
+
chat_id=chat_id,
|
|
1198
|
+
temporal_file_id=temporal_file_id,
|
|
1199
|
+
text=caption,
|
|
1200
|
+
parse_mode=parse_mode,
|
|
1201
|
+
reply_message_id=reply_message_id
|
|
1202
|
+
)
|
|
1188
1203
|
return await self(call)
|
|
1189
1204
|
|
|
1190
1205
|
async def send_message(
|
|
1191
1206
|
self,
|
|
1192
1207
|
chat_id: str,
|
|
1193
1208
|
text: str,
|
|
1194
|
-
parse_mode: ParseMode | str = ParseMode.TEXT
|
|
1209
|
+
parse_mode: ParseMode | str = ParseMode.TEXT,
|
|
1210
|
+
reply_message_id: str | None = None
|
|
1195
1211
|
) -> SendMessageResponse:
|
|
1196
1212
|
"""
|
|
1197
1213
|
Sends a message to the specified chat.
|
|
@@ -1204,13 +1220,19 @@ class Bot:
|
|
|
1204
1220
|
text (str): Text content of the message.
|
|
1205
1221
|
parse_mode (ParseMode | str, optional): Text formatting mode.
|
|
1206
1222
|
Defaults to plain text.
|
|
1223
|
+
reply_message_id (str, optional): Optional identifier of the message to which this message is a reply.
|
|
1207
1224
|
|
|
1208
1225
|
Returns:
|
|
1209
1226
|
SendMessageResponse: Object containing the result of the message delivery.
|
|
1210
1227
|
"""
|
|
1211
1228
|
|
|
1212
1229
|
loggers.chatbot.info(f"✉️ Sending message to {chat_id}")
|
|
1213
|
-
call = SendMessage(
|
|
1230
|
+
call = SendMessage(
|
|
1231
|
+
chat_id=chat_id,
|
|
1232
|
+
text=text,
|
|
1233
|
+
parse_mode=parse_mode,
|
|
1234
|
+
reply_message_id=reply_message_id
|
|
1235
|
+
)
|
|
1214
1236
|
return await self(call)
|
|
1215
1237
|
|
|
1216
1238
|
async def send_photo(
|
|
@@ -1219,7 +1241,8 @@ class Bot:
|
|
|
1219
1241
|
file: InputFile,
|
|
1220
1242
|
preview: InputFile | None,
|
|
1221
1243
|
caption: str | None = None,
|
|
1222
|
-
parse_mode: ParseMode | str = ParseMode.TEXT
|
|
1244
|
+
parse_mode: ParseMode | str = ParseMode.TEXT,
|
|
1245
|
+
reply_message_id: str | None = None
|
|
1223
1246
|
) -> SendFileResponse:
|
|
1224
1247
|
"""
|
|
1225
1248
|
Sends a photo to the specified chat, with optional caption and preview support.
|
|
@@ -1242,6 +1265,7 @@ class Bot:
|
|
|
1242
1265
|
preview (InputFile | None): Optional preview image. Must also be an `InputFile` if provided.
|
|
1243
1266
|
caption (str | None): Optional caption to be sent along with the image.
|
|
1244
1267
|
parse_mode (ParseMode | str): Formatting mode for the caption (e.g., Markdown, HTML, plain text).
|
|
1268
|
+
reply_message_id (str, optional): Optional identifier of the message to which this message is a reply.
|
|
1245
1269
|
|
|
1246
1270
|
Returns:
|
|
1247
1271
|
SendFileResponse: An object containing the result of the file upload.
|
|
@@ -1265,10 +1289,21 @@ class Bot:
|
|
|
1265
1289
|
preview=preview,
|
|
1266
1290
|
)
|
|
1267
1291
|
|
|
1268
|
-
call = SendFile(
|
|
1292
|
+
call = SendFile(
|
|
1293
|
+
chat_id=chat_id,
|
|
1294
|
+
temporal_file_id=temporal_file_id,
|
|
1295
|
+
text=caption,
|
|
1296
|
+
parse_mode=parse_mode,
|
|
1297
|
+
reply_message_id=reply_message_id
|
|
1298
|
+
)
|
|
1269
1299
|
return await self(call)
|
|
1270
1300
|
|
|
1271
|
-
async def send_sticker(
|
|
1301
|
+
async def send_sticker(
|
|
1302
|
+
self,
|
|
1303
|
+
chat_id: str,
|
|
1304
|
+
file: InputFile,
|
|
1305
|
+
reply_message_id: str | None = None
|
|
1306
|
+
) -> SendFileResponse:
|
|
1272
1307
|
"""
|
|
1273
1308
|
Sends a sticker in WebP format to the specified chat.
|
|
1274
1309
|
|
|
@@ -1285,6 +1320,7 @@ class Bot:
|
|
|
1285
1320
|
Args:
|
|
1286
1321
|
chat_id (str): Identifier of the chat to which the sticker will be sent.
|
|
1287
1322
|
file (InputFile): The sticker file in WebP format. Must be a subclass of `InputFile`.
|
|
1323
|
+
reply_message_id (str, optional): Optional identifier of the message to which this message is a reply.
|
|
1288
1324
|
|
|
1289
1325
|
Returns:
|
|
1290
1326
|
SendFileResponse: An object containing the result of the file upload.
|
|
@@ -1309,7 +1345,11 @@ class Bot:
|
|
|
1309
1345
|
is_sticker=True
|
|
1310
1346
|
)
|
|
1311
1347
|
|
|
1312
|
-
call = SendFile(
|
|
1348
|
+
call = SendFile(
|
|
1349
|
+
chat_id=chat_id,
|
|
1350
|
+
temporal_file_id=temporal_file_id,
|
|
1351
|
+
reply_message_id=reply_message_id
|
|
1352
|
+
)
|
|
1313
1353
|
return await self(call)
|
|
1314
1354
|
|
|
1315
1355
|
async def send_survey(
|
|
@@ -1317,7 +1357,7 @@ class Bot:
|
|
|
1317
1357
|
chat_id: str,
|
|
1318
1358
|
title: str,
|
|
1319
1359
|
survey_campaign_id: str,
|
|
1320
|
-
reply_message_id: str = None,
|
|
1360
|
+
reply_message_id: str | None = None,
|
|
1321
1361
|
survey_type: SurveyType = SurveyType.NON_ANONYMOUS,
|
|
1322
1362
|
) -> SendSurveyResponse:
|
|
1323
1363
|
"""
|
|
@@ -1330,7 +1370,7 @@ class Bot:
|
|
|
1330
1370
|
chat_id (str): Identifier of the chat to send the survey to.
|
|
1331
1371
|
title (str): Title of the survey displayed in the chat.
|
|
1332
1372
|
survey_campaign_id (str): Identifier of the survey campaign.
|
|
1333
|
-
reply_message_id (str, optional):
|
|
1373
|
+
reply_message_id (str, optional): Optional identifier of the message to which this message is a reply.
|
|
1334
1374
|
survey_type (SurveyType, optional): Type of the survey (anonymous or non-anonymous). Defaults to non-anonymous.
|
|
1335
1375
|
|
|
1336
1376
|
Returns:
|
|
@@ -12,8 +12,9 @@ class SendFile(TrueConfMethod[SendFileResponse]):
|
|
|
12
12
|
|
|
13
13
|
chat_id: str
|
|
14
14
|
temporal_file_id: str
|
|
15
|
-
text: str = None
|
|
16
|
-
parse_mode: str = None
|
|
15
|
+
text: str | None = None
|
|
16
|
+
parse_mode: str | None = None
|
|
17
|
+
reply_message_id: str | None = None
|
|
17
18
|
|
|
18
19
|
def __post_init__(self):
|
|
19
20
|
super().__init__()
|
|
@@ -21,6 +22,7 @@ class SendFile(TrueConfMethod[SendFileResponse]):
|
|
|
21
22
|
def payload(self):
|
|
22
23
|
return {
|
|
23
24
|
"chatId": self.chat_id,
|
|
25
|
+
"replyMessageId": self.reply_message_id,
|
|
24
26
|
"content": {
|
|
25
27
|
"temporalFileId": self.temporal_file_id,
|
|
26
28
|
"caption":{
|
|
@@ -333,11 +333,12 @@ class Message(BoundToBot, DataClassDictMixin):
|
|
|
333
333
|
|
|
334
334
|
async def reply(self, text: str, parse_mode: ParseMode | str = ParseMode.HTML) -> object:
|
|
335
335
|
"""
|
|
336
|
-
Shortcut for the [`
|
|
336
|
+
Shortcut for the [`send_message`][trueconf.Bot.send_message] method.
|
|
337
|
+
Sends a reply to this message in the current chat.
|
|
337
338
|
|
|
338
339
|
Automatically fills the following attributes:
|
|
339
|
-
- `chat_id
|
|
340
|
-
- `reply_message_id
|
|
340
|
+
- `chat_id`: Current chat identifier.
|
|
341
|
+
- `reply_message_id`: ID of the current message.
|
|
341
342
|
|
|
342
343
|
Source: https://trueconf.com/docs/chatbot-connector/en/messages/#replyMessage
|
|
343
344
|
|
|
@@ -349,13 +350,129 @@ class Message(BoundToBot, DataClassDictMixin):
|
|
|
349
350
|
SendMessageResponse: Object containing the result of the message delivery.
|
|
350
351
|
"""
|
|
351
352
|
|
|
352
|
-
return await self.bot.
|
|
353
|
+
return await self.bot.send_message(
|
|
353
354
|
chat_id=self.chat_id,
|
|
354
|
-
|
|
355
|
+
reply_message_id=self.message_id,
|
|
355
356
|
text=text,
|
|
356
357
|
parse_mode=parse_mode,
|
|
357
358
|
)
|
|
358
359
|
|
|
360
|
+
async def reply_photo(
|
|
361
|
+
self,
|
|
362
|
+
file: InputFile,
|
|
363
|
+
preview: InputFile | None,
|
|
364
|
+
caption: str | None = None,
|
|
365
|
+
parse_mode: ParseMode | str = ParseMode.TEXT,
|
|
366
|
+
|
|
367
|
+
) -> object:
|
|
368
|
+
"""
|
|
369
|
+
Shortcut for the [`send_photo`][trueconf.Bot.send_photo] method of the bot instance.
|
|
370
|
+
Sends a photo as a reply to the current message in this chat.
|
|
371
|
+
|
|
372
|
+
Automatically fills the following attributes:
|
|
373
|
+
- `chat_id`: Current chat identifier.
|
|
374
|
+
- `reply_message_id`: ID of the current message.
|
|
375
|
+
|
|
376
|
+
Source:
|
|
377
|
+
https://trueconf.com/docs/chatbot-connector/en/files/#sending-an-image
|
|
378
|
+
|
|
379
|
+
Args:
|
|
380
|
+
file (InputFile): The photo file to upload. Must be a subclass of `InputFile`.
|
|
381
|
+
preview (InputFile | None): Optional preview image. Must also be an `InputFile` if provided.
|
|
382
|
+
caption (str | None): Optional caption to be sent along with the image.
|
|
383
|
+
parse_mode (ParseMode | str): Formatting mode for the caption (e.g., Markdown, HTML, plain text).
|
|
384
|
+
reply_message_id (str | None): Optional identifier of the message to which this message is a reply.
|
|
385
|
+
|
|
386
|
+
Returns:
|
|
387
|
+
SendFileResponse: Object containing the result of the photo upload.
|
|
388
|
+
|
|
389
|
+
Examples:
|
|
390
|
+
>>> @<router>.message()
|
|
391
|
+
>>> async def on_message(message:Message):
|
|
392
|
+
>>> await message.answer_photo(file=FSInputFile("sticker.webp"), preview=FSInputFile("sticker.webp"))
|
|
393
|
+
"""
|
|
394
|
+
|
|
395
|
+
return await self.bot.send_photo(
|
|
396
|
+
chat_id=self.chat_id,
|
|
397
|
+
file=file,
|
|
398
|
+
caption=caption,
|
|
399
|
+
preview=preview,
|
|
400
|
+
parse_mode=parse_mode,
|
|
401
|
+
reply_message_id=self.message_id
|
|
402
|
+
)
|
|
403
|
+
|
|
404
|
+
async def reply_document(
|
|
405
|
+
self,
|
|
406
|
+
file: InputFile,
|
|
407
|
+
caption: str | None = None,
|
|
408
|
+
parse_mode: ParseMode | str = ParseMode.TEXT
|
|
409
|
+
) -> object:
|
|
410
|
+
"""
|
|
411
|
+
Shortcut for the [`send_document`][trueconf.Bot.send_document] method of the bot instance.
|
|
412
|
+
Sends a document as a reply to the current message in this chat.
|
|
413
|
+
|
|
414
|
+
Automatically fills the following attributes:
|
|
415
|
+
- `chat_id`: Current chat identifier.
|
|
416
|
+
- `reply_message_id`: ID of the current message.
|
|
417
|
+
|
|
418
|
+
Source:
|
|
419
|
+
https://trueconf.com/docs/chatbot-connector/en/files/#working-with-files
|
|
420
|
+
|
|
421
|
+
Args:
|
|
422
|
+
file (InputFile): The file to be uploaded. Must be a subclass of `InputFile`.
|
|
423
|
+
caption (str | None): Optional caption text to be sent with the file.
|
|
424
|
+
parse_mode (ParseMode | str): Text formatting mode (e.g., Markdown, HTML, or plain text).
|
|
425
|
+
|
|
426
|
+
Returns:
|
|
427
|
+
SendFileResponse: Object containing the result of the document upload.
|
|
428
|
+
|
|
429
|
+
Examples:
|
|
430
|
+
>>> @<router>.message()
|
|
431
|
+
>>> async def on_message(message:Message):
|
|
432
|
+
>>> await message.answer_document(file=FSInputFile("sticker.webp"))
|
|
433
|
+
"""
|
|
434
|
+
|
|
435
|
+
return await self.bot.send_document(
|
|
436
|
+
chat_id=self.chat_id,
|
|
437
|
+
file=file,
|
|
438
|
+
caption=caption,
|
|
439
|
+
parse_mode=parse_mode,
|
|
440
|
+
reply_message_id=self.message_id
|
|
441
|
+
)
|
|
442
|
+
|
|
443
|
+
async def reply_sticker(
|
|
444
|
+
self,
|
|
445
|
+
file: InputFile
|
|
446
|
+
) -> object:
|
|
447
|
+
"""
|
|
448
|
+
Shortcut for the [`send_sticker`][trueconf.Bot.send_sticker] method of the bot instance.
|
|
449
|
+
Sends a sticker as a reply to the current message in this chat.
|
|
450
|
+
|
|
451
|
+
Automatically fills the following attributes:
|
|
452
|
+
- `chat_id`: Current chat identifier.
|
|
453
|
+
- `reply_message_id`: ID of the current message.
|
|
454
|
+
|
|
455
|
+
Source:
|
|
456
|
+
https://trueconf.com/docs/chatbot-connector/en/files/#upload-file-to-server-storage
|
|
457
|
+
|
|
458
|
+
Args:
|
|
459
|
+
file (InputFile): The sticker file in WebP format. Must be a subclass of `InputFile`.
|
|
460
|
+
|
|
461
|
+
Returns:
|
|
462
|
+
SendFileResponse: Object containing the result of the sticker delivery.
|
|
463
|
+
|
|
464
|
+
Examples:
|
|
465
|
+
>>> @<router>.message()
|
|
466
|
+
>>> async def on_message(message:Message):
|
|
467
|
+
>>> await message.answer_sticker(file=FSInputFile("sticker.webp"))
|
|
468
|
+
"""
|
|
469
|
+
|
|
470
|
+
return await self.bot.send_sticker(
|
|
471
|
+
chat_id=self.chat_id,
|
|
472
|
+
file=file,
|
|
473
|
+
reply_message_id=self.message_id
|
|
474
|
+
)
|
|
475
|
+
|
|
359
476
|
async def forward(self, chat_id: str) -> object:
|
|
360
477
|
"""
|
|
361
478
|
Shortcut for the [`forward_message`][trueconf.Bot.forward_message] method of the bot instance. Use this method to forward the current message to another chat.
|
|
@@ -10,4 +10,4 @@ class GetChatByIdResponse(DataClassDictMixin):
|
|
|
10
10
|
title: str
|
|
11
11
|
chat_type: int = field(metadata={"alias": "chatType"})
|
|
12
12
|
unread_messages: int = field(metadata={"alias": "unreadMessages"})
|
|
13
|
-
last_message: LastMessage = field(metadata={"alias": "lastMessage"})
|
|
13
|
+
last_message: LastMessage | None = field(default=None, metadata={"alias": "lastMessage"})
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# file generated by setuptools-scm
|
|
2
|
-
# don't change, don't track in version control
|
|
3
|
-
|
|
4
|
-
__all__ = [
|
|
5
|
-
"__version__",
|
|
6
|
-
"__version_tuple__",
|
|
7
|
-
"version",
|
|
8
|
-
"version_tuple",
|
|
9
|
-
"__commit_id__",
|
|
10
|
-
"commit_id",
|
|
11
|
-
]
|
|
12
|
-
|
|
13
|
-
TYPE_CHECKING = False
|
|
14
|
-
if TYPE_CHECKING:
|
|
15
|
-
from typing import Tuple
|
|
16
|
-
from typing import Union
|
|
17
|
-
|
|
18
|
-
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
-
COMMIT_ID = Union[str, None]
|
|
20
|
-
else:
|
|
21
|
-
VERSION_TUPLE = object
|
|
22
|
-
COMMIT_ID = object
|
|
23
|
-
|
|
24
|
-
version: str
|
|
25
|
-
__version__: str
|
|
26
|
-
__version_tuple__: VERSION_TUPLE
|
|
27
|
-
version_tuple: VERSION_TUPLE
|
|
28
|
-
commit_id: COMMIT_ID
|
|
29
|
-
__commit_id__: COMMIT_ID
|
|
30
|
-
|
|
31
|
-
__version__ = version = '1.1.6'
|
|
32
|
-
__version_tuple__ = version_tuple = (1, 1, 6)
|
|
33
|
-
|
|
34
|
-
__commit_id__ = commit_id = 'g97554760a'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/python_trueconf_bot.egg-info/requires.txt
RENAMED
|
File without changes
|
{python_trueconf_bot-1.1.6 → python_trueconf_bot-1.1.7}/python_trueconf_bot.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|