Бот слушает чат Telegram и реагирует на определенные команды и фрагменты текста. Кроме этого, он слушает API новостей и публикует в Telegram сообщения о начале выпуска и смене тем.
С ботом можно общаться тет-а-тет, не засорая общий чат.
В режиме экспортирования сохраняет лог сообщений в HTML файл.
Бот в работе несколько лет и успешно "участвовал" во многих подкастах.
Команда | Описание |
---|---|
ping , пинг |
ответит pong , понг , см. basic.data |
анекдот! , анкедот! , joke! , chuck! |
расскажет анекдот с jokesrv.fermyon.app или chucknorris.io |
news! , новости! |
5 последних новостей для Радио-Т |
so! |
1 вопрос со Stackoverflow |
?? <запрос> , /ddg <запрос> |
поискать "<запрос>" на DuckDuckGo |
search! <слово> , /search <слово> |
поискать по шоунотам подкастов |
chat! <запрос> |
задать вопрос для ChatGPT |
Для создания тестового бота нужно обратиться к BotFather и получить от него токен.
После создания бота нужно вручную добавить в группу (Info / Add Members) и дать права администратора (Info / Edit / Administrators / Add Admin).
Приложение ожидает следующие переменные окружения:
TELEGRAM_TOKEN
– токен полученный от BotFatherTELEGRAM_GROUP
- основная группа в Телеграмме (туда приходят уведомления о новостях, все сообщения сохраняются в лог)MASHAPE_TOKEN
– токен от сервиса Kong, используется только для DuckDuckGo ботаOPENAI_AUTH_TOKEN
– токен от сервиса OpenAI Platform, используется только для получения ChatGPT ответов в OpenAI боте
Дополнительные переменные окружения со значениями по-умолчанию:
DEBUG
(false) – включает режим отладки (логируется больше событий)TELEGRAM_LOGS
(logs) - путь к папке куда пишется лог чатаSYS_DATA
(data) - путь к папке с *.data файлами и шаблоном для построения HTML отчетаTELEGRAM_TIMEOUT
(30s) – HTTP таймаут для скачивания файлов из Telegram при построении HTML отчетаRTJC_PORT
(18001) – порт на который приходят уведомления о новостях
Запустить бота можно через Docker Compose:
docker-compose up telegram-bot
Или с помощью Make:
make run ARGS="--super=umputun --super=bobuk --super=grayru --super=ksenks"
Для построения HTML отчета необходимо передать дополнительные флаги:
docker-compose exec telegram-bot ./telegram-rt-bot \
--super=umputun \
--super=bobuk \
--super=grayru \
--super=ksenks \
--export-num=688 \
--export-path=html \
--export-day=20200208 \
--export-template=logs.html
или
make run ARGS="--super=umputun --super=bobuk --super=grayru --super=ksenks --export-num=688 --export-path=logs --export-day=20200208 --export-template=data/logs.html"