python-trueconf-bot 1.0.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.
- python_trueconf_bot-1.0.0/.github/workflows/docs.yml +37 -0
- python_trueconf_bot-1.0.0/.github/workflows/release-test.yml +45 -0
- python_trueconf_bot-1.0.0/.github/workflows/release.yml +67 -0
- python_trueconf_bot-1.0.0/.gitignore +187 -0
- python_trueconf_bot-1.0.0/LICENSE +32 -0
- python_trueconf_bot-1.0.0/PKG-INFO +115 -0
- python_trueconf_bot-1.0.0/README-PyPI.md +83 -0
- python_trueconf_bot-1.0.0/README-ru.md +87 -0
- python_trueconf_bot-1.0.0/README.md +90 -0
- python_trueconf_bot-1.0.0/assets/head_en.png +0 -0
- python_trueconf_bot-1.0.0/assets/head_ru.png +0 -0
- python_trueconf_bot-1.0.0/assets/logo-cyrillic.svg +1 -0
- python_trueconf_bot-1.0.0/assets/logo.svg +1 -0
- python_trueconf_bot-1.0.0/docs/en/examples/echo_bot.md +28 -0
- python_trueconf_bot-1.0.0/docs/en/examples/multibot.md +11 -0
- python_trueconf_bot-1.0.0/docs/en/features.md +90 -0
- python_trueconf_bot-1.0.0/docs/en/img/head.png +0 -0
- python_trueconf_bot-1.0.0/docs/en/index.md +43 -0
- python_trueconf_bot-1.0.0/docs/en/learn/enums.md +57 -0
- python_trueconf_bot-1.0.0/docs/en/learn/filters.md +144 -0
- python_trueconf_bot-1.0.0/docs/en/learn/getting-started.md +111 -0
- python_trueconf_bot-1.0.0/docs/en/learn/parse-messages.md +90 -0
- python_trueconf_bot-1.0.0/docs/en/learn/types.md +82 -0
- python_trueconf_bot-1.0.0/docs/en/reference/Bot.md +16 -0
- python_trueconf_bot-1.0.0/docs/en/reference/Dispatcher.md +16 -0
- python_trueconf_bot-1.0.0/docs/en/reference/Enums.md +15 -0
- python_trueconf_bot-1.0.0/docs/en/reference/Router.md +16 -0
- python_trueconf_bot-1.0.0/docs/en/reference/Types.md +108 -0
- python_trueconf_bot-1.0.0/docs/en/reference/index.md +0 -0
- python_trueconf_bot-1.0.0/docs/img/chatbot.svg +47 -0
- python_trueconf_bot-1.0.0/docs/img/favicon.ico +0 -0
- python_trueconf_bot-1.0.0/docs/img/logo.svg +20 -0
- python_trueconf_bot-1.0.0/docs/ru/examples/echo_bot.md +28 -0
- python_trueconf_bot-1.0.0/docs/ru/examples/multibot.md +10 -0
- python_trueconf_bot-1.0.0/docs/ru/features.md +88 -0
- python_trueconf_bot-1.0.0/docs/ru/img/head.png +0 -0
- python_trueconf_bot-1.0.0/docs/ru/index.md +38 -0
- python_trueconf_bot-1.0.0/docs/ru/learn/enums.md +69 -0
- python_trueconf_bot-1.0.0/docs/ru/learn/filters.md +141 -0
- python_trueconf_bot-1.0.0/docs/ru/learn/getting-started.md +112 -0
- python_trueconf_bot-1.0.0/docs/ru/learn/parse-messages.md +97 -0
- python_trueconf_bot-1.0.0/docs/ru/learn/types.md +89 -0
- python_trueconf_bot-1.0.0/docs/stylesheets/extra.css +12 -0
- python_trueconf_bot-1.0.0/mkdocs.yml +205 -0
- python_trueconf_bot-1.0.0/pyproject.toml +66 -0
- python_trueconf_bot-1.0.0/python_trueconf_bot.egg-info/PKG-INFO +115 -0
- python_trueconf_bot-1.0.0/python_trueconf_bot.egg-info/SOURCES.txt +166 -0
- python_trueconf_bot-1.0.0/python_trueconf_bot.egg-info/dependency_links.txt +1 -0
- python_trueconf_bot-1.0.0/python_trueconf_bot.egg-info/requires.txt +5 -0
- python_trueconf_bot-1.0.0/python_trueconf_bot.egg-info/top_level.txt +1 -0
- python_trueconf_bot-1.0.0/requirements-docs.txt +44 -0
- python_trueconf_bot-1.0.0/requirements.txt +12 -0
- python_trueconf_bot-1.0.0/setup.cfg +4 -0
- python_trueconf_bot-1.0.0/trueconf/__init__.py +18 -0
- python_trueconf_bot-1.0.0/trueconf/_version.py +34 -0
- python_trueconf_bot-1.0.0/trueconf/client/__init__.py +0 -0
- python_trueconf_bot-1.0.0/trueconf/client/bot.py +1269 -0
- python_trueconf_bot-1.0.0/trueconf/client/context_controller.py +27 -0
- python_trueconf_bot-1.0.0/trueconf/client/session.py +60 -0
- python_trueconf_bot-1.0.0/trueconf/dispatcher/__init__.py +0 -0
- python_trueconf_bot-1.0.0/trueconf/dispatcher/dispatcher.py +56 -0
- python_trueconf_bot-1.0.0/trueconf/dispatcher/router.py +207 -0
- python_trueconf_bot-1.0.0/trueconf/enums/__init__.py +23 -0
- python_trueconf_bot-1.0.0/trueconf/enums/aouth_error.py +15 -0
- python_trueconf_bot-1.0.0/trueconf/enums/chat_participant_role.py +18 -0
- python_trueconf_bot-1.0.0/trueconf/enums/chat_type.py +17 -0
- python_trueconf_bot-1.0.0/trueconf/enums/envelope_author_type.py +13 -0
- python_trueconf_bot-1.0.0/trueconf/enums/file_ready_state.py +14 -0
- python_trueconf_bot-1.0.0/trueconf/enums/incoming_update_method.py +14 -0
- python_trueconf_bot-1.0.0/trueconf/enums/message_type.py +27 -0
- python_trueconf_bot-1.0.0/trueconf/enums/parse_mode.py +14 -0
- python_trueconf_bot-1.0.0/trueconf/enums/survey_type.py +6 -0
- python_trueconf_bot-1.0.0/trueconf/enums/update_type.py +14 -0
- python_trueconf_bot-1.0.0/trueconf/exceptions.py +17 -0
- python_trueconf_bot-1.0.0/trueconf/filters/__init__.py +11 -0
- python_trueconf_bot-1.0.0/trueconf/filters/base.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/filters/command.py +32 -0
- python_trueconf_bot-1.0.0/trueconf/filters/instance_of.py +11 -0
- python_trueconf_bot-1.0.0/trueconf/filters/message.py +15 -0
- python_trueconf_bot-1.0.0/trueconf/filters/method.py +12 -0
- python_trueconf_bot-1.0.0/trueconf/loggers.py +4 -0
- python_trueconf_bot-1.0.0/trueconf/methods/__init__.py +59 -0
- python_trueconf_bot-1.0.0/trueconf/methods/add_participant_to_chat.py +22 -0
- python_trueconf_bot-1.0.0/trueconf/methods/auth.py +25 -0
- python_trueconf_bot-1.0.0/trueconf/methods/base.py +107 -0
- python_trueconf_bot-1.0.0/trueconf/methods/create_channel.py +20 -0
- python_trueconf_bot-1.0.0/trueconf/methods/create_group_chat.py +20 -0
- python_trueconf_bot-1.0.0/trueconf/methods/create_p2p_chat.py +20 -0
- python_trueconf_bot-1.0.0/trueconf/methods/edit_message.py +25 -0
- python_trueconf_bot-1.0.0/trueconf/methods/edit_survey.py +32 -0
- python_trueconf_bot-1.0.0/trueconf/methods/forward_message.py +22 -0
- python_trueconf_bot-1.0.0/trueconf/methods/get_chat_by_id.py +20 -0
- python_trueconf_bot-1.0.0/trueconf/methods/get_chat_history.py +24 -0
- python_trueconf_bot-1.0.0/trueconf/methods/get_chat_participants.py +24 -0
- python_trueconf_bot-1.0.0/trueconf/methods/get_chats.py +22 -0
- python_trueconf_bot-1.0.0/trueconf/methods/get_file_info.py +20 -0
- python_trueconf_bot-1.0.0/trueconf/methods/get_message_by_id.py +19 -0
- python_trueconf_bot-1.0.0/trueconf/methods/get_user_display_name.py +20 -0
- python_trueconf_bot-1.0.0/trueconf/methods/has_chat_participant.py +22 -0
- python_trueconf_bot-1.0.0/trueconf/methods/remove_chat.py +20 -0
- python_trueconf_bot-1.0.0/trueconf/methods/remove_message.py +23 -0
- python_trueconf_bot-1.0.0/trueconf/methods/remove_participant_from_chat.py +23 -0
- python_trueconf_bot-1.0.0/trueconf/methods/send_file.py +25 -0
- python_trueconf_bot-1.0.0/trueconf/methods/send_message.py +29 -0
- python_trueconf_bot-1.0.0/trueconf/methods/send_survey.py +40 -0
- python_trueconf_bot-1.0.0/trueconf/methods/subscribe_file_progress.py +21 -0
- python_trueconf_bot-1.0.0/trueconf/methods/unsubscribe_file_progress.py +21 -0
- python_trueconf_bot-1.0.0/trueconf/methods/upload_file.py +21 -0
- python_trueconf_bot-1.0.0/trueconf/py.typed +0 -0
- python_trueconf_bot-1.0.0/trueconf/types/__init__.py +25 -0
- python_trueconf_bot-1.0.0/trueconf/types/author_box.py +17 -0
- python_trueconf_bot-1.0.0/trueconf/types/chat_participant.py +11 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/__init__.py +25 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/attachment.py +14 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/base.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/chat_created.py +9 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/document.py +71 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/forward_message.py +21 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/photo.py +70 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/remove_participant.py +9 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/sticker.py +70 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/survey.py +19 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/text.py +9 -0
- python_trueconf_bot-1.0.0/trueconf/types/content/video.py +71 -0
- python_trueconf_bot-1.0.0/trueconf/types/last_message.py +33 -0
- python_trueconf_bot-1.0.0/trueconf/types/message.py +411 -0
- python_trueconf_bot-1.0.0/trueconf/types/parser.py +90 -0
- python_trueconf_bot-1.0.0/trueconf/types/requests/__init__.py +21 -0
- python_trueconf_bot-1.0.0/trueconf/types/requests/added_chat_participant.py +40 -0
- python_trueconf_bot-1.0.0/trueconf/types/requests/created_channel.py +42 -0
- python_trueconf_bot-1.0.0/trueconf/types/requests/created_group_chat.py +42 -0
- python_trueconf_bot-1.0.0/trueconf/types/requests/created_personal_chat.py +42 -0
- python_trueconf_bot-1.0.0/trueconf/types/requests/edited_message.py +37 -0
- python_trueconf_bot-1.0.0/trueconf/types/requests/removed_chat.py +32 -0
- python_trueconf_bot-1.0.0/trueconf/types/requests/removed_chat_participant.py +39 -0
- python_trueconf_bot-1.0.0/trueconf/types/requests/removed_message.py +37 -0
- python_trueconf_bot-1.0.0/trueconf/types/requests/uploading_progress.py +34 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/__init__.py +57 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/add_chat_participant_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/api_error.py +38 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/auth_response_payload.py +9 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/create_channel_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/create_group_chat_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/create_p2p_chat_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/edit_message_response.py +9 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/edit_survey_response.py +9 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/forward_message_response.py +10 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/get_chat_by_id_response.py +13 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/get_chat_history_response.py +13 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/get_chat_participants_response.py +12 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/get_chats_response.py +12 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/get_file_info_response.py +24 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/get_message_by_id_response.py +26 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/get_user_display_name_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/has_chat_participant_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/remove_chat_participant_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/remove_chat_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/remove_message_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/send_file_response.py +10 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/send_message_response.py +10 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/send_survey_response.py +10 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/subscribe_file_progress_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/unsubscribe_file_progress_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/responses/upload_file_response.py +8 -0
- python_trueconf_bot-1.0.0/trueconf/types/update.py +12 -0
- python_trueconf_bot-1.0.0/trueconf/utils/__init__.py +3 -0
- python_trueconf_bot-1.0.0/trueconf/utils/generate_secret_for_survey.py +10 -0
- python_trueconf_bot-1.0.0/trueconf/utils/token.py +78 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'docs/*'
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
deploy-docs:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.10"
|
|
22
|
+
|
|
23
|
+
- name: Install docs deps
|
|
24
|
+
run: |
|
|
25
|
+
python -m pip install --upgrade pip
|
|
26
|
+
pip install mkdocs-material
|
|
27
|
+
if [ -f requirements-docs.txt ]; then pip install -r requirements-docs.txt; fi
|
|
28
|
+
|
|
29
|
+
- name: Configure git (gh-deploy)
|
|
30
|
+
run: |
|
|
31
|
+
git config user.name "github-actions[bot]"
|
|
32
|
+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
33
|
+
|
|
34
|
+
- name: Deploy to gh-pages
|
|
35
|
+
env:
|
|
36
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
37
|
+
run: mkdocs gh-deploy --force --remote-branch gh-pages
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: Release to TestPyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
tag:
|
|
7
|
+
description: "Tag to release (e.g. v1.2.3 or v1.2.3rc1)"
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
id-token: write
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
publish-to-testpypi:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
environment: testpypi
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
with:
|
|
22
|
+
fetch-depth: 0
|
|
23
|
+
fetch-tags: true
|
|
24
|
+
ref: ${{ github.event.inputs.tag }}
|
|
25
|
+
|
|
26
|
+
- name: Set up Python
|
|
27
|
+
uses: actions/setup-python@v5
|
|
28
|
+
with:
|
|
29
|
+
python-version: "3.10"
|
|
30
|
+
|
|
31
|
+
- name: Build package
|
|
32
|
+
run: |
|
|
33
|
+
pip install build
|
|
34
|
+
python -m build
|
|
35
|
+
|
|
36
|
+
- name: Check dist metadata
|
|
37
|
+
run: |
|
|
38
|
+
pip install twine
|
|
39
|
+
twine check dist/*
|
|
40
|
+
|
|
41
|
+
- name: Publish package to TestPyPI
|
|
42
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
43
|
+
with:
|
|
44
|
+
repository-url: https://test.pypi.org/legacy/
|
|
45
|
+
verbose: true
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
name: Release to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
tag:
|
|
7
|
+
description: "Tag to release (e.g. v1.2.3 or v1.2.3rc1)"
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
id-token: write
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
build:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
fetch-tags: true
|
|
23
|
+
ref: ${{ github.event.inputs.tag }}
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v5
|
|
27
|
+
with:
|
|
28
|
+
python-version: "3.11"
|
|
29
|
+
|
|
30
|
+
- name: Build package
|
|
31
|
+
run: |
|
|
32
|
+
pip install build
|
|
33
|
+
python -m build
|
|
34
|
+
|
|
35
|
+
- name: Upload artifacts
|
|
36
|
+
uses: actions/upload-artifact@v4
|
|
37
|
+
with:
|
|
38
|
+
name: dist
|
|
39
|
+
path: dist/*
|
|
40
|
+
|
|
41
|
+
publish-stable:
|
|
42
|
+
needs: build
|
|
43
|
+
runs-on: ubuntu-latest
|
|
44
|
+
if: ${{ !contains(github.ref, '-') }}
|
|
45
|
+
environment: pypi
|
|
46
|
+
steps:
|
|
47
|
+
- uses: actions/download-artifact@v4
|
|
48
|
+
with:
|
|
49
|
+
name: dist
|
|
50
|
+
path: dist
|
|
51
|
+
|
|
52
|
+
- name: Publish stable to PyPI (Trusted Publisher)
|
|
53
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
54
|
+
|
|
55
|
+
publish-prerelease:
|
|
56
|
+
needs: build
|
|
57
|
+
runs-on: ubuntu-latest
|
|
58
|
+
if: ${{ contains(github.ref, '-rc') || contains(github.ref, '-a') || contains(github.ref, '-b') }}
|
|
59
|
+
environment: pypi
|
|
60
|
+
steps:
|
|
61
|
+
- uses: actions/download-artifact@v4
|
|
62
|
+
with:
|
|
63
|
+
name: dist
|
|
64
|
+
path: dist
|
|
65
|
+
|
|
66
|
+
- name: Publish pre-release to PyPI (Trusted Publisher)
|
|
67
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py,cover
|
|
50
|
+
.hypothesis/
|
|
51
|
+
.pytest_cache/
|
|
52
|
+
cover/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
.pybuilder/
|
|
76
|
+
target/
|
|
77
|
+
|
|
78
|
+
# Jupyter Notebook
|
|
79
|
+
.ipynb_checkpoints
|
|
80
|
+
|
|
81
|
+
# IPython
|
|
82
|
+
profile_default/
|
|
83
|
+
ipython_config.py
|
|
84
|
+
|
|
85
|
+
# pyenv
|
|
86
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
87
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
88
|
+
# .python-version
|
|
89
|
+
|
|
90
|
+
# pipenv
|
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
+
# install all needed dependencies.
|
|
95
|
+
#Pipfile.lock
|
|
96
|
+
|
|
97
|
+
# UV
|
|
98
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
99
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
100
|
+
# commonly ignored for libraries.
|
|
101
|
+
#uv.lock
|
|
102
|
+
|
|
103
|
+
# poetry
|
|
104
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
105
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
106
|
+
# commonly ignored for libraries.
|
|
107
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
108
|
+
#poetry.lock
|
|
109
|
+
|
|
110
|
+
# pdm
|
|
111
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
112
|
+
#pdm.lock
|
|
113
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
114
|
+
# in version control.
|
|
115
|
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
|
116
|
+
.pdm.toml
|
|
117
|
+
.pdm-python
|
|
118
|
+
.pdm-build/
|
|
119
|
+
|
|
120
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
121
|
+
__pypackages__/
|
|
122
|
+
|
|
123
|
+
# Celery stuff
|
|
124
|
+
celerybeat-schedule
|
|
125
|
+
celerybeat.pid
|
|
126
|
+
|
|
127
|
+
# SageMath parsed files
|
|
128
|
+
*.sage.py
|
|
129
|
+
|
|
130
|
+
# Environments
|
|
131
|
+
.venv
|
|
132
|
+
env/
|
|
133
|
+
venv/
|
|
134
|
+
ENV/
|
|
135
|
+
env.bak/
|
|
136
|
+
venv.bak/
|
|
137
|
+
|
|
138
|
+
# Spyder project settings
|
|
139
|
+
.spyderproject
|
|
140
|
+
.spyproject
|
|
141
|
+
|
|
142
|
+
# Rope project settings
|
|
143
|
+
.ropeproject
|
|
144
|
+
|
|
145
|
+
# mkdocs documentation
|
|
146
|
+
/site
|
|
147
|
+
|
|
148
|
+
# mypy
|
|
149
|
+
.mypy_cache/
|
|
150
|
+
.dmypy.json
|
|
151
|
+
dmypy.json
|
|
152
|
+
|
|
153
|
+
# Pyre type checker
|
|
154
|
+
.pyre/
|
|
155
|
+
|
|
156
|
+
# pytype static type analyzer
|
|
157
|
+
.pytype/
|
|
158
|
+
|
|
159
|
+
# Cython debug symbols
|
|
160
|
+
cython_debug/
|
|
161
|
+
|
|
162
|
+
# PyCharm
|
|
163
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
164
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
165
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
166
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
167
|
+
#.idea/
|
|
168
|
+
|
|
169
|
+
# PyPI configuration file
|
|
170
|
+
.pypirc
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
#VS Code folder
|
|
174
|
+
.vscode
|
|
175
|
+
|
|
176
|
+
# Config file
|
|
177
|
+
|
|
178
|
+
config_models.py
|
|
179
|
+
|
|
180
|
+
trueconf/_version.py
|
|
181
|
+
|
|
182
|
+
.idea
|
|
183
|
+
|
|
184
|
+
*.DS_Store
|
|
185
|
+
|
|
186
|
+
.venv*
|
|
187
|
+
venv*
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
The Clear BSD License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 TrueConf LLC
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
|
7
|
+
modification, are permitted (subject to the limitations in the disclaimer
|
|
8
|
+
below) provided that the following conditions are met:
|
|
9
|
+
|
|
10
|
+
* Redistributions of source code must retain the above copyright notice,
|
|
11
|
+
this list of conditions and the following disclaimer.
|
|
12
|
+
|
|
13
|
+
* Redistributions in binary form must reproduce the above copyright
|
|
14
|
+
notice, this list of conditions and the following disclaimer in the
|
|
15
|
+
documentation and/or other materials provided with the distribution.
|
|
16
|
+
|
|
17
|
+
* Neither the name of the copyright holder nor the names of its
|
|
18
|
+
contributors may be used to endorse or promote products derived from this
|
|
19
|
+
software without specific prior written permission.
|
|
20
|
+
|
|
21
|
+
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY
|
|
22
|
+
THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
23
|
+
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
24
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
25
|
+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
|
26
|
+
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
27
|
+
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
28
|
+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
29
|
+
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
|
30
|
+
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
31
|
+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
32
|
+
POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: python-trueconf-bot
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Lightweight and powerful framework for the TrueConf Server Chatbot API
|
|
5
|
+
Author-email: TrueConf LLC <info@trueconf.com>, Anton Baadzhi <baadzhianton@gmail.com>
|
|
6
|
+
License-Expression: BSD-3-Clause-Clear
|
|
7
|
+
Project-URL: Homepage, https://github.com/TrueConf/python-trueconf-bot
|
|
8
|
+
Project-URL: Repository, https://github.com/TrueConf/python-trueconf-bot
|
|
9
|
+
Project-URL: Documentation, https://trueconf.github.io/python-trueconf-bot
|
|
10
|
+
Project-URL: Issues, https://github.com/TrueConf/python-trueconf-bot/issues
|
|
11
|
+
Keywords: trueconf,chatbot,bot,api,framework,wrapper,asyncio,websocket
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Framework :: AsyncIO
|
|
15
|
+
Classifier: Typing :: Typed
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Classifier: Topic :: Communications :: Chat
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: websockets
|
|
27
|
+
Requires-Dist: httpx
|
|
28
|
+
Requires-Dist: mashumaro
|
|
29
|
+
Requires-Dist: aiofiles
|
|
30
|
+
Requires-Dist: magic-filter
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
|
|
33
|
+
<p align="center">
|
|
34
|
+
<a href="https://trueconf.com" target="_blank" rel="noopener noreferrer">
|
|
35
|
+
<picture>
|
|
36
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/TrueConf/python-trueconf-bot/master/assets/logo.svg" type="image/svg">
|
|
37
|
+
<img width="150" src="https://raw.githubusercontent.com/TrueConf/python-trueconf-bot/master/assets/logo.svg" type="image/svg">
|
|
38
|
+
</picture>
|
|
39
|
+
</a>
|
|
40
|
+
</p>
|
|
41
|
+
|
|
42
|
+
<h1 align="center">python-trueconf-bot</h1>
|
|
43
|
+
|
|
44
|
+
<p align="center">This is a lightweight and powerful wrapper for the <a href="https://trueconf.com/docs/chatbot-connector/en/overview/">TrueConf Server Chatbot API</a> which enables quick integration of chatbots into TrueConf solutions.</p>
|
|
45
|
+
|
|
46
|
+
<p align="center">
|
|
47
|
+
<a href="https://t.me/trueconf_chat" target="_blank">
|
|
48
|
+
<img src="https://img.shields.io/badge/telegram-group-blue?style=flat-square&logo=telegram" />
|
|
49
|
+
</a>
|
|
50
|
+
<a href="https://chat.whatsapp.com/GY97WBzSgvD1cJG0dWEiGP">
|
|
51
|
+
<img src="https://img.shields.io/badge/whatsapp-commiunity-gree?style=flat-square&logo=whatsapp" />
|
|
52
|
+
</a>
|
|
53
|
+
<a href="#">
|
|
54
|
+
<img src="https://img.shields.io/github/stars/trueconf/python-trueconf-bot?style=social" />
|
|
55
|
+
</a>
|
|
56
|
+
</p>
|
|
57
|
+
|
|
58
|
+
<p align="center">
|
|
59
|
+
<img src="https://raw.githubusercontent.com/TrueConf/python-trueconf-bot/master/assets/head_en.png" alt="Example Bot in TrueConf" width="600" height="auto">
|
|
60
|
+
</p>
|
|
61
|
+
|
|
62
|
+
> 💡TIP
|
|
63
|
+
>
|
|
64
|
+
> We were inspired by the popular [aiogram](https://github.com/aiogram/aiogram/) library, so, the transition will be **simple** for developers already familiar with this library.
|
|
65
|
+
|
|
66
|
+
## 📌 Key Features
|
|
67
|
+
|
|
68
|
+
* Easy integration with the [TrueConf Server Chatbot API](https://trueconf.com/docs/chatbot-connector/en/overview/)
|
|
69
|
+
* Quick start with the `python-trueconf-bot` package
|
|
70
|
+
* Modern and intuitive Python API (`from trueconf import Bot`)
|
|
71
|
+
* Support for all major TrueConf Server chatbot features.
|
|
72
|
+
|
|
73
|
+
> ☝️**IMPORTANT**
|
|
74
|
+
>
|
|
75
|
+
> Chatbot features are supported in TrueConf Server 5.5 or above, TrueConf Enterprise, and TrueConf Server Free.
|
|
76
|
+
|
|
77
|
+
## 🚀 Example Bot
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
import asyncio
|
|
81
|
+
from trueconf import Bot, Dispatcher, Router, Message, F, ParseMode
|
|
82
|
+
from os import getenv
|
|
83
|
+
|
|
84
|
+
router = Router()
|
|
85
|
+
dp = Dispatcher()
|
|
86
|
+
dp.include_router(router)
|
|
87
|
+
|
|
88
|
+
TOKEN = getenv("TOKEN")
|
|
89
|
+
|
|
90
|
+
bot = Bot(server="video.example.com", token=TOKEN, dispatcher=dp)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
@router.message(F.text)
|
|
94
|
+
async def echo(msg: Message):
|
|
95
|
+
await msg.answer(f"You says: **{msg.text}**", parse_mode=ParseMode.MARKDOWN)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
async def main():
|
|
99
|
+
await bot.run()
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
if __name__ == "__main__":
|
|
103
|
+
asyncio.run(main())
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## 📚 Documentation
|
|
107
|
+
|
|
108
|
+
1. [TrueConf Server Chatbot API Documentation](https://trueconf.com/docs/chatbot-connector/en/overview/)
|
|
109
|
+
2. [python-trueconf-bot Documentation](https://trueconf.github.io/python-trueconf-bot/)
|
|
110
|
+
|
|
111
|
+
All updates and releases are available in the repository. Track the build status and test coverage.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
Start building smart and reliable bots for TrueConf today with **python-trueconf-bot**!
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://trueconf.com" target="_blank" rel="noopener noreferrer">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/TrueConf/python-trueconf-bot/master/assets/logo.svg" type="image/svg">
|
|
5
|
+
<img width="150" src="https://raw.githubusercontent.com/TrueConf/python-trueconf-bot/master/assets/logo.svg" type="image/svg">
|
|
6
|
+
</picture>
|
|
7
|
+
</a>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<h1 align="center">python-trueconf-bot</h1>
|
|
11
|
+
|
|
12
|
+
<p align="center">This is a lightweight and powerful wrapper for the <a href="https://trueconf.com/docs/chatbot-connector/en/overview/">TrueConf Server Chatbot API</a> which enables quick integration of chatbots into TrueConf solutions.</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="https://t.me/trueconf_chat" target="_blank">
|
|
16
|
+
<img src="https://img.shields.io/badge/telegram-group-blue?style=flat-square&logo=telegram" />
|
|
17
|
+
</a>
|
|
18
|
+
<a href="https://chat.whatsapp.com/GY97WBzSgvD1cJG0dWEiGP">
|
|
19
|
+
<img src="https://img.shields.io/badge/whatsapp-commiunity-gree?style=flat-square&logo=whatsapp" />
|
|
20
|
+
</a>
|
|
21
|
+
<a href="#">
|
|
22
|
+
<img src="https://img.shields.io/github/stars/trueconf/python-trueconf-bot?style=social" />
|
|
23
|
+
</a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<img src="https://raw.githubusercontent.com/TrueConf/python-trueconf-bot/master/assets/head_en.png" alt="Example Bot in TrueConf" width="600" height="auto">
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
> 💡TIP
|
|
31
|
+
>
|
|
32
|
+
> We were inspired by the popular [aiogram](https://github.com/aiogram/aiogram/) library, so, the transition will be **simple** for developers already familiar with this library.
|
|
33
|
+
|
|
34
|
+
## 📌 Key Features
|
|
35
|
+
|
|
36
|
+
* Easy integration with the [TrueConf Server Chatbot API](https://trueconf.com/docs/chatbot-connector/en/overview/)
|
|
37
|
+
* Quick start with the `python-trueconf-bot` package
|
|
38
|
+
* Modern and intuitive Python API (`from trueconf import Bot`)
|
|
39
|
+
* Support for all major TrueConf Server chatbot features.
|
|
40
|
+
|
|
41
|
+
> ☝️**IMPORTANT**
|
|
42
|
+
>
|
|
43
|
+
> Chatbot features are supported in TrueConf Server 5.5 or above, TrueConf Enterprise, and TrueConf Server Free.
|
|
44
|
+
|
|
45
|
+
## 🚀 Example Bot
|
|
46
|
+
|
|
47
|
+
```python
|
|
48
|
+
import asyncio
|
|
49
|
+
from trueconf import Bot, Dispatcher, Router, Message, F, ParseMode
|
|
50
|
+
from os import getenv
|
|
51
|
+
|
|
52
|
+
router = Router()
|
|
53
|
+
dp = Dispatcher()
|
|
54
|
+
dp.include_router(router)
|
|
55
|
+
|
|
56
|
+
TOKEN = getenv("TOKEN")
|
|
57
|
+
|
|
58
|
+
bot = Bot(server="video.example.com", token=TOKEN, dispatcher=dp)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@router.message(F.text)
|
|
62
|
+
async def echo(msg: Message):
|
|
63
|
+
await msg.answer(f"You says: **{msg.text}**", parse_mode=ParseMode.MARKDOWN)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
async def main():
|
|
67
|
+
await bot.run()
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
if __name__ == "__main__":
|
|
71
|
+
asyncio.run(main())
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## 📚 Documentation
|
|
75
|
+
|
|
76
|
+
1. [TrueConf Server Chatbot API Documentation](https://trueconf.com/docs/chatbot-connector/en/overview/)
|
|
77
|
+
2. [python-trueconf-bot Documentation](https://trueconf.github.io/python-trueconf-bot/)
|
|
78
|
+
|
|
79
|
+
All updates and releases are available in the repository. Track the build status and test coverage.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
Start building smart and reliable bots for TrueConf today with **python-trueconf-bot**!
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://trueconf.com" target="_blank" rel="noopener noreferrer">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/logo-cyrillic.svg" type="image/svg">
|
|
5
|
+
<img width="150" src="assets/logo-cyrillic.svg" type="image/svg">
|
|
6
|
+
</picture>
|
|
7
|
+
</a>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<h1 align="center">python-trueconf-bot</h1>
|
|
11
|
+
|
|
12
|
+
<p align="center">Это легкая и мощная обертка для <a href="hhttps://trueconf.ru/docs/chatbot-connector/ru/overview/">API чат-ботов TrueConf Server</a>, позволяющая быстро интегрировать чат-ботов с API TrueConf.</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="https://t.me/trueconf_chat" target="_blank">
|
|
16
|
+
<img src="https://img.shields.io/badge/telegram-group-blue?style=flat-square&logo=telegram" />
|
|
17
|
+
</a>
|
|
18
|
+
<a href="https://chat.whatsapp.com/GY97WBzSgvD1cJG0dWEiGP">
|
|
19
|
+
<img src="https://img.shields.io/badge/whatsapp-commiunity-gree?style=flat-square&logo=whatsapp" />
|
|
20
|
+
</a>
|
|
21
|
+
<a href="#">
|
|
22
|
+
<img src="https://img.shields.io/github/stars/trueconf/python-trueconf-bot?style=social" />
|
|
23
|
+
</a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<img src="/assets/head_ru.png" alt="Example Bot in TrueConf" width="600" height="auto">
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
<p align="center">
|
|
31
|
+
<a href="./README.md">English</a> /
|
|
32
|
+
<a href="./README-ru.md">Русский</a>
|
|
33
|
+
</p>
|
|
34
|
+
|
|
35
|
+
> [!TIP]
|
|
36
|
+
> При разработке мы вдохновлялись популярной библиотекой [aiogram](https://github.com/aiogram/aiogram/), поэтому разработчикам,
|
|
37
|
+
> знакомым с ней, переход будет **простым** и **безболезненным**.
|
|
38
|
+
|
|
39
|
+
## Ключевые возможности
|
|
40
|
+
|
|
41
|
+
- Простая интеграция с [API чат-ботов TrueConf Server](https://trueconf.ru/docs/chatbot-connector/ru/overview/);
|
|
42
|
+
- Быстрый старт с пакетом `python-trueconf-bot`;
|
|
43
|
+
- Современный и понятный Python API (`from trueconf import Bot`);
|
|
44
|
+
- Поддержка всех основных функций чат-ботов TrueConf Server.
|
|
45
|
+
|
|
46
|
+
> [!IMPORTANT]
|
|
47
|
+
> Функционал чат-ботов поддерживается начиная с версии TrueConf Server 5.5, а также в TrueConf Enterprise и TrueConf Server Free.
|
|
48
|
+
|
|
49
|
+
## Пример бота
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
import asyncio
|
|
53
|
+
from trueconf import Bot, Dispatcher, Router, Message, F, ParseMode
|
|
54
|
+
from os import getenv
|
|
55
|
+
|
|
56
|
+
router = Router()
|
|
57
|
+
dp = Dispatcher()
|
|
58
|
+
dp.include_router(router)
|
|
59
|
+
|
|
60
|
+
TOKEN = getenv("TOKEN")
|
|
61
|
+
|
|
62
|
+
bot = Bot(server="video.example.com", token=TOKEN, dispatcher=dp)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
@router.message(F.text)
|
|
66
|
+
async def echo(msg: Message):
|
|
67
|
+
await msg.answer(f"You says: **{msg.text}**", parse_mode=ParseMode.MARKDOWN)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
async def main():
|
|
71
|
+
await bot.run()
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
if __name__ == "__main__":
|
|
75
|
+
asyncio.run(main())
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Документация и поддержка
|
|
79
|
+
|
|
80
|
+
1. [Документация API чат-ботов TrueConf Server](https://trueconf.ru/docs/chatbot-connector/ru/overview/)
|
|
81
|
+
2. [Документация python-trueconf-bot](https://trueconf.github.io/python-trueconf-bot/ru/)
|
|
82
|
+
|
|
83
|
+
Все обновления и релизы доступны в репозитории. Следите за статусом сборок и покрытием тестами.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
Начните создавать умных и надежных ботов для TrueConf уже сегодня с **python-trueconf-bot**!
|