Бот слушает чат 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) - путь к папке куда пишется лог чата, для того чтобы работал, необходимо чтобы вTELEGRAM_GROUPбыло публичное имя группы, в противном случае лог не будет писаться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"