Skip to content

🧲 Telegram bot that implements remote control of the qBittorrent and Transmission torrent client, interface for the Kinozal torrent tracker, integration with TMDB and synchronization of downloaded media content with Plex Media Server.

License

Notifications You must be signed in to change notification settings

Lifailon/Kinozal-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kinozal Bot & News

Telegram бот, который позволяет автоматизировать процесс доставки контента до вашего телевизора, используя только телефон.

С помощью бота вы получите удобный и привычный интерфейс для взаимодействия с торрент трекером Кинозал и базой данных TMDB для отслеживания даты выхода серий, сезонов и поиска актеров для каждой серии, а также возможность управлять торрент клиентом qBittorrent или Transmission на вашем компьютере, находясь удаленно от дома, а главное, все это доступно из единого интерфейса и без установки клиентского приложения на конечные устройства. В отличии от других приложений, предназначенных для удаленного управления торрент клиентами, вам не нужно находиться в той же локальной сети или использовать VPN.

Запустить бота возможно как службу systemd или в контейнере 🐳 Docker (рекомендуется). Вы можете настроить и управлять торрент клиентом независимо от настройки или работоспособности трекера Кинозал, или наоборот, использовать только интерфейс Кинозал для поиска раздач и выгрузки торрент файлов в Telegram.

На базе бота реализован новостной канала Kinozal-News, который генерирует посты на основе новых публикаций в торрент трекере Кинозал (современная альтернатива RSS). Каждый пост содержит краткую информацию о раздаче (год выхода, страна производства, рейтинг, качество и перевод), а также #хештеги по жанру для фильтрации контента на канале и кнопки с ссылками описания фильма или сериала в базах данных о кинематографе Кинопоиск и IMDb, бесплатный онлайн просмотр через плееры ▶️ Kinobox и 🧲 магнитные ссылки для прямой загрузки содержимого раздачи в вашем торрент клиенте по умолчанию (применимо как для bittorrent-клиентов на телефоне, так и Windows или Linux).

Присоединяйтесь к каналу, что бы не пропускать новые публикации в трекере:

Telegram

На канале присутствует фильтрация всех публикаций по рейтингу (7.0 и выше), году выхода (2024 и новее), региону и времени, а также на основе предыдущих публикаций (по названию и их размеру) для исключения дублирующихся раздач.

Или используйте публичную RSS ленту новостей из проекта TorAPI с поддержкой фильтрации:

Kinozal RSS Feed Swagger Settings

Для пользователей бота реализован сценарий публичного запуска зеркала на платформе Vercel:

Kinozal-Proxy


Документация:


📝 Статьи на Хабр

💁‍♂️ Как это работает

Например, пока вы едите домой с работы, у вас появляется возможность подобрать фильм или сериал в обширной базе Кинозал прямиком с вашего телефона, или, найти что-то новое на канале Kinozal-News, после чего сразу загрузить выбранное на ваш компьютер и автоматически или через бот синхронизировать данные с Plex Media Server. По приходу домой, вам остается только открыть приложение Plex на вашем телевизоре и начать просмотр 📺🍿.

Image alt

Такой подход также применим для передачи управления по подбору контента другому члену семьи (🐒), это особенно актуально, если у вас один компьютер, который может быть занят или к нему нет прямого доступа. Разобраться в интерфейсе бота проще, чем использовать все сервисы по отдельности, и главное, куда быстрее.

📚 Stack

Зависимости:

  • jqlang для обработки данных в формате json
  • Доступ в Кинозал и TMDB (опционально, ознакомьтесь со всеми возможными вариантами получения доступа в настройках)

Серверная часть написана на чистом Bash и использует стандартный набор Unix-утилит.

Бот протестирован и работает в виртуальной среде Hyper-V на системе Ubuntu Server 20.04 и новее (возможен запуск в системе Windows через интерпретатор Git Bash) для удаленного управления приложениями, установленные в домашней системе Windows или Linux*. Хранение торрент-файлов происходит в системе, на которой запущен бот.

* Проверка удаленного управления приложениями на системе Linux не произодилась. Так как весь стек приложений является кросс-платформенным и имеет единую схему для удаленного взаимодействия через API, все должно (и будет) работать точно также.

🍿 Реализовано

  • ✅ Интерфейс для взаимодействия с торрент трекером Кинозал. Поиск раздач с фильтрацией по году выхода и формату разрешения (HD/FullDH/4K), подробная информации о каждой раздачи, содержимое раздачи, загрузка торрент файлов, поиск актеров и получение его фильмографии.
  • ✅ Централизованное управление загруженными торрент файлами (.torrent) на сервере, с возможностью выгрузки в Telegram.
  • ✅ Интерфейс удаленного управления торрент клиентом qBittorrent. Добавление раздач на загрузку из торрент файла, инфо хеш (передается в каждой публикации новостного канала и при поиске раздач в боте) а также через url торрент файла, получение подробной информации о загрузке (скорость загрузки, статус, пиры, сиды и т.д.), пауза и возобновление загрузки, проверка на целостность, принудительно анонсировать, переключение лимитов скорости, управление приоритетом отдельных файлов, удаление торрента и содержимого раздачи из системы.
  • ✅ Интерфейс управления торрент клиентом Transmission. Добавление раздач на загрузку из торрент файла, инфо хеш или url, получение подробной информации о загрузке, пауза и возобновление загрузки, управление приоритетом отдельных файлов, удаление торрента и содержимого раздачи.
  • ✅ Синхронизация контента с Plex Media Server, а также просмотр содержимого директорий и дочерних файлов.
  • ✅ Получение дополнительной информации о фильме и сериале из The Movie Database (TMDB). Список актеров и сезонов для каждого сериала, список серий в каждом сезоне, дата выхода сезонов и серий, а также получение подробной информации о каждой серии и список приглашенных актеров.

Добавление торрента по 🧲 hash-сумме и 🌐 url-адресу торрент файла (без загрузки самого файла) возможно из любого источника (торрент трекера). По мимо загрузки, это также дает возможность сформировать и сохранить торрент файл на сервере с полученными метаданными через торрент клиент qBittorrent или Transmission, который можно выгрузкой в Telegram, для дальнейшей загрузки через ваш торрент клиент на телефоне.


🚀 Примеры использования

  • Загрузка раздачи из канала по 🧲 магнитной ссылки (переадресация происходит автоматически в торрент клиент по умолчанию):

💡 Так как параметр url в keyboard Telegram API не поддерживает magnet-ссылки, был реалезован механизм переадресации через magnet2url, который также добавляет в ссылку список актуальных серверов торрент трекеров, используемых в Кинозал, а также WebTorrent, RuTracker, NoNameClub и RuTor.

Быстрее всего (в течение 1-2 секунд с момента перехода по ссылке) метаданные загружает локальный клиент LibreTorrent на Android и клиент WebTorrent Desktop или WebTorrent Desktop api на Windows, в то время как qBittorrent и Transmission может понадобиться до нескольки минут, а также загрузка может происходить медленнее. Для решения такой проблемы, может помочь запрос большего количества участников у торрент трекера (повторно анонсировать, доступно для клиента qBittorrent).

  • Демонстрация работы поиска и добавление на загрузку в qBittorrent (версия 0.4.4):

Скорость получения информации из трекера Кинозал на прямую зависит от скорости работы вашего интернета и/или VPN соединения. При этом, скорость ответов бота при запуске в контейнере (добавлено в версии 0.4.6) в моей системе увеличилась примерно в два раза.

  • 🔍 Поиск в торрент трекере c фильтрацией по году выхода и формату разрешения:

  • 👤 Профиль Кинозал, список торрент файлов на сервере и выгрузка всех торрент файлов (с полученными метаданными) в Telegram:

  • 🍿 Получение информации о выбранном сериале в Кинозал (стандартный вывод для всех раздач, из данного интерфейса происходит управление выбранным торрент файлом), а также пример управления загрузкой в клиенте 🔳 Transmission:

  • 👥 Поиск по актеру в трекере Кинозал и список фильмов с его участием, а также получение дополнительной информации из базы 💙 TMDB и даты выхода всех сезонов и серий:

  • 🐸 Список и статус всех активных торрентов, добавленных в клиент qBittorrent, а также получение дополнительной информации и управление загрукой файлов:

  • 🟠 Список секций и синхронизация контента, а также просмотр содержимого файлов на сервере Plex:


📑 Зависимости

Установите jq:

apt install jq
jq --version
jq-1.6

Также, вы можете проверить, что в вашей системе установлен интерпритатор bash и следующие пакеты (предустановлены по умолчанию в большинстве дистрибутивов Linux): curl, grep, sed, gawk, tail, используя параметр --version.

bash --version
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)

Для запуска бота необходимо загрузить скрипт kinozal-bot.sh и конфигурационный файл kinozal-bot.conf, который располагается рядом со скриптом.

# Создаем директорию для скрипта и хранения сопутствующих файлов в процессе работы
cd ~
mkdir kinozal-bot
# Клонируем репозиторий
git clone https://github.com/Lifailon/Kinozal-Bot
# Копируем скрипт и файл конфигурации
cp Kinozal-Bot/scripts/kinozal-bot.sh kinozal-bot
cp Kinozal-Bot/scripts/kinozal-bot.conf kinozal-bot
# Удаляем остальные файлы проекта
rm -r Kinozal-Bot
# Переходим в директорию с конфигурацией для ее редактирования
cd kinozal-bot

В примере используется директория kinozal-bot в корне домашнего каталога текущего пользователя.

Так выглядит состав файлов на рабочем экземпляре:

⚙️ Настройка

Для работы бота, необходимо подготовить свою домашнюю среду, все настройки подключения задаются в конфигурационном файле: 📑 kinozal-bot.conf.

Возможно, у вас уже подготовлены все настройки для управления и вам достаточно только заполнить конфигурацию. Для редактирования, вы можете воспользоваться любым встроенным консольным редактором, например, nano kinozal-bot.conf или WinSCP.

💡 Имея уже подготовленный файл, можно очень быстро перезапустить бота на любой другой машине в домашней сети.

  1. Зарегистрируйте аккаунт на сайте Кинозал и заполнить параметры конфигурации:

KZ_PROFILE="id_you_profile" - идентификатор вашего профиля (используется для получения информации из профиля Кинозал)
KZ_USER="LOGIN" - логин (используется на этапе получения инфо хэш из раздачи, содержимого раздачи и загрузки торрент-файлов)
KZ_PASS="PASSWORD" - пароль

  1. Если у вас заблокирован доступ в Кинозал, вы можете воспользоваться VPN или Proxy сервером, через который бот сможет проксировать свои запросы.

Я использую HandyCache (Proxy) в системе Windows, рядом с которым запущена бесплатная версия VPN Hotspot Shield в режиме Split Tunneling до сайта Кинозал (в таком режиме не будет доступен сервис TMDB API), при котором трафик до указанного сайта проходит через VPN туннель и не затрагивает другие сервисы, тем самым не ограничивая загрузку торрентов на хостовой машине.

Вы также можете настроить выделенную виртуальную машину для подобного стэка, и даже добавить в него Wi-Fi модуль для организации второй домашней сети без необходимости использовать раздельное туннелирование.

  • 2.1. Настройка Proxy-сервера:

PROXY="True" - включить использование прокси сервера в curl-запросах при обращении к Кинозал и TMDB
PROXY_ADDR="http://192.168.3.100:9090" - адрес сервера и порт, на котором слушает запросы Proxy-сервер
PROXY_USER="LOGIN"
PROXY_PASS="PASSWORD"

  • Для удаленного управления VPN-соединением в системе Windows реализован проект vpnc и интегрирован бот.

Для запуска и настройки, следуйте инструкциям на странице проекта. После того, как у вас будет настроена конфигурация и запущен исполняемый файл (который может быть добавлен в автозагрузку), заполните параметр адреса сервера:

VPNC_ADDR="http://192.168.3.100:1780"

Данное решение актуально только в том случае, если ваш клиент запущен на одной машине с другими сервисами (и поддерживает автоподключение при запуске) и не используется режим раздельного туннелирования. Такой подход удобен в первую очередь для отключения соединения на время загрузки файлов большого объема.

  • 2.2. Поддерживается использования обратного прокси сервера, на котором есть прямой доступ к трекеру, например, через froxy:

Загрузите исполняемый файл и запустите обратный прокси сервер на машине с доступом к Кинозал:

froxy --local 192.168.3.100:8443 --remote https://kinozal.tv

Или запустите в контейнере:

docker pull lifailon/froxy:latest
docker run -d --name froxy -e SOCKS=0 -e FORWARD=0 -e LOCAL="*:8443" -e REMOTE="https://kinozal.tv" -e USER="false" -e PASSWORD="false" -p 8443:8443 --restart=unless-stopped lifailon/froxy

Отключите в конфигурации использование Proxy-сервера и замените адрес Кинозал на адрес обратного прокси сервера:

PROXY="False"
KZ_ADDR="http://192.168.3.100:8443"

Вы можете ознакомиться на странице репозитория, что такое обратный прокси сервер и какие задачи он решает.

  • 2.3. Также возможно развернуть свое публичное зеркало с использованием функции serverless на базе Next.js для доступа к трекеру без использования VPN.

Рекомендуется запустить свое приложение из исходного репозитория Kinozal-Proxy, во избежании излишней нагрузки на один экземпляр сервера и сохранности ваших авторизационных данных в трекере.

Для этого, вопользуйтесь кнопкой ниже и следуйте инструкциям:

Vercel

  1. Создайте своего Telegram бота через @BotFather используя интуитивно понятный интерфейс и получите API-токен доступа. Что бы получить ваш чат id, напишите любое сообщение вашему боту и перешлите его Get My ID, после чего заполните параметры:

TG_TOKEN="6873341222:AAFnVgfavenjwbKutRwROQQBya_XXXXXXXX" - используется для чтения и отправки сообщений ботом
TG_CHAT="8888888888,999999999" - id всех чатов, которые будут иметь доступа к боту

По мимо этого, id можно получить в логе работы бота из запросов новых клиентов (>>> Request), которые вы сможете добавить в конфигурацию через запятую.

  1. Установите и настройте торрент клиент qBittorrent.
  • 4.1. Включите Веб-интерфейс в настройках приложения:

Укажите параметры подключения к клиенту:

QB_ADDR="http://192.168.3.100:8888" - указать URL-адрес, где указан протокол (по умолчанию, http), ip-адрес машины, на которой запущен qBittorrent и порт (задается в настройках Веб-интерфейса)
QB_USER="LOGIN" - имя пользователя, указывается в поле Аутентификация в настройках Веб-интерфейса
QB_PASS="PASSWORD" - пароль, указывается в поле Аутентификация в настройках Веб-интерфейса

  • 4.2. Определите директорию для загрузки контента в qBittorrent по умолчанию.

💡 Это должна быть директория, которая будет добавлена на сервер Plex, что бы в дальнейшем можно было синхронизировать загруженный контент, используя бот.

  1. Установите и настройте Transmission для управления клиентом с помощью бота:

Укажите параметры подключения к клиенту:

TRANS_ADDR="http://192.168.3.100:9091"
TRANS_USER="LOGIN"
TRANS_PASS="PASSWORD"

Возможно использовать как один, так и оба торрент клиентов для синхронизации с сервером Plex.

☁️ Вы также можете настроить второй клиент для синхронизации с любым облачным хранилищем, что бы иметь удаленный доступ к файлам, например, с телефона, т.к. для удаленного непрерывного просмотра или загрузки контента с локального сервера Plex требуется подписка Plex Pass. Для этого укажите любую дочернюю директорию внутри вашего облачного хранилища (необходимо, что бы ваше облако было подключено к файловой системе компьютера) для загрузки контента в клиенте Transmission (или qBittorrent) по умолчанию. После загрузки контента, вы сможете получить к нему доступ на любом удаленном устройстве в режиме онлайн или для загрузки, без необходимости ожидания сидов или пиров.

  1. Установите Plex Media Server и получите токен доступа.

Так как нет возможности напрямую получить токент доступа в веб-интерфейсе, можно воспользоваться панелью разработчика в браузере. Откройте Development Tools нажатием кнопки F12 и перейдите на вкладку сеть (network), обновите страницу интерфейса вашего сервера Plex, после чего вы сможете увидеть токен в любом из url-запросов (X-Plex-Token=ваш_токена). Передайте адрес сервера (по умолчанию, порт 32400) и содержимое токена в параметры:

PLEX_ADDR="http://192.168.3.100:32400"
PLEX_TOKEN="ваш_токена"

💡 Создайте новую секцию на сервере Plex и укажите путь к директории хранения вашего контента, на которую уже настроен (п.4 и п.5) клиент qBittorrent или Transmission по умолчанию:

  1. Настройка подключения к TMDB:

💡 Как и в случае с настройкой второго торрент клиента, данный пункт является опциональным.

Зарегестрируйте аккаунт на сайте The Movie Database и выпустите ключ доступа к api, после чего заполните параметры конфигурации (возможно указать ключ или токен на выбор):

TMDB_KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
TMDB_TOKEN="XXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXX"
  1. Путь для хранения торрент файлов, cookie (временные файлы, которые используются для авторизации в Кинозал и qBittorrent), а также лог-файлов и его размер (поддерживается ротация) на сервере задаются в конфигурации:
path="/home/lifailon/kinozal-bot"
log_size_mbyte=10

Все запросы к боту, а также его ответы логируются.

🔌 Подключение и управление

Перед запуском, вы можете проверить подключение к сервисам, в случае успеха, вы получите текущую версию приложения:

cd ~/kinozal-bot
bash kinozal-bot.sh version

qBittorrent Client:  4.6.5 (api: 2.9.3)
Transmission Client: 4.0.6 (38c164933e)
Plex Media Server:   1.40.0.7998-c29d4c0c8
  • Используйте интерпретатор Bash для запуска (root права не требуются):
bash kinozal-bot.sh start bot
  • Узнать статус работы и количество активных процессов:
bash kinozal-bot.sh status

[INFO] 14:38:46: Server running. Count running process: 4
  • Проверка подключения к qBittorrent:

Если настройки заданы правильно, вы можете отобразить журнал работы qBittorrent клиента в своей консоли:

bash kinozal-bot.sh log qb
bash kinozal-bot.sh log qb all
  • Отобразить журнал работы системы и сервера Plex:
bash kinozal-bot.sh log plex system
bash kinozal-bot.sh log plex system all
bash kinozal-bot.sh log plex server
bash kinozal-bot.sh log plex server all
  • Вывести журнал работы бота:
bash kinozal-bot.sh log bot   
bash kinozal-bot.sh log bot 50
  • Остановка бота и всех его дочерних процессов:
bash kinozal-bot.sh stop
bash kinozal-bot.sh status

[INFO] 14:40:16: Server not running. Count running process: 0

🐧 Служба (unit)

Вы можете пропустить этот шаг и запустить бота в контейнере 🐳 Docker

Если все настройки заданы и подключение проверено, можно запустить бота как службу (unit) systemd, что бы автоматизировать процесс запуска в случае перезагрузки системы, а также передать поток логов в системный журнал (удобно для удаленного мониторинга, например, через rsyslog в Graylog).

  • Создайте файл службы и откройте его в любом текстовом редакторе:
touch /etc/systemd/system/kinozal-bot.service
nano /etc/systemd/system/kinozal-bot.service
[Unit]
Description=Telegram bot for kinozal.tv torrent tracker, remote managment qBittorrent and Plex Media Server
After=network.target

[Service]
ExecStart=/bin/bash "/home/lifailon/kinozal-bot/kinozal-bot.sh" start bot service
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
Type=forking

[Install]
WantedBy=multi-user.target

💡 Замените путь к скрипту сервера в параметре запуска ExecStart на свой.

  • Примените настройки, включите автозапуск и запустите службу:
systemctl daemon-reload
systemctl enable kinozal-bot
systemctl start kinozal-bot
systemctl status kinozal-bot

После этого возможно управлять запуском, используя команды: start, stop и restart.

Для просмотра журнала работы бота, можете использовать утилиту journalctl:

journalctl -fu kinozal-bot

🐳 Контейнер

Запуск в контейнере является альтернативой настройки службы systemd. Обработка ответов происходит заметно быстрее (сравнительно с локальным запуском на малопроизводительных системах), по этому такой способ является рекомендуемым.

  • Перейдите в директорию со скриптом и настроенным файлом конфигурации:
cd ~/kinozal-bot
  • Создайте dockerfile с содержимым:
# Базовый легковесный образ
FROM alpine:latest
# Устанавливаем рабочую директорию как в конфигурации для локального запуска 
WORKDIR /home/lifailon/kinozal-bot
# Установка зависимостей
RUN apk add --no-cache bash coreutils curl grep sed gawk jq
# Копируем скрипт и конфигурацию
COPY kinozal-bot.sh .
COPY kinozal-bot.conf .
# Права на запуск скрипта
RUN chmod +x kinozal-bot.sh
# Запускаем потоки сервера и логируем вывод работы бота в консоль
CMD ["bash", "-c", "./kinozal-bot.sh start bot docker"]

💡 Рабочая директория (WORKDIR) соответствует параметру path в конфигурации и используются для синхронизации между локальным запуском (для отладки) и в контейнере, по этому измените путь на свой.

Docker

Соберите образ и запустите контейнер в Docker:

root docker build -t kinozal-bot .
root docker run -d --name kinozal-bot -v /home/lifailon/kinozal-bot/torrents:/home/lifailon/kinozal-bot/torrents --restart=unless-stopped kinozal-bot

Размер образа составляет 20 МБайт. Режим unless-stopped отвечает за перезапуск контейнера в случае перезагрузки системы или другого сбоя, за исключением остановки контейнера с помощью команды: docker stop kinozal-bot.

При создании контейнера используется механизм bind mount (-v путь в системе:путь в контейнере), это удобно для синхронизации и хранения торрент файлов (.torrent) с локальной системой, тем самым при запуске бота в контейнере или локальной системе будет доступ к одному и томуже составу торрент файлов, а после удаления контейнера и образа файлы будут сохранены в системе.

Podman

Так как бот для своей работы не требует root прав, то проще и правильнее запустить контейнер в системе Podman:

podman build -f dockerfile -t kinozal-bot .
podman run -d --name kinozal-bot -v /home/lifailon/kinozal-bot/torrents:/home/lifailon/kinozal-bot/torrents kinozal-bot

Так как Podman не использует службы для своей работы, для автоматического запуска бота при перезагрузке системы возможно создать пользовательскую службу:

# Остановить контейнер
podman stop kinozal-bot
# Скопируйте содержимое службы из GitHub
mkdir -p ~/.config/systemd/user && touch ~/.config/systemd/user/kinozal-bot-podman.service
curl -s "https://raw.githubusercontent.com/Lifailon/Kinozal-Bot/refs/heads/rsa/scripts/kinozal-bot-podman.service" > ~/.config/systemd/user/kinozal-bot-podman.service
# Запустить службу и проверить работу контейнера
systemctl --user start kinozal-bot-podman.service
podman ps
# Включить поддержку пользовательских служб и добавить в автозагрузку
loginctl enable-linger $(whoami)
systemctl --user enable kinozal-bot-podman.service

Мониторинг и управление

Вы можете управлять запуском контейнара с помощью команд: <docker/podman> <start/restart/stop> kinozal-bot. Для просмотра журналов контейнера используется команда: logs kinozal-bot.

Что бы не вызывать каждый раз команду logs для просмотра логов контейнера или других журналов, установите терминальный пользовательский интерфейс lazyjournal для быстрого мониторинга и фильтрации логов контейнеров Docker и Podman или юнитов systemd.

Для удобного мониторинга контейнеров через веб-интерфейс, используйте Dozzle.

Image alt

Команда для быстрого удаления контейнера и образа:

root docker stop kinozal-bot && docker rm kinozal-bot && docker rmi kinozal-bot && docker rmi alpine

Вы также можете сохранить образ контейнера с помощью одной команды, что удобно, в случае переустановки системы или переноса бота на другую машину (тем самым не нужно заполнять конфигурацию и собирать образ заново):

root docker save -o kinozal-bot.tar kinozal-bot

На новой системе остается только загрузить образ из файла и запустить контейнер:

root docker load -i kinozal-bot.tar
root docker run -d --name kinozal-bot --restart=unless-stopped kinozal-bot

📌 Меню бота

Что бы создать и закрепить список основных команд для быстрого вызова через меню бота, перейдите в управление вашим ботом через BotFather, выберите Edit Bot и настройте список команд с помощью Edit commands. Передайте список команд, как на примере ниже (вы можете изменить список команд, как и их описание на свое усмотрение):

search_id - 🔎 Поиск в Кинозал по id
search_title - 🍿 Поиск по названию
search_actor - 👥 Поиск по актеру
research - 🔄 Повторить последний поиск
torrent_files - 🗂 Торрент файлы
status - 🟢 qBittorrent
trans_status - 🔲 Transmission
add_torrent - ➕🧲 Добавить торрент по инфо хеш
add_url - ➕🌐 Добавить торрент по url-адресу
plex_info - 🟠 Plex
find - 🔍 Поиск в Plex
vpnc_status - 🛡 VPN

Слева от поля ввода текста в интерфейсе вашего бота появится меню для быстрого вызова команд, которые возможно выбирать (для вставки текстом в поле ввода) с помощью кнопки Tab, или продолжительным нажатием через мобильный интерфейс.


💁‍♂️ Список команд

Список всех доступных команд (за исключением /search_title, /search_actor, /add_hash и /add_url) автоматизирован через меню интерфейса бота с помощью кнопок.

/search_title - Поиск в Кинозал по названию (вначале запроса принимает год выхода для фильтрации)
/profile - Профиль Кинозал (количество доступных для загрузки торрент файлов, статистика загрузки и отдачи, время сид и пир)
/torrent_files - Список загруженных торрент файлов с возможностью удаления
/status - список и статус всех текущих торрентов, добавленных в торрент-клиент qBittorrent
/plex_info - Список секций на сервере Plex для доступа к их контенту
/download_torrent <id> <file_name> - Загрузить торрент файл (передать два параметра: id и имя файла без пробелов)
/delete_torrent_file_<id> - Удалить торрент файл по id
/search_id <id> - Поиск в Кинозал по id
/download_video_<id> - Добавить торрент файла на загрузку в qBittorrent
/info <hash> - Статус загрузки указанного торрента (передать параметр: hash торрента)
/torrent_content <hash> - Содержимое торрента (список файлов)
/file_torrent <index> - Статус выбранного торрент файла (передать параметр: порядковый индекс файла)
/torrent_priority <num> - Изменить приоритет выбранного файла в /file_torrent (передать параметр: номер приоритета)
/pause <hash> - Установить на паузу
/resume <hash> - Восстановить загрузку
/delete_torrent <hash> - Удалить торрент из клиента
/delete_video <hash> - Удалить вместе с данными
/plex_status_<key> - Информация о выбранной секции в Plex (передать параметр: ключ секции)
/plex_sync_<key> - Синхронизировать выбранную секцию в Plex
/plex_folder_<key> - Получить список директорий и файлов в выбранной секции
/find - Поиск контента в Plex по пути (передать параметр: конечную точку)

  • Добавлено в версии 0.4.1:

/plex_last_views - Список последних просмотров (дата просмотра и время остановки) в Plex
/plex_last_added - Список последних добавленных файлов в Plex
/kinozal_description <id> - Описание фильма из Кинозал (удалено из меню в версии 0.4.5)

  • Добавлено в версии 0.4.2:

/kinozal_actors <id> - Список актеров из Кинозал (передать параметр: id kinozal)
/actor <id> - Описание, поиск актера и его фильмографии из Кинозала и ссылка на Кинопоиск (передать параметр: имя актера)
/kinopoisk_movie <id> - Информация о фильме из Кинопоиск по id kinopoisk (удалено из меню в версии 0.4.5)

  • Добавлено в версии 0.4.3:

Поддержка WinAPI (временно отключено в версии 0.4.4).

  • Добавлено в версии 0.4.4:

/search_title <year*> <format*> <title> - Поиск с фильтрацией по году выхода и формату разрешения
/research - Повторить последний поиск (id не требуется)
/file_list - Извлечь список файлов и их размер из раздачи
/send_torrent_file_id - Отправка загруженного торрент-файла в Telegram
/send_last_torrent_file - Отправить последний загруженный торрент-файл
/send_all_torrent_files - Отправить все загруженные торрент-файлы
/skip_all_files <hash> - Пропустить загрузку всех файлов путем изменения приоритета в qBittorrent
/normal_all_files <hash> - Восстановить загрузку всех файлов
/add_torrent <hash> - Добавить раздачу на загрузку в qBittorrent по инфо хэш
/get_torrent <hash> - Выгрузить торрент файл на сервер по инфо хэш и отправить в телеграмм
/torrent_recheck <hash> - Проверить торрент файл
/torrent_limit - Переключить альтернативные лимиты скорости загрузки и отдачи

  • Добавлено в версии 0.4.5:

/search_actor <name> - Поиск актеров в базе Кинозал (возвращает список найденных актеров)
/actor <search/list> <name> - Первый параметр принимает тип возврата (/kinozal_actors или /search_actor)
/trans_status - Список и статус всез торрент в клиенте Transmission
/trans_info <id> - Получить подробную информацию о торренте
/trans_file_all <id> <skip/resume> - Изменить приоритет загрузки всех торрент файлов выбранной раздачи по id (пропустить или возобновить загрузку и выставить нормальный приоритет)
/trans_file_select <id> <file_index> - Переключить приоритет выбранного файла (пропустить или высокий приоритет)
/trans_pause <id> <start/stop> - установить на паузу или возобновить
/trans_remove <id> <false/true> - удалить торрент и данные
/trans_set_alt_speed - переключить лимит альтернативной скорости
/add_hash <qbit/trans> <hash> - Добавить торрент по инфо хеш в указанный клиент
/download_trans_<id> - Добавить торрент файла на загрузку в Transmission клиент
/add_url <url> - Добавить торрент по url-адресу с выбором клиента через меню
/add_trans_url <url> - Добавить торрент по url-адресу в Transmission клиент
/add_qbit_url <url> - Добавить торрент по url-адресу в qBittorrent клиент
/torrent_reannounce <hash/all> - Принудительно повторно анонсировать (запросить у трекера больше участников) для выбранного торрента в qBittorrent клиенте
/tmdb_info <kinozal_id> - Получить информацию о фильме или сериале через TMDB API
/tmdb_actor <tmdb_id> <type> - Получить список актеров
/tmdb_season_episodes <tmdb_id> <season_number> - Список серий в указанном сезоне
/tmdb_select_episode <tmdb_id> <season_number> <episode_number> - Информация по выбранной серии и список приглашенных актеров
/tmdb_person <person_id> - Информация по актеру и ссылки на TMDB и IMDb


Примеры запросов:

  • 🔍 Поиск в Кинозал по id:

/search_id 1940284

  • 🍿 Поиск по названию фильма или сериала:

/search_title Рокки 2
/search_title Рокки 4

  • Поиск с фильтрацией по типу (фильм или сериал):

/search_title Рокки 2 фильм

  • Поиск фильмов с фильтрацией по году выхода:

/search_title 1979 Рокки фильм
/search_title Рокки 1985 фильм

  • Поиск фильмов с фильтрацией по году выхода и формату разрешения (HD, FullHD или 4K):

/search_title Рокки фильм 1979 720
/search_title Рокки фильм 1979 1080
/search_title Рокки фильм 1979 2160

  • 👥 Поиск актера по имени в базе Кинозал:

/search_actor "Алан"
/search_actor "Сильвестр"

  • Получить биографию и фильмографию указанного актера:

/actor search Алан Тьюдик
/actor list Сильвестр Сталлоне

  • 🔄Повторить последний запрос поиска для фильма/сериала или актера:

/research

  • 🧲 Добавить торрент по инфо хеш на загрузку с выбором клиента через меню:

/add_torrent A72BD27A0CE265A3C7965392BC06C25EDD759214

  • 🧲 Добавить торрент по инфо хеш в указанный торрент клиент:

/add_hash qbit A72BD27A0CE265A3C7965392BC06C25EDD759214
/add_hash trans A72BD27A0CE265A3C7965392BC06C25EDD759214

  • 🌐 Добавить торрент по url-адресу с выбором клиента через меню:

/add_url https://d.rutor.info/download/869858
/add_url https://nnmclub.to/forum/download.php?id=1308422

  • 🔳 Добавить торрент в Transmission клиент:

/add_trans_url https://d.rutor.info/download/869858

  • 🐸 Добавить торрент в qBittorrent клиент:

/add_qbit_url https://nnmclub.to/forum/download.php?id=1308422


🎉 Другие проекты

  • TorAPI - неофициальный и публичный API (backend) для торрент трекеров RuTracker, Kinozal, RuTor и NoNameClub. Используется для быстрого и централизованного поиска раздач, получения торрент файлов, магнитных ссылок и подробной информации о раздаче по названию фильма, сериала или идентификатору раздачи, а также предоставляет новостную RSS ленту для всех провайдеров с фильтрацией по категориям.

  • 🔎 LibreKinopoisk - расширение для Google Chrome, Mozilla Firefox и мобильных устройств, которое добавляет кнопки на сайт Кинопоиск и в контекстное меню браузера, а также реализует интерфейс TorAPI для быстрого поиска фильмов и сериалов в открытых источниках в стиле Jackett без необходимости в VPN и настройки сервера.

  • 📡 Froxy - кроссплатформенная утилита командной строки для реализации SOCKS, HTTP и обратного прокси сервера на базе .NET. Поддерживается протокол SOCKS5 для туннелирования TCP трафика и HTTP протокол для прямого (классического) проксирования любого HTTPS трафика (CONNECT запросы), а также TCP, UDP и HTTP/HTTPS протоколы для обратоного проксирования. Для переадресации веб-траффика через обратный прокси поддерживаются GET и POST запросы с передачей заголовков и тела запроса от клиента, что позволяет использовать API запросы и проходить авторизацию на сайтах (передача cookie).

  • 🛡 VPNc - универсальный инструмент для автоматического (локального) и удаленного управления VPN соединением через настольное приложение (системный трей) и API на базе ASP.NET Core.

  • ❤️ WebTorrent Desktop api - форк клиента WebTorrent Desktop, в котором добавлен механизм удаленного управления через API на базе Express.js Framework.

About

🧲 Telegram bot that implements remote control of the qBittorrent and Transmission torrent client, interface for the Kinozal torrent tracker, integration with TMDB and synchronization of downloaded media content with Plex Media Server.

Topics

Resources

License

Stars

Watchers

Forks

Languages