Telegram бот подкаста Радио-Т

Основная функциональность
Бот слушает чат 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 – токен полученный от BotFather
TELEGRAM_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"