Skip to content

Latest commit

 

History

History
282 lines (168 loc) · 12.5 KB

README.ru.md

File metadata and controls

282 lines (168 loc) · 12.5 KB

telegram-support-bot

Версия данного файла доступна на следующих языках: русский, english

Телеграм-бот, написанный на языке Python, который позволит Вам в кратчайшие сроки развернуть удобный, многофункциональный и расширяемый способ организации технической поддержки Вашего продукта через Telegram.

Запуск

Способы:

  1. Запуск через Docker (Данный способ рекомендован в случае, если Вам не требуется дополнительных опций при запуске бота)
  2. Запуск бота с помощью исходного кода

Запуск через Docker


Требования: Docker (Установка: Windows, Linux), Git

Склонируем данный репозиторий репозиторий с помощью следующей команды:

git clone https://github.com/Kamilfo-Developer/telegram-support-bot.git

Перейдём в папку с исходным кодом репозитория:

cd telegram-support-bot

Теперь создадим файл .env с конфигурацией приложения. После создания его необходимо открыть, используя текстовый редактор. Например, nano на Linux или Notepad (Блокнот) на Windows.

После чего следует задать конфигурацию бота. Если Вы запускаете приложение через docker-compose (рекомендуется, если Вы хотите запустить обычную версию бота), то добавьте в файл .env следующие строчки:

BOT_TOKEN=<Токен Вашего бота>
OWNER_PASSWORD=<Пароль для инициализации владельца бота>
DEFAULT_LANGUAGE_CODE=ru

Если Вам непонятны назначения полей данного файла, их описание можно посмотреть здесь.

На следующем этапе нам понадобится Docker. После его установки, введите следующую команду:

docker-compose up -d

Если Вы сделали всё верно, то бот запустится и будет готов к использованию. Поздравляем!

Запуск с помощью исходного кода


Требования: Python версии не менее 3.10, Git

Для начала склонируем репозиторий:

git clone https://github.com/Kamilfo-Developer/telegram-support-bot.git

После чего откроем директорию с исходным кодом:

cd telegram-support-bot

Здесь нам понадобится установить poetry:

  • Для Windows: pip install poetry
  • Для Linux: pip3 install poetry

Теперь можно установить зависимости. Для этого достаточно ввести следующую команду (скорость установки зависит от скорости подключения Вашего устройства):

poetry install

После чего активируем среду с установленными зависимостями:

poetry shell

Теперь создадим файл .env с конфигурацией приложения. После создания его необходимо открыть, используя текстовый редактор. Например, nano на Linux или Notepad (Блокнот) на Windows.

После чего следует задать конфигурацию бота. Если в качестве базы данных Вам будет достаточно SQLite и в качестве языка по умолчанию будет выступать русский, то Вам достаточно добавить в файл .env следующие строчки:

BOT_TOKEN=<Токен Вашего бота>
OWNER_PASSWORD=<Пароль для инициализации владельца бота>
DEFAULT_LANGUAGE_CODE=ru

Если Вам непонятны назначения полей данного файла, их описание можно посмотреть здесь.

После конфигурации приложения необходимо сделать миграции с помощью Alembic. Для этого введите следующие команды:

Сначала перейдите в дерикторию с миграциями:

cd bot/db/migrations

Затем выполните сами миграции:

alembic upgrade head

После чего вернитесь в корневую папку репозитория

cd ../../..

Если всё прошло успешно, то можно запускать бота. Для этого необходимо ввести:

python -m bot

Если Вы сделали всё верно, то бот запустится и будет готов к использованию. Поздравляем!

Описание конфигурации


Основная конфигурация


BOT_TOKEN

Используется для указания токена бота. Токен можно здесь: https://telegram.me/BotFather.

Значение по умолчанию: отсутствует

OWNER_PASSWORD

Пароль для инициализации владельца бота. Должен состоять из одного слова, например: МойОченьНадёжныйПароль. После запуска бота, необходимо будет ввести команду /initowner, в качестве аргумента передав пароль. В итоге получится строка: /initowner МойОченьНадёжныйПароль. После отправки данной команды боту он будет готов к использованию.

Значение по умолчанию: отсутствует

OWNER_DEFAULT_DESCRIPTIVE_NAME

Имя владельца по умолчанию. Должно состоять из одного слова. Например, ВладелецДанногоБота.

Значение по умолчанию: Owner

DEFAULT_LANGUAGE_CODE

Задаёт язык по умолчанию. Он будет использован, если среди поддерживаемых ботом языков не нашлось пользовательского. Строка с указанным языком должна соответствовать IETF-тегу. Например, ru или en.

Значение по умолчанию: en.

DB_PROVIDER

Задаёт используемую базу данных. Может принимать следующие значения: sqlite, postgres, mysql

Значение по умолчанию: sqlite

Значение по умолчанию в docker-compose: postgres

TIMEZONE

Часовой пояс, который будет использован при форматировании сообщений для пользователей. Пример: Europe/Moscow. Полный список в подобном формате может быть найден здесь.

Значение по умолчанию: будет использован локальный часовой пояс


Конфигурация PostgreSQL


POSTGRES_DRIVER_NAME

Название соответствующего асинхронного драйвера для PostgreSQL, поддерживаемого SQLAlchemy.

Имейте в виду, что при использовании драйвера не по умолчанию, его сначала придётся установить.

Значение по умолчанию: asyncpg

POSTGRES_DB_NAME

Название используемой базы данных внутри PostgreSQL.

Значение по умолчанию: postgres

POSTGRES_USERNAME

Имя пользователя внутри PostgreSQL.

Значение по умолчанию: postgres

POSTGRES_HOST

Хост базы данных PostgreSQL.

Значение по умолчанию: localhost

Значение по умолчанию в docker-compose: db

POSTGRES_PORT

Значение порта для базы данных PostgreSQL.

Значение по умолчанию: 5432

POSTGRES_PASSWORD

Пароль для базы данных PostgreSQL.

Значение по умолчанию: postgres

Конфигурация MySQL

MYSQL_DRIVER_NAME

Название соответствующего асинхронного драйвера для PostgreSQL, поддерживаемого SQLAlchemy.

Имейте в виду, что при использовании драйвера не по умолчанию, его сначала придётся установить.

Значение по умолчанию: asyncmy

MYSQL_DB_NAME

Название используемой базы данных внутри MySQL. При использовании соответствующей БД, должно быть задано.

Значение по умолчанию: отсутствует

MYSQL_USERNAME

Имя пользователя внутри MySQL. При использовании соответствующей БД, должно быть задано.

Значение по умолчанию: отcутствует

MYSQL_HOST

Хост базы данных MySQL.

Значение по умолчанию: localhost

MYSQL_PORT

Значение порта для базы данных MYSQL.

Значение по умолчанию: 3306

MYSQL_PASSWORD

Пароль для базы данных MySQL. При использовании соответствующей БД, должно быть задано.

Значение по умолчанию: отсутствует