Его задача отправлять по времени CRON викторины (quiz) в зарегистрированные группы.
Демо версия работы телеграм бота. Был сделан бот переводчик на основе шаблона QTranslateBot. Его работу можно увидеть в группе Illuminati Inc.
- Токен бота можно установить через переменную
QTELEGRAM_TELEGRAM_BOT_TOKEN_API - Заголовочный текст перед вопросом также можно установить через переменную
QTELEGRAM_TELEGRAM_BOT_QUIZ_HEADER - Звук сообщений можно отключить (по умолчанию
false) через переменнуюQTELEGRAM_TELEGRAM_BOT_DISABLE_NOTIFICATION - Регистрация только supergroup чатов (в других чатах работать не будет)
- Обработка ограничений на отправку (ведет статус активности на отправку quiz)
- Отправка polls в виде quiz. Один вопрос и четыре варианта ответа (один правильный)
- В вопрос также можно добавить подсказку
- Если quizzes закончились, то чат будет просто проигнорирован до следующего нового вопроса в БД
- Все действия происходят через CRON расписание
- Используется база данных
SQLite3 - Для запуска на сервере достаточно иметь
docker,gitиmake
- Нужен docker без использования sudo
Выполнить команду:
# Ubuntu
sudo apt update && sudo apt install git make
Выполнить команды в корне проекта:
# Ubuntu
sudo apt update
sudo apt install g++ binutils cmake libboost-system-dev libssl-dev zlib1g-dev libcurl4-openssl-dev libsqlite3-dev
make dev_init && make dev_build
Добавить переменную окружения (допустим в ~/.bashrc).
# API-токен бота
export QTELEGRAM_TELEGRAM_BOT_TOKEN_API="token"
# Заголовок для вопроса quiz (можно оставить пустым)
export QTELEGRAM_TELEGRAM_BOT_QUIZ_HEADER="Header:"
# Отключение звуковых уведомлений
export QTELEGRAM_TELEGRAM_BOT_DISABLE_NOTIFICATION="true"
Для работы на CLion нужно настроить:
File | Settings | Build, Execution, Deployment | CMake
И в Build directory поставьте на директорию cmake.
- Запуск через docker подходит для сервера.
- Запустить команду
make docker_install - Редактировать необходимые данные в файле
./docker/docker-compose.override.yml - Редактировать CRON время в файле
./docker/cpp/crontab - Запустить команду
make docker_run
Чтобы остановить docker, нужно выполнить make docker_stop
