https://github.com/radio-t/super-bot
radio-t bot слушает чат telegram и реагирует на определенные команды и фрагменты текста.
https://github.com/radio-t/super-bot
bot telegram telegram-bot
Last synced: 5 months ago
JSON representation
radio-t bot слушает чат telegram и реагирует на определенные команды и фрагменты текста.
- Host: GitHub
- URL: https://github.com/radio-t/super-bot
- Owner: radio-t
- License: mit
- Created: 2019-10-19T18:04:51.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-04-15T03:57:33.000Z (about 1 year ago)
- Last Synced: 2026-01-12T03:02:38.764Z (5 months ago)
- Topics: bot, telegram, telegram-bot
- Language: Go
- Homepage:
- Size: 14.2 MB
- Stars: 68
- Watchers: 11
- Forks: 30
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Telegram бот подкаста Радио-Т
[](https://github.com/radio-t/gitter-rt-bot/actions) [](https://goreportcard.com/report/github.com/radio-t/gitter-rt-bot) [](https://coveralls.io/github/radio-t/super-bot?branch=master)
## Основная функциональность
Бот слушает [чат Telegram](https://t.me/radio_t_chat) и реагирует на определенные команды и фрагменты текста.
Кроме этого, он слушает API новостей и публикует в Telegram сообщения о начале выпуска и смене тем.
С ботом можно [общаться тет-а-тет](https://t.me/radiot_superbot), не засорая общий чат.
В режиме экспортирования сохраняет лог сообщений в HTML файл.
## Статус
Бот в работе несколько лет и успешно "участвовал" во многих подкастах.
## Команды бота
| Команда | Описание |
|-------------------------------------------|----------------------------------------------------------------------------------------------------------------|
| `ping`, `пинг` | ответит `pong`, `понг`, см. [basic.data](https://github.com/radio-t/gitter-rt-bot/blob/master/data/basic.data) |
| `анекдот!`, `анкедот!`, `joke!`, `chuck!` | расскажет анекдот с jokesrv.fermyon.app или chucknorris.io |
| `news!`, `новости!` | 5 последних [новостей для Радио-Т](https://news.radio-t.com) |
| `so!` | 1 вопрос со [Stackoverflow](https://stackoverflow.com/questions?tab=Active) |
| `?? <запрос>`, `/ddg <запрос>` | поискать "<запрос>" на [DuckDuckGo](https://duckduckgo.com) |
| `search! <слово>`, `/search <слово>` | поискать по шоунотам подкастов |
| `chat! <запрос>` | задать вопрос для ChatGPT |
## Инструкции по локальной разработке
Для создания тестового бота нужно обратиться к [BotFather](https://t.me/BotFather) и получить от него токен.
После создания бота нужно вручную добавить в группу (Info / Add Members) и дать права администратора (Info / Edit / Administrators / Add Admin).
Приложение ожидает следующие переменные окружения:
* `TELEGRAM_TOKEN` – токен полученный от BotFather
* `TELEGRAM_GROUP` - основная группа в Телеграмме (туда приходят уведомления о новостях, все сообщения сохраняются в лог)
* `MASHAPE_TOKEN` – токен от сервиса [Kong](https://konghq.com/), используется только для DuckDuckGo бота
* `OPENAI_AUTH_TOKEN` – токен от сервиса [OpenAI Platform](https://platform.openai.com/), используется только для получения 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:
```bash
docker-compose up telegram-bot
```
Или с помощью Make:
```bash
make run ARGS="--super=umputun --super=bobuk --super=grayru --super=ksenks"
```
Для построения HTML отчета необходимо передать дополнительные флаги:
```bash
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
```
или
```bash
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"
```