Telegram bot for the Kinozal torrent tracker, remote control of the qBittorrent and Transmission.
710
Telegram бот, который позволяет автоматизировать процесс доставки контента до вашего телевизора, используя только телефон.
С помощью бота вы получите удобный и привычный интерфейс для взаимодействия с торрент трекером Кинозал и базой данных TMDB для отслеживания даты выхода серий, сезонов и поиска актеров для каждой серии, а также возможность управлять торрент клиентом qBittorrent или Transmission на вашем компьютере, находясь удаленно от дома, а главное, все это доступно из единого интерфейса и без установки клиентского приложения на конечные устройства. В отличии от других приложений, предназначенных для удаленного управления торрент клиентами, вам не нужно находиться в той же локальной сети или использовать VPN.
Запустить бота возможно как службу systemd или в контейнере 🐳 Docker (рекомендуется). Вы можете настроить и управлять торрент клиентом независимо от настройки или работоспособности трекера Кинозал, или наоборот, использовать только интерфейс Кинозал для поиска раздач и выгрузки торрент файлов в Telegram.
На базе бота реализован новостной канала Kinozal-News, который генерирует посты на основе новых публикаций в торрент трекере Кинозал (современная альтернатива RSS). Каждый пост содержит краткую информацию о раздаче (год выхода, страна производства, рейтинг, качество и перевод), а также #хештеги по жанру для фильтрации контента на канале и кнопки с ссылками описания фильма или сериала в базах данных о кинематографе Кинопоиск и IMDb, бесплатный онлайн просмотр через плееры ▶️ Kinobox и 🧲 магнитные ссылки для прямой загрузки содержимого раздачи в вашем торрент клиенте по умолчанию (применимо как для bittorrent-клиентов на телефоне, так и Windows или Linux).
Присоединяйтесь к каналу, что бы не пропускать новые публикации в трекере:
На канале присутствует фильтрация всех публикаций по рейтингу (7.0 и выше), году выхода (2024 и новее), региону и времени, а также на основе предыдущих публикаций (по названию и их размеру) для исключения дублирующихся раздач.
Или используйте публичную RSS ленту новостей из проекта TorAPI с поддержкой фильтрации:
Для пользователей бота реализован сценарий публичного запуска зеркала на платформе Vercel:
Например, пока вы едите домой с работы, у вас появляется возможность подобрать фильм или сериал в обширной базе Кинозал прямиком с вашего телефона, или, найти что-то новое на канале Kinozal-News, после чего сразу загрузить выбранное на ваш компьютер и автоматически или через бот синхронизировать данные с Plex Media Server. По приходу домой, вам остается только открыть приложение Plex на вашем телевизоре и начать просмотр 📺🍿.
Такой подход также применим для передачи управления по подбору контента другому члену семьи (🐒), это особенно актуально, если у вас один компьютер, который может быть занят или к нему нет прямого доступа. Разобраться в интерфейсе бота проще, чем использовать все сервисы по отдельности, и главное, куда быстрее.
Зависимости:
Серверная часть написана на чистом Bash и использует стандартный набор Unix-утилит.
Бот протестирован и работает в виртуальной среде Hyper-V на системе Ubuntu Server 20.04 и новее (возможен запуск в системе Windows через интерпретатор Git Bash) для удаленного управления приложениями, установленные в домашней системе Windows или Linux*. Хранение торрент-файлов происходит в системе, на которой запущен бот.
* Проверка удаленного управления приложениями на системе Linux не произодилась. Так как весь стек приложений является кросс-платформенным и имеет единую схему для удаленного взаимодействия через
API, все должно (и будет) работать точно также.
Добавление торрента по 🧲 hash-сумме и 🌐 url-адресу торрент файла (без загрузки самого файла) возможно из любого источника (торрент трекера). По мимо загрузки, это также дает возможность сформировать и сохранить торрент файл на сервере с полученными метаданными через торрент клиент qBittorrent или Transmission, который можно выгрузкой в Telegram, для дальнейшей загрузки через ваш торрент клиент на телефоне.
Запуск в контейнере является альтернативой настройки службы systemd. Обработка ответов происходит заметно быстрее (сравнительно с локальным запуском на малопроизводительных системах), по этому такой способ является рекомендуемым.
cd ~/kinozal-bot
FROM alpine:latest
WORKDIR /kinozal-bot
RUN apk add --no-cache bash coreutils curl grep sed gawk jq tzdata
ENV TZ=Etc/GMT-3
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY kinozal-bot.sh .
RUN chmod +x kinozal-bot.sh
ENTRYPOINT ["bash", "-c", "./kinozal-bot.sh start bot docker"]
Соберите образ и запустите контейнер в Docker:
docker build -t kinozal-bot .
docker run -d \
--name kinozal-bot \
--restart=unless-stopped \
--label com.centurylinklabs.watchtower.enable=false \
-v ./torrents:/kinozal-bot/torrents \
-v ./kinozal-bot.conf:/kinozal-bot/kinozal-bot.conf \
kinozal-bot
Или загрузите образ из Docker Hub:
Образ собран на системе с архитектурой
aarch64в режимеall.
docker run -d \
--name kinozal-bot \
--restart=unless-stopped \
-v ./torrents:/kinozal-bot/torrents \
-v ./kinozal-bot.conf:/kinozal-bot/kinozal-bot.conf \
lifailon/kinozal-bot:latest
Размер образа составляет 9 MiB. Режим unless-stopped отвечает за перезапуск контейнера в случае перезагрузки системы или другого сбоя, за исключением ручной остановки.
При запуске контейнера используется механизм bind mount (-v путь в системе:путь в контейнере), это удобно для хранения конфигурации (не сохраняя ее в образе) и синхронизации торрент файлов (.torrent) с хостовой системой, тем самым при запуске бота в контейнере или локальной системе будет доступ к одному и томуже составу торрент файлов, а после удаления контейнера и образа файлы будут сохранены в системе.
Вы можете управлять запуском контейнара с помощью команд:
docker <start/restart/stop> kinozal-bot
Для просмотра журналов контейнера используется команда: docker logs kinozal-bot.
Что бы не вызывать каждый раз команду logs для просмотра логов контейнера или других журналов, установите терминальный пользовательский интерфейс lazyjournal для быстрого мониторинга и фильтрации логов контейнеров Docker и Podman, юнитов systemd или лог-файлов в системе.
Для мониторинга журналов контейнеров через веб-интерфейс, используйте Dozzle.
Команда для быстрого удаления контейнера и образа:
docker stop kinozal-bot && docker rm kinozal-bot && docker rmi kinozal-bot && docker rmi alpine || docker rmi lifailon/kinozal-bot:latest
Content type
Image
Digest
sha256:f2832736c…
Size
9.1 MB
Last updated
about 1 year ago
docker pull lifailon/kinozal-bot