Skip to content

radio-t/super-bot

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Build Status Go Report Card Coverage Status

Основная функциональность

Бот слушает чат Telegram и реагирует на определенные команды и фрагменты текста. Кроме этого, он слушает API новостей и публикует в Telegram сообщения о начале выпуска и смене тем.

С ботом можно общаться тет-а-тет, не засорая общий чат.

В режиме экспортирования сохраняет лог сообщений в HTML файл.

Статус

Бот в работе несколько лет и успешно "участвовал" во многих подкастах.

Команды бота

Команда Описание
ping, пинг ответит pong, понг, см. basic.data
анекдот!, анкедот!, joke!, chuck! расскажет анекдот с rzhunemogu.ru или icndb.com (нужен MASHAPE_TOKEN)
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"

About

radio-t bot слушает чат telegram и реагирует на определенные команды и фрагменты текста.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages