- Python 99.6%
- Dockerfile 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .env.example | ||
| .gitignore | ||
| bot.py | ||
| docker-compose.yml | ||
| Dockerfile | ||
| README.md | ||
| requirements.txt | ||
Telegram-бот для Sonarr и Radarr
Управляйте сериалами в Sonarr и фильмами в Radarr из Telegram. Поиск показывает кнопки выбора; добавление запускает поиск релиза. Удаление записи просит подтверждение и сохраняет файлы на диске. Для каждого сервиса также можно отдельно удалить локальные файлы, оставив запись в медиатеке.
Команды
В меню Telegram доступны полные команды и короткие варианты.
| Действие | Общие | Sonarr — полная | Sonarr — короткая | Radarr — полная | Radarr — короткая |
|---|---|---|---|---|---|
| Запустить бота / показать главное меню | /start | — | — | — | — |
| Справка | /help | — | — | — | — |
| Найти | — | /sonarr_search <название> | /ssearch <название> | /radarr_search <название> | /rsearch <название> |
| Найти и добавить | — | /sonarr_add <название> | /sadd <название> | /radarr_add <название> | /radd <название> |
| Список библиотеки | — | /sonarr_list | /sseries | /radarr_list | /rmovies |
| Очередь загрузок | — | /sonarr_queue | /squeue | /radarr_queue | /rqueue |
| Удалить запись, сохранив файлы | — | /sonarr_remove <название> | /sdelete <название> | /radarr_remove <название> | /rdelete <название> |
| Удалить локальные файлы, сохранив запись | — | /sonarr_delete_files <название> | /sfiles <название> | /radarr_delete_files <название> | /rfiles <название> |
| Запустить поиск отсутствующих серий | — | /sonarr_search_missing <название> | /smissing <название> | — | — |
| Запустить поиск релиза у фильма без файла | — | — | — | /radarr_search_missing <название> | /rmissing <название> |
Короткие команды с префиксами: Sonarr — /ssearch, /sadd, /sseries, /squeue, /sdelete, /sfiles, /smissing; Radarr — /rsearch, /radd, /rmovies, /rqueue, /rdelete, /rfiles. Команды без префикса удалены, чтобы по имени сразу было понятно, какой сервис будет изменён. /help выводит список команд. Меню устанавливается автоматически при каждом запуске бота.
Клавиатура в чате
Отправьте боту /start — появится главное меню с категориями «📺 Сериалы Sonarr» и «🎬 Фильмы Radarr». Выберите категорию, чтобы открыть кнопки действий только для сериалов или только для фильмов. Кнопки поиска, добавления и удаления попросят ввести название; списки и очереди откроются сразу. Для удаления файлов выберите сериал или фильм и подтвердите действие; запись останется в медиатеке. Кнопки «Искать серии без файлов» и «Искать релиз фильма» запустят поиск для уже добавленного сериала или фильма без файлов. Нажмите «⬅️ Главное меню», чтобы вернуться к выбору категории.
Удаление локальных файлов без удаления записи
В разделе Sonarr нажмите «Удалить файлы сериала» или отправьте /sfiles The Office. В разделе Radarr нажмите «Удалить файл фильма» или отправьте /rfiles Интерстеллар. Бот покажет число и общий размер найденных файлов и попросит подтвердить удаление. В Sonarr будут удалены локальные файлы всех эпизодов выбранного сериала; в Radarr — локальные файлы выбранного фильма. Запись и настройки мониторинга останутся в медиатеке. Действие можно отменить до подтверждения.
Поиск отсутствующих файлов
Сериал в Sonarr
- Убедитесь, что сериал уже добавлен в Sonarr.
- Нажмите кнопку «Искать серии без файлов» или отправьте, например,
/smissing The Office. - Выберите сериал из списка. Бот запустит в Sonarr
SeriesSearchдля отслеживаемых серий, у которых нет локального файла.
Если сериал уже добавлен, команду также можно запустить через /sadd The Office: после выбора результата бот проверит библиотеку и запустит поиск отсутствующих серий вместо повторного добавления.
Фильм в Radarr
- Убедитесь, что фильм уже добавлен в Radarr.
- Нажмите кнопку «Искать релиз фильма» или отправьте, например,
/rmissing Интерстеллар. - Выберите фильм без локального файла. Бот запустит поиск релиза в Radarr.
Если фильм уже добавлен, команда /radd Интерстеллар после выбора результата тоже запустит поиск вместо повторного добавления.
Чтобы команды нашли релизы, в соответствующем приложении должны быть настроены и доступны indexers и download client. Для Sonarr отсутствующие серии должны быть отмечены для отслеживания. Если бот сообщает, что поиск запущен, проверьте его выполнение в разделе Activity/Queue приложения; сам факт запуска не гарантирует, что indexers найдут подходящий релиз.
Настройка
Создайте бота через @BotFather и узнайте свой Telegram ID. Скопируйте .env.example в .env и укажите токен, разрешённые Telegram ID, URL и API-ключи обоих сервисов: Sonarr и Radarr. Для работы боту нужны настройки подключения к обоим сервисам.
Профиль качества и корневую папку для каждого сервиса можно указать через SONARR_QUALITY_PROFILE_ID, SONARR_ROOT_FOLDER, RADARR_QUALITY_PROFILE_ID и RADARR_ROOT_FOLDER. Если их не задавать, бот использует первый профиль и первую корневую папку соответствующего приложения.
Запуск через Docker Compose
Для сервисов в общей Docker-сети используйте имена сервисов и порты, например http://sonarr:8989 и http://radarr:7878. Если приложения находятся на другом сервере, укажите адреса и опубликованные порты, доступные из контейнера.
Выполните в папке проекта:
docker compose up -d --build
Для применения изменений .env без пересборки:
docker compose up -d --force-recreate
Посмотреть журнал:
docker compose logs -f sonarr-telegram-bot
Безопасность
Доступ ограничен списком TELEGRAM_ALLOWED_USER_IDS. API-ключи находятся только в переменных окружения. Удаление требует подтверждения и использует deleteFiles=false. Не публикуйте заполненный .env.