Исходный код Telegram бота для управления личным кабинетом в организации
Find a file
2022-12-19 19:59:47 +03:00
source упростил структуру документации 2022-12-19 19:56:11 +03:00
readme.md откат + формат 2022-12-19 19:59:47 +03:00

Бот в Telegram для регистрации в организации

Бот описан в src/bot/bot.ts на TypeScript с помощью фреймворка Grammy над Telegram Bot API. Предназначен для запуска в контейнере Docker через NodeJS, файл сборки образа можно видеть под названием src/dockerfile. Главный метод запуска проекта — через файл Bash скрипта start.sh.

Официально запускается под доменом @zaboal_profile_bot.

Переменные бота

Настройки бота расположены в директории src/bot/settings для Telegram Bot API и в файле переменных среды environment.sh для команды source. Файл переменных окружения имеет жизненно необходимые значения, их обязательно требуется указать.

environment.sh — переменные среды

Для запуска бота требуется три константы в формате Bash:

  • BOT_TOKEN — токен бота, получаемый от BotFather;
  • BOT_DB_PATH — путь к базе данных SQLite бота на хосте, с данными об идентификаторах пользователя Телеграм людей зарегистрированных в организации;
  • ORG_BD_PATH — путь к базе данных SQLite орагнизации, с данными об подразделениях, рабочих и т.д.

Данные будут переданы в контейнер Docker в процессе Bash скрипта запуска проекта start.sh. По путям к базам данных на хосте в контейнер будут примонтированы соответствующие файлы SQLite под программными названиями.

settings/*.json — переменные для Telegram Bot API

При запуске бот передаст Telegram Bot API файлы конфигурации в формате json из директории settings:

  • commands.json — список команд и их описаний бота;
  • default_administrator_rights.json — предлагаемый набор прав администратора бота при добавлении в группу.

Эти настройки формируются согласно изменениям кода самого бота. Изменять их рекомендуются только разработчикам, внёсшим изменения.

Запуск бота

Перед запуском требуется заполнить переменные среды. С помощью команды source в start.sh на основе этих переменных в создаваемый контейнер от образа dockerfile будет примонтированы файлы баз данных и передан токен.

Если все переменные указаны верно, можно запускать файл start.sh от имени администратора:

sudo bash start.sh