{"id":22951537,"url":"https://github.com/lifailon/kinozal-bot","last_synced_at":"2025-08-22T15:04:11.681Z","repository":{"id":210791590,"uuid":"727245639","full_name":"Lifailon/Kinozal-Bot","owner":"Lifailon","description":"🧲 Telegram bot that implements an interface for the Kinozal torrent tracker, remote control of the qBittorrent and Transmission torrent client, integration with TMDB and synchronization with Plex.","archived":false,"fork":false,"pushed_at":"2025-06-30T18:30:04.000Z","size":163815,"stargazers_count":61,"open_issues_count":0,"forks_count":4,"subscribers_count":9,"default_branch":"rsa","last_synced_at":"2025-08-17T22:59:35.807Z","etag":null,"topics":["api","automation","bash","bot","home-assistant","home-automation","imdb","linux","microservice","plex","plex-media-server","qbittorrent","shell","telegram","telegram-bot","tmdb","tmdb-api","torrent","tracker","transmission"],"latest_commit_sha":null,"homepage":"https://t.me/kinozal_news","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lifailon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-04T13:34:45.000Z","updated_at":"2025-08-17T05:49:10.000Z","dependencies_parsed_at":"2024-06-11T09:05:14.972Z","dependency_job_id":"2a9a9a8f-4ea9-4adc-baa8-f0c66570323f","html_url":"https://github.com/Lifailon/Kinozal-Bot","commit_stats":null,"previous_names":["lifailon/kinozal-bot"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/Lifailon/Kinozal-Bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2FKinozal-Bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2FKinozal-Bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2FKinozal-Bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2FKinozal-Bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lifailon","download_url":"https://codeload.github.com/Lifailon/Kinozal-Bot/tar.gz/refs/heads/rsa","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lifailon%2FKinozal-Bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271657469,"owners_count":24797934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","automation","bash","bot","home-assistant","home-automation","imdb","linux","microservice","plex","plex-media-server","qbittorrent","shell","telegram","telegram-bot","tmdb","tmdb-api","torrent","tracker","transmission"],"created_at":"2024-12-14T15:16:35.589Z","updated_at":"2025-08-22T15:04:11.646Z","avatar_url":"https://github.com/Lifailon.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/logo/kinozal-bot-256px.png\" width=\"32\" /\u003e\r\n    Kinozal Bot \u0026 News\r\n    \u003cimg src=\"image/logo/kinozal-news-256px.png\" width=\"32\" /\u003e\r\n\u003c/h1\u003e\r\n\r\n\u003cp align=\"center\"\u003e\r\n    \u003ca href=\"https://github.com/Lifailon/Kinozal-Bot\"\u003e\u003cimg title=\"GitHub Top Language\"src=\"https://img.shields.io/github/languages/top/Lifailon/KInozal-Bot?label=bash\u0026color=green\"\u003e\u003c/a\u003e\r\n    \u003ca href=\"https://github.com/Lifailon/Kinozal-Bot/releases\"\u003e\u003cimg title=\"GitHub Release\"src=\"https://img.shields.io/github/v/release/Lifailon/Kinozal-Bot?logo=github\u0026label=version\u0026color=blue\"\u003e\u003c/a\u003e\r\n    \u003ca href=\"https://hub.docker.com/r/lifailon/kinozal-bot\"\u003e\u003cimg title=\"Docker Hub\" src=\"https://img.shields.io/docker/image-size/lifailon/kinozal-bot/latest?logo=docker\u0026color=blue\u0026label=Docker+Hub\"\u003e\u003c/a\u003e\r\n    \u003ca href=\"https://github.com/Lifailon/Kinozal-Bot/blob/rsa/LICENSE\"\u003e\u003cimg title=\"GitHub License\"src=\"https://img.shields.io/github/license/Lifailon/Kinozal-Bot?logo=markdown\u0026color=white\"\u003e\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\nTelegram бот, который позволяет автоматизировать процесс доставки контента до вашего телевизора, используя только телефон.\r\n\r\nС помощью бота вы получите удобный и привычный интерфейс для взаимодействия с торрент трекером [Кинозал](https://kinozal.tv) и базой данных [TMDB](https://www.themoviedb.org) для отслеживания даты выхода серий, сезонов и поиска актеров для каждой серии, а также возможность управлять торрент клиентом [qBittorrent](https://github.com/qbittorrent/qBittorrent) или [Transmission](https://github.com/transmission/transmission) на вашем компьютере, находясь удаленно от дома, а главное, все это доступно из единого интерфейса и без установки клиентского приложения на конечные устройства. В отличии от других приложений, предназначенных для удаленного управления торрент клиентами, вам не нужно находиться в той же локальной сети или использовать VPN.\r\n\r\nЗапустить бота возможно как службу **systemd** или в контейнере 🐳 **Docker** (рекомендуется). Вы можете настроить и управлять торрент клиентом независимо от настройки или работоспособности трекера *Кинозал*, или наоборот, использовать только интерфейс *Кинозал* для поиска раздач и выгрузки торрент файлов в Telegram.\r\n\r\nНа базе бота реализован новостной канала [Kinozal-News](https://t.me/kinozal_news), который генерирует посты на основе новых публикаций в торрент трекере *Кинозал* (современная альтернатива **RSS**). Каждый пост содержит краткую информацию о раздаче (год выхода, страна производства, рейтинг, качество и перевод), а также `#хештеги` по жанру для фильтрации контента на канале и кнопки с ссылками описания фильма или сериала в базах данных о кинематографе [Кинопоиск](https://www.kinopoisk.ru) и [IMDb](https://www.imdb.com), бесплатный онлайн просмотр через плееры ▶️ [Kinobox](https://kinobox.tv) и 🧲 [магнитные ссылки](https://en.wikipedia.org/wiki/Magnet_URI_scheme) для прямой загрузки содержимого раздачи в вашем торрент клиенте по умолчанию (применимо как для bittorrent-клиентов на телефоне, так и Windows или Linux).\r\n\r\nПрисоединяйтесь к каналу, что бы не пропускать новые публикации в трекере:\r\n\r\n[![Telegram](https://img.shields.io/badge/Kinozal_News-2CA5E0?style=for-the-badge\u0026logo=telegram\u0026logoColor=white)](https://t.me/kinozal_news)\r\n\r\nНа канале присутствует фильтрация всех публикаций по рейтингу (**7.0** и выше), году выхода (**2024** и новее), региону и времени, а также на основе предыдущих публикаций (по названию и их размеру) для исключения дублирующихся раздач.\r\n\r\nИли используйте публичную RSS ленту новостей из проекта [TorAPI](https://github.com/Lifailon/TorAPI/blob/main/README_RU.md) с поддержкой фильтрации:\r\n\r\n[![Kinozal RSS Feed](https://img.shields.io/badge/kinozal_rss_feed-F88900?style=for-the-badge\u0026logo=rss\u0026logoColor=white)](https://torapi.vercel.app/api/get/rss/kinozal?category=0\u0026year=0\u0026format=0) [![Swagger Settings](https://img.shields.io/badge/-Настройка_RSS-%23Clojure?style=for-the-badge\u0026logo=swagger\u0026logoColor=white)](https://app.swaggerhub.com/apis-docs/Lifailon/TorAPI/0.5.2#/RSS/get_api_get_rss_kinozal)\r\n\r\nДля пользователей бота реализован сценарий публичного запуска зеркала на платформе **Vercel**:\r\n\r\n[![Kinozal-Proxy](https://img.shields.io/badge/Kinozal_Proxy-%23000000.svg?style=for-the-badge\u0026logo=vercel\u0026logoColor=white)](https://github.com/Lifailon/Kinozal-Proxy)\r\n\r\n---\r\n\r\n### Документация:\r\n\r\n- [📝 Статьи на Хабр](#-статьи-на-хабр)\r\n- [💁‍♂️ Как это работает](#️-как-это-работает)\r\n- [📚 Stack](#-stack)\r\n- [🍿 Реализовано](#-реализовано)\r\n- [🚀 Примеры использования](#-примеры-использования)\r\n- [⚡ Зависимости](#-зависимости)\r\n- [⚙️ Настройка](#️-настройка)\r\n- [🔌 Подключение и управление](#-подключение-и-управление)\r\n- [🐧 Служба (unit)](#-служба-unit)\r\n- [🐳 Контейнер](#-контейнер)\r\n  - [Docker](#docker)\r\n  - [Podman](#podman)\r\n  - [Мониторинг](#мониторинг)\r\n- [📌 Меню бота](#-меню-бота)\r\n- [🙋‍♂️ Список команд](#️-список-команд)\r\n- [🎉 Другие проекты](#-другие-проекты)\r\n\r\n---\r\n\r\n## 📝 Статьи на Хабр\r\n\r\n- [Telegram бот для доставки торрент контента с телефона до телевизора](https://habr.com/ru/articles/782028).\r\n\r\n- [Telegram бот для управления торрент клиентом и интеграция с трекером](https://habr.com/ru/articles/826774).\r\n\r\n- [Jackett и альтернативные решения (интерфейсы и api) для поиска торрентов](https://habr.com/ru/articles/841924).\r\n\r\n## 💁‍♂️ Как это работает\r\n\r\nНапример, пока вы едите домой с работы, у вас появляется возможность подобрать фильм или сериал в обширной базе Кинозал прямиком с вашего телефона, или, найти что-то новое на канале [Kinozal-News](https://t.me/kinozal_news), после чего сразу загрузить выбранное на ваш компьютер и автоматически или через бот синхронизировать данные с [Plex Media Server](https://www.plex.tv/ru/media-server-downloads). По приходу домой, вам остается только открыть приложение Plex на вашем телевизоре и начать просмотр 📺🍿.\r\n\r\n![Image alt](image/settings/scheme.jpg)\r\n\r\nТакой подход также применим для передачи управления по подбору контента другому члену семьи (🐒), это особенно актуально, если у вас один компьютер, который может быть занят или к нему нет прямого доступа. Разобраться в интерфейсе бота проще, чем использовать все сервисы по отдельности, и главное, куда быстрее.\r\n\r\n## 📚 Stack\r\n\r\n- [Telegram REST api](https://core.telegram.org/bots/api)\r\n- [qBittorrent WebUI api](https://github.com/qbittorrent/qBittorrent/wiki/WebUI-API-(qBittorrent-4.1))\r\n- [Transmission RPC api](https://github.com/transmission/transmission/blob/main/docs/rpc-spec.md)\r\n- [Plex Media Server api](https://github.com/plexinc) (не содержит официальной документации)\r\n- [TMDB api](https://developer.themoviedb.org/reference/intro/getting-started)\r\n\r\n**Зависимости:**\r\n\r\n- [jqlang](https://github.com/jqlang/jq) для обработки данных в формате *json*\r\n- Доступ в Кинозал и *TMDB* (*опционально*, ознакомьтесь со всеми возможными вариантами получения доступа в [настройках](#️-настройка))\r\n\r\nСерверная часть написана на чистом [Bash](https://ru.wikipedia.org/wiki/Bash) и использует стандартный набор Unix-утилит.\r\n\r\nБот протестирован и работает в виртуальной среде *Hyper-V* на системе *Ubuntu Server 20.04* и новее (возможен запуск в системе Windows через интерпретатор [Git Bash](https://git-scm.com/downloads/win)) для удаленного управления приложениями, установленные в домашней системе Windows или Linux*. Хранение торрент-файлов происходит в системе, на которой запущен бот.\r\n\r\n\u003e \\* Проверка удаленного управления приложениями на системе Linux не произодилась. Так как весь стек приложений является кросс-платформенным и имеет единую схему для удаленного взаимодействия через `API`, все должно (и будет) работать точно также.\r\n\r\n## 🍿 Реализовано\r\n\r\n- ✅ Интерфейс для взаимодействия с торрент трекером **[Кинозал](https://kinozal.tv)**. Поиск раздач с фильтрацией по году выхода и формату разрешения (*HD/FullDH/4K*), подробная информации о каждой раздачи, содержимое раздачи, загрузка торрент файлов, поиск актеров и получение его фильмографии.\r\n- ✅ Централизованное управление загруженными торрент файлами (*.torrent*) на сервере, с возможностью выгрузки в Telegram.\r\n- ✅ Интерфейс удаленного управления торрент клиентом [qBittorrent](https://github.com/qbittorrent/qBittorrent). Добавление раздач на загрузку из торрент файла, [инфо хеш](https://en.wikipedia.org/wiki/Magnet_URI_scheme) (передается в каждой публикации новостного канала и при поиске раздач в боте) а также через url торрент файла, получение подробной информации о загрузке (скорость загрузки, статус, пиры, сиды и т.д.), пауза и возобновление загрузки, проверка на целостность, принудительно анонсировать, переключение лимитов скорости, управление приоритетом отдельных файлов, удаление торрента и содержимого раздачи из системы.\r\n- ✅ Интерфейс управления торрент клиентом [Transmission](https://github.com/transmission/transmission). Добавление раздач на загрузку из торрент файла, инфо хеш или url, получение подробной информации о загрузке, пауза и возобновление загрузки, управление приоритетом отдельных файлов, удаление торрента и содержимого раздачи.\r\n- ✅ Синхронизация контента с [Plex Media Server](https://www.plex.tv), а также просмотр содержимого директорий и дочерних файлов.\r\n- ✅ Получение дополнительной информации о фильме и сериале из [The Movie Database](https://www.themoviedb.org/?language=ru) (TMDB). Список актеров и сезонов для каждого сериала, список серий в каждом сезоне, дата выхода сезонов и серий, а также получение подробной информации о каждой серии и список приглашенных актеров.\r\n\r\nДобавление торрента по 🧲 *hash*-сумме и 🌐 *url*-адресу торрент файла (без загрузки самого файла) возможно из любого источника (торрент трекера). По мимо загрузки, это также дает возможность сформировать и сохранить торрент файл на сервере с полученными метаданными через торрент клиент qBittorrent или Transmission, который можно выгрузкой в Telegram, для дальнейшей загрузки через ваш торрент клиент на телефоне.\r\n\r\n---\r\n\r\n## 🚀 Примеры использования\r\n\r\n- Загрузка раздачи из канала по 🧲 магнитной ссылки (переадресация происходит автоматически в торрент клиент по умолчанию):\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/examples/magnet-download.jpg\" width=\"400\"/\u003e\u003c/a\u003e \u003cimg src=\"image/examples/magnet-redirect.jpg\" width=\"400\"\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n💡 Так как параметр url в [keyboard Telegram API](https://core.telegram.org/bots/api#inlinekeyboardmarkup) не поддерживает magnet-ссылки, был реалезован механизм переадресации через [magnet2url](https://github.com/Lifailon/magnet2url), который также добавляет в ссылку список актуальных серверов торрент трекеров, используемых в Кинозал, а также WebTorrent, RuTracker, NoNameClub и RuTor.\r\n\r\nБыстрее всего (в течение 1-2 секунд с момента перехода по ссылке) метаданные загружает локальный клиент [LibreTorrent](https://github.com/proninyaroslav/libretorrent) на Android и клиент [WebTorrent Desktop](https://github.com/webtorrent/webtorrent-desktop) или [WebTorrent Desktop api](https://github.com/Lifailon/webtorrent-desktop-api) на Windows, в то время как qBittorrent и Transmission может понадобиться до нескольки минут, а также загрузка может происходить медленнее. Для решения такой проблемы, может помочь запрос большего количества участников у торрент трекера (повторно анонсировать, доступно для клиента qBittorrent).\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/examples/kinozal-news-webtorrent.jpg\"/\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n- Демонстрация работы поиска и добавление на загрузку в qBittorrent (**версия 0.4.4**):\r\n\r\n\u003e Скорость получения информации из трекера Кинозал на прямую зависит от скорости работы вашего интернета и/или VPN соединения. При этом, скорость ответов бота при запуске в контейнере (добавлено в **версии 0.4.6**) в моей системе увеличилась примерно в два раза.\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/examples/search-and-download.gif\"/\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n- 🔍 Поиск в торрент трекере c фильтрацией по году выхода и формату разрешения:\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/examples/search-all.jpg\" width=\"400\"/\u003e\u003c/a\u003e \u003cimg src=\"image/examples/search-filter.jpg\" width=\"400\"\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n- 👤 Профиль Кинозал, список торрент файлов на сервере и выгрузка всех торрент файлов (с полученными метаданными) в Telegram:\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/examples/torrent-files-and-kinozal-profile.jpg\" width=\"400\"/\u003e\u003c/a\u003e \u003cimg src=\"image/examples/torrent-files-send-telegram.jpg\" width=\"400\"\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n- 🍿 Получение информации о выбранном сериале в Кинозал (стандартный вывод для всех раздач, из данного интерфейса происходит управление выбранным торрент файлом), а также пример управления загрузкой в клиенте 🔳 Transmission:\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/examples/kinozal-info.jpg\" width=\"400\"/\u003e\u003c/a\u003e \u003cimg src=\"image/examples/transmission.jpg\" width=\"400\"\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n- 👥 Поиск по актеру в трекере Кинозал и список фильмов с его участием, а также получение дополнительной информации из базы 💙 TMDB и даты выхода всех сезонов и серий:\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/examples/search-actor.jpg\" width=\"400\"/\u003e\u003c/a\u003e \u003cimg src=\"image/examples/tmdb-info.jpg\" width=\"400\"\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n- 🐸 Список и статус всех активных торрентов, добавленных в клиент qBittorrent, а также получение дополнительной информации и управление загрукой файлов:\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/examples/qbittorrent-status.jpg\" width=\"400\"/\u003e\u003c/a\u003e \u003cimg src=\"image/examples/qbittorrent-files.jpg\" width=\"400\"\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n- 🟠 Список секций и синхронизация контента, а также просмотр содержимого файлов на сервере Plex:\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/examples/plex-sync.jpg\" width=\"400\"/\u003e\u003c/a\u003e \u003cimg src=\"image/examples/plex-file-list.jpg\" width=\"400\"\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n---\r\n\r\n## ⚡ Зависимости\r\n\r\nУстановите **[jq](https://github.com/jqlang/jq)**:\r\n\r\n```shell\r\napt install jq\r\njq --version\r\njq-1.6\r\n```\r\n\r\nТакже, вы можете проверить, что в вашей системе установлен интерпритатор `bash` и следующие пакеты (предустановлены по умолчанию в большинстве дистрибутивов Linux): `curl`, `grep`, `sed`, `gawk`, `tail`, используя параметр `--version`.\r\n\r\n```shell\r\nbash --version\r\nGNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)\r\n```\r\n\r\nДля запуска бота необходимо загрузить скрипт `kinozal-bot.sh` и конфигурационный файл `kinozal-bot.conf`, который располагается рядом со скриптом.\r\n\r\n```shell\r\n# Создаем директорию для скрипта и хранения сопутствующих файлов в процессе работы\r\ncd ~\r\nmkdir kinozal-bot\r\n# Клонируем репозиторий\r\ngit clone https://github.com/Lifailon/Kinozal-Bot\r\n# Копируем скрипт и файл конфигурации\r\ncp Kinozal-Bot/scripts/kinozal-bot.sh kinozal-bot\r\ncp Kinozal-Bot/scripts/kinozal-bot.conf kinozal-bot\r\n# Удаляем остальные файлы проекта\r\nrm -r Kinozal-Bot\r\n# Переходим в директорию с конфигурацией для ее редактирования\r\ncd kinozal-bot\r\n```\r\n\r\nВ примере используется директория `kinozal-bot` в корне домашнего каталога текущего пользователя.\r\n\r\nТак выглядит состав файлов на рабочем экземпляре:\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/settings/kinozal-bot-files.jpg\" width=\"800\"/\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n## ⚙️ Настройка\r\n\r\nДля работы бота, необходимо подготовить свою домашнюю среду, все настройки подключения задаются в конфигурационном файле: 📑 **[kinozal-bot.conf](https://github.com/Lifailon/Kinozal-Bot/blob/rsa/scripts/kinozal-bot.conf)**.\r\n\r\nВозможно, у вас уже подготовлены все настройки для управления и вам достаточно только заполнить конфигурацию. Для редактирования, вы можете воспользоваться любым встроенным консольным редактором, например, `nano kinozal-bot.conf` или [WinSCP](https://winscp.net/eng/download.php).\r\n\r\n💡 Имея уже подготовленный файл, можно очень быстро перезапустить бота на любой другой машине в домашней сети.\r\n\r\n1. Зарегистрируйте аккаунт на сайте *[Кинозал](https://kinozal.tv)* и заполнить параметры конфигурации:\r\n\r\n`KZ_PROFILE=\"id_you_profile\"` - идентификатор вашего профиля (используется для получения информации из профиля Кинозал) \\\r\n`KZ_USER=\"LOGIN\"` - логин (используется на этапе получения инфо хэш из раздачи, содержимого раздачи и загрузки торрент-файлов) \\\r\n`KZ_PASS=\"PASSWORD\"` - пароль\r\n\r\n2. Если у вас заблокирован доступ в *Кинозал*, вы можете воспользоваться VPN или Proxy сервером, через который бот сможет проксировать свои запросы.\r\n\r\nЯ использую **HandyCache (Proxy)** в системе *Windows*, рядом с которым запущена бесплатная версия *VPN Hotspot Shield* в режиме **Split Tunneling** до сайта Кинозал (в таком режиме не будет доступен сервис *TMDB API*), при котором трафик до указанного сайта проходит через VPN туннель и не затрагивает другие сервисы, тем самым не ограничивая загрузку торрентов на хостовой машине.\r\n\r\n\u003e Вы также можете настроить выделенную виртуальную машину для подобного стэка, и даже добавить в него *Wi-Fi* модуль для организации второй домашней сети без необходимости использовать раздельное туннелирование.\r\n\r\n- 2.1. Настройка Proxy-сервера:\r\n\r\n`PROXY=\"True\"` - включить использование прокси сервера в curl-запросах при обращении к Кинозал и TMDB \\\r\n`PROXY_ADDR=\"http://192.168.3.100:9090\"` - адрес сервера и порт, на котором слушает запросы Proxy-сервер \\\r\n`PROXY_USER=\"LOGIN\"` \\\r\n`PROXY_PASS=\"PASSWORD\"`\r\n\r\n- Для удаленного управления VPN-соединением в системе Windows реализован проект [vpnc](https://github.com/Lifailon/vpnc) и интегрирован бот.\r\n\r\nДля запуска и настройки, следуйте инструкциям на [странице проекта](https://github.com/Lifailon/vpnc/blob/main/README_ru.md). После того, как у вас будет настроена конфигурация и запущен исполняемый файл (который может быть добавлен в автозагрузку), заполните параметр адреса сервера:\r\n\r\n`VPNC_ADDR=\"http://192.168.3.100:1780\"`\r\n\r\nДанное решение актуально только в том случае, если ваш клиент запущен на одной машине с другими сервисами (и поддерживает автоподключение при запуске) и не используется режим раздельного туннелирования. Такой подход удобен в первую очередь для отключения соединения на время загрузки файлов большого объема.\r\n\r\n- 2.2. Поддерживается использования обратного прокси сервера, на котором есть прямой доступ к трекеру, например, через [froxy](https://github.com/Lifailon/froxy):\r\n\r\nЗагрузите [исполняемый файл](https://github.com/Lifailon/froxy/releases) и запустите обратный прокси сервер на машине с доступом к Кинозал:\r\n\r\n```\r\nfroxy --local 192.168.3.100:8443 --remote https://kinozal.tv\r\n```\r\n\r\nИли запустите в контейнере:\r\n\r\n```shell\r\ndocker pull lifailon/froxy:latest\r\ndocker 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\r\n```\r\n\r\nОтключите в конфигурации использование Proxy-сервера и замените адрес Кинозал на адрес обратного прокси сервера:\r\n\r\n`PROXY=\"False\"` \\\r\n`KZ_ADDR=\"http://192.168.3.100:8443\"`\r\n\r\nВы можете ознакомиться на странице [репозитория](https://github.com/Lifailon/froxy/blob/main/README_RU.md), что такое обратный прокси сервер и какие задачи он решает.\r\n\r\n- 2.3. Также возможно развернуть свое публичное зеркало с использованием **функции serverless** на базе `Next.js` для доступа к трекеру без использования VPN.\r\n\r\n\u003e Рекомендуется запустить свое приложение из исходного репозитория [Kinozal-Proxy](https://github.com/Lifailon/Kinozal-Proxy), во избежании излишней нагрузки на один экземпляр сервера и сохранности ваших авторизационных данных в трекере.\r\n\r\nДля этого, вопользуйтесь кнопкой ниже и следуйте инструкциям:\r\n\r\n[![Vercel](https://img.shields.io/badge/Deploy-%23000000.svg?style=for-the-badge\u0026logo=vercel\u0026logoColor=white)](https://vercel.com/new/torapi/clone?repository-url=https://github.com/lifailon/Kinozal-Proxy)\r\n\r\n3. Создайте своего Telegram бота через **[@BotFather](https://t.me/BotFather)** используя интуитивно понятный интерфейс и получите API-токен доступа. Что бы получить ваш **чат id**, напишите любое сообщение вашему боту и перешлите его **[Get My ID](https://t.me/getmyid_arel_bot)**, после чего заполните параметры:\r\n\r\n`TG_TOKEN=\"6873341222:AAFnVgfavenjwbKutRwROQQBya_XXXXXXXX\"` - используется для чтения и отправки сообщений ботом \\\r\n`TG_CHAT=\"8888888888,999999999\"` - id всех чатов, которые будут иметь доступа к боту\r\n\r\n\u003e По мимо этого, id можно получить в логе работы бота из запросов новых клиентов (`\u003e\u003e\u003e Request`), которые вы сможете добавить в конфигурацию через запятую.\r\n\r\n4. [Установите](https://www.qbittorrent.org/download) и настройте торрент клиент *qBittorrent*.\r\n\r\n- 4.1. Включите **Веб-интерфейс** в настройках приложения:\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/settings/qbittorrent-settings.jpg\" width=\"800\"/\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\nУкажите параметры подключения к клиенту:\r\n\r\n`QB_ADDR=\"http://192.168.3.100:8888\"` - указать URL-адрес, где указан протокол (по умолчанию, **http**), ip-адрес машины, на которой запущен qBittorrent и порт (задается в настройках **Веб-интерфейса**) \\\r\n`QB_USER=\"LOGIN\"` - имя пользователя, указывается в поле **Аутентификация** в настройках **Веб-интерфейса** \\\r\n`QB_PASS=\"PASSWORD\"` - пароль, указывается в поле **Аутентификация** в настройках **Веб-интерфейса**\r\n\r\n- 4.2. Определите директорию для загрузки контента в *qBittorrent* по умолчанию. \r\n\r\n💡 Это должна быть директория, которая будет добавлена на сервер Plex, что бы в дальнейшем можно было синхронизировать загруженный контент, используя бот.\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/settings/qbittorrent-default-directory.jpg\" width=\"800\"/\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n5. [Установите](https://transmissionbt.com/download) и настройте *Transmission* для управления клиентом с помощью бота:\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n    \u003cimg src=\"image/settings/transmission-settings.jpg\" width=\"800\"/\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\nУкажите параметры подключения к клиенту:\r\n\r\n```shell\r\nTRANS_ADDR=\"http://192.168.3.100:9091\"\r\nTRANS_USER=\"LOGIN\"\r\nTRANS_PASS=\"PASSWORD\"\r\n```\r\n\r\nВозможно использовать как один, так и оба торрент клиентов для синхронизации с сервером Plex.\r\n\r\n☁️ Вы также можете настроить **второй клиент для синхронизации с любым облачным хранилищем**, что бы иметь удаленный доступ к файлам, например, с телефона, т.к. для удаленного непрерывного просмотра или загрузки контента с локального сервера Plex **требуется подписка [Plex Pass](https://www.plex.tv/plex-pass)**. Для этого укажите любую дочернюю директорию внутри вашего облачного хранилища (необходимо, что бы ваше облако было подключено к файловой системе компьютера) для загрузки контента в клиенте *Transmission* (или *qBittorrent*) по умолчанию. После загрузки контента, вы сможете получить к нему доступ на любом удаленном устройстве в режиме онлайн или для загрузки, без необходимости ожидания сидов или пиров.\r\n\r\n6. Установите [Plex Media Server](https://www.plex.tv/ru/media-server-downloads/?cat=computer\u0026plat=windows) и [получите токен доступа](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token).\r\n\r\nТак как нет возможности напрямую получить токент доступа в веб-интерфейсе, можно воспользоваться панелью разработчика в браузере. Откройте [Development Tools](https://developer.chrome.com/docs/devtools?hl=ru) нажатием кнопки `F12` и перейдите на вкладку **сеть (network)**, обновите страницу интерфейса вашего сервера Plex, после чего вы сможете увидеть токен в любом из url-запросов (X-Plex-Token=**ваш_токена**). Передайте адрес сервера (по умолчанию, порт **32400**) и содержимое токена в параметры:\r\n\r\n```shell\r\nPLEX_ADDR=\"http://192.168.3.100:32400\"\r\nPLEX_TOKEN=\"ваш_токена\"\r\n```\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n\u003cimg src=\"image/settings/plex-token.jpg\" width=\"800\"/\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n💡 Создайте новую секцию на сервере Plex и укажите путь к директории хранения вашего контента, на которую **уже настроен** (п.4 и п.5) клиент *qBittorrent* или *Transmission* **по умолчанию**:\r\n\r\n\u003ch1 align=\"center\"\u003e\r\n\u003cimg src=\"image/settings/plex-add-directory.jpg\" width=\"800\"/\u003e\u003c/a\u003e\r\n\u003c/h1\u003e\r\n\r\n7. Настройка подключения к [TMDB](https://www.themoviedb.org):\r\n\r\n💡 Как и в случае с настройкой второго торрент клиента, данный пункт является *опциональным*.\r\n\r\n[Зарегестрируйте аккаунт](https://www.themoviedb.org/signup) на сайте **The Movie Database** и [выпустите ключ доступа](https://www.themoviedb.org/settings/api) к api, после чего заполните параметры конфигурации (возможно указать ключ или токен на выбор):\r\n\r\n```\r\nTMDB_KEY=\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"\r\nTMDB_TOKEN=\"XXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXX\"\r\n```\r\n\r\n8. Путь для хранения торрент файлов, *cookie* (временные файлы, которые используются для авторизации в *Кинозал* и *qBittorrent*), а также лог-файлов и его размер (поддерживается ротация) на сервере **задаются в конфигурации**:\r\n\r\n```shell\r\n# /home/\u003cusername\u003e/kinozal-bot\r\npath=\"/home/lifailon/kinozal-bot\"\r\n# Путь при запуске в контейнере\r\n# path=\"/kinozal-bot\"\r\nlog_size_mbyte=10\r\n```\r\n\r\nВсе запросы к боту, а также его ответы логируются.\r\n\r\n## 🔌 Подключение и управление\r\n\r\nПеред запуском, вы можете проверить подключение к сервисам, в случае успеха, вы получите текущую версию приложения:\r\n\r\n```shell\r\ncd ~/kinozal-bot\r\nbash kinozal-bot.sh version\r\n\r\nqBittorrent Client:  4.6.5 (api: 2.9.3)\r\nTransmission Client: 4.0.6 (38c164933e)\r\nPlex Media Server:   1.40.0.7998-c29d4c0c8\r\n```\r\n\r\n- Используйте интерпретатор **Bash** для запуска (**root** права не требуются):\r\n\r\n```shell\r\nbash kinozal-bot.sh start bot\r\n```\r\n\r\n- Узнать статус работы и количество активных процессов:\r\n\r\n```shell\r\nbash kinozal-bot.sh status\r\n\r\n[INFO] 14:38:46: Server running. Count running process: 4\r\n```\r\n\r\n- Проверка подключения к *qBittorrent*:\r\n\r\nЕсли настройки заданы правильно, вы можете отобразить журнал работы *qBittorrent* клиента в своей консоли:\r\n\r\n```shell\r\nbash kinozal-bot.sh log qb\r\nbash kinozal-bot.sh log qb all\r\n```\r\n\r\n- Отобразить журнал работы системы и сервера *Plex*:\r\n\r\n```shell\r\nbash kinozal-bot.sh log plex system\r\nbash kinozal-bot.sh log plex system all\r\nbash kinozal-bot.sh log plex server\r\nbash kinozal-bot.sh log plex server all\r\n```\r\n\r\n- Вывести журнал работы бота:\r\n\r\n```shell\r\nbash kinozal-bot.sh log bot   \r\nbash kinozal-bot.sh log bot 50\r\n```\r\n\r\n- Остановка бота и всех его дочерних процессов:\r\n\r\n```shell\r\nbash kinozal-bot.sh stop\r\nbash kinozal-bot.sh status\r\n\r\n[INFO] 14:40:16: Server not running. Count running process: 0\r\n```\r\n\r\n## 🐧 Служба (unit)\r\n\r\n\u003e Вы можете пропустить этот шаг и запустить бота в контейнере 🐳 [Docker](#-docker)\r\n\r\nЕсли все настройки заданы и подключение проверено, можно запустить бота как службу (*unit*) **systemd**, что бы автоматизировать процесс запуска в случае перезагрузки системы, а также передать поток логов в системный журнал (удобно для удаленного мониторинга, например, через `rsyslog` в [Graylog](https://github.com/Graylog2/graylog2-server)).\r\n\r\n- Создайте файл службы и откройте его в любом текстовом редакторе:\r\n\r\n```\r\ntouch /etc/systemd/system/kinozal-bot.service\r\nnano /etc/systemd/system/kinozal-bot.service\r\n```\r\n\r\n- Скопируйте в файл следующее [содержимое](https://github.com/Lifailon/Kinozal-Bot/blob/rsa/scripts/kinozal-bot.service):\r\n\r\n```\r\n[Unit]\r\nDescription=Telegram bot for kinozal.tv torrent tracker, remote managment qBittorrent and Plex Media Server\r\nAfter=network.target\r\n\r\n[Service]\r\nExecStart=/bin/bash \"/home/lifailon/kinozal-bot/kinozal-bot.sh\" start bot service\r\nExecReload=/bin/kill -HUP $MAINPID\r\nRestart=on-failure\r\nType=forking\r\n\r\n[Install]\r\nWantedBy=multi-user.target\r\n```\r\n\r\n💡 Замените путь к скрипту сервера в параметре запуска `ExecStart` на свой.\r\n\r\n- Примените настройки, включите автозапуск и запустите службу:\r\n\r\n```shell\r\nsystemctl daemon-reload\r\nsystemctl enable kinozal-bot\r\nsystemctl start kinozal-bot\r\nsystemctl status kinozal-bot\r\n```\r\n\r\nПосле этого возможно управлять запуском, используя команды: `start`, `stop` и `restart`.\r\n\r\nДля просмотра журнала работы бота, можете использовать утилиту `journalctl`:\r\n\r\n```shell\r\njournalctl -fu kinozal-bot\r\n```\r\n\r\n## 🐳 Контейнер\r\n\r\nЗапуск в контейнере является альтернативой настройки службы `systemd`. Обработка ответов происходит заметно быстрее (сравнительно с локальным запуском на малопроизводительных системах), по этому такой способ является **рекомендуемым**.\r\n\r\n- Перейдите в директорию со скриптом и **настроенным** файлом конфигурации:\r\n\r\n```shell\r\ncd ~/kinozal-bot\r\n```\r\n\r\n- Создайте [dockerfile](https://github.com/Lifailon/Kinozal-Bot/blob/rsa/dockerfile) с содержимым:\r\n\r\n```dockerfile\r\nFROM alpine:latest\r\nWORKDIR /kinozal-bot\r\nRUN apk add --no-cache bash coreutils curl grep sed gawk jq tzdata\r\nENV TZ=Etc/GMT-3\r\nRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \u0026\u0026 echo $TZ \u003e /etc/timezone\r\nCOPY kinozal-bot.sh .\r\nRUN chmod +x kinozal-bot.sh\r\nENTRYPOINT [\"bash\", \"-c\", \"./kinozal-bot.sh start bot docker\"]\r\n```\r\n\r\n### Docker\r\n\r\nСоберите образ и запустите контейнер в Docker:\r\n\r\n```shell\r\ndocker build -t kinozal-bot .\r\ndocker run -d \\\r\n    --name kinozal-bot \\\r\n    --restart=unless-stopped \\\r\n    --label com.centurylinklabs.watchtower.enable=false \\\r\n    -v ./torrents:/kinozal-bot/torrents \\\r\n    -v ./kinozal-bot.conf:/kinozal-bot/kinozal-bot.conf \\\r\n    kinozal-bot\r\n```\r\n\r\nИли загрузите образ из [Docker Hub](https://hub.docker.com/r/lifailon/kinozal-bot):\r\n\r\n\u003e Образ собран на системе с архитектурой `aarch64` в режиме `all`.\r\n\r\n```shell\r\ndocker run -d \\\r\n    --name kinozal-bot \\\r\n    --restart=unless-stopped \\\r\n    -v ./torrents:/kinozal-bot/torrents \\\r\n    -v ./kinozal-bot.conf:/kinozal-bot/kinozal-bot.conf \\\r\n    lifailon/kinozal-bot:latest\r\n```\r\n\r\nРазмер образа составляет 9 MiB. Режим `unless-stopped` отвечает за перезапуск контейнера в случае перезагрузки системы или другого сбоя, за исключением ручной остановки.\r\n\r\nПри запуске контейнера используется механизм **bind mount** (`-v` `путь в системе`**:**`путь в контейнере`), это удобно для хранения конфигурации (не сохраняя ее в образе) и синхронизации торрент файлов (`.torrent`) с хостовой системой, тем самым при запуске бота в контейнере или локальной системе будет доступ к одному и томуже составу торрент файлов, а после удаления контейнера и образа файлы будут сохранены в системе.\r\n\r\n### Podman\r\n\r\nТак как бот для своей работы не требует прав `root` (использование команды `sudo`), то вы можете запустить контейнер в [Podman](https://github.com/containers/podman):\r\n\r\n```shell\r\npodman build -f dockerfile -t kinozal-bot .\r\npodman run -d \\\r\n    --name kinozal-bot \\\r\n    -v ./torrents:/kinozal-bot/torrents \\\r\n    kinozal-bot\r\n```\r\n\r\nТак как *Podman* не использует службы для своей работы, для автоматического запуска бота при перезагрузке системы возможно создать пользовательскую службу:\r\n\r\n```shell\r\n# Остановить контейнер\r\npodman stop kinozal-bot\r\n# Скопируйте содержимое службы из GitHub\r\nmkdir -p ~/.config/systemd/user \u0026\u0026 touch ~/.config/systemd/user/kinozal-bot-podman.service\r\ncurl -s \"https://raw.githubusercontent.com/Lifailon/Kinozal-Bot/refs/heads/rsa/scripts/kinozal-bot-podman.service\" \u003e ~/.config/systemd/user/kinozal-bot-podman.service\r\n# Запустить службу и проверить работу контейнера\r\nsystemctl --user start kinozal-bot-podman.service\r\npodman ps\r\n# Включить поддержку пользовательских служб и добавить в автозагрузку\r\nloginctl enable-linger $(whoami)\r\nsystemctl --user enable kinozal-bot-podman.service\r\n```\r\n\r\n### Мониторинг\r\n\r\nВы можете управлять запуском контейнара с помощью команд:\r\n\r\n```shell\r\n\u003cdocker/podman\u003e \u003cstart/restart/stop\u003e kinozal-bot\r\n```\r\n\r\nДля просмотра журналов контейнера используется команда: `\u003cdocker/podman\u003e logs kinozal-bot`.\r\n\r\nЧто бы не вызывать каждый раз команду `logs` для просмотра логов контейнера или других журналов, установите терминальный пользовательский интерфейс [lazyjournal](https://github.com/Lifailon/lazyjournal) для быстрого мониторинга и фильтрации логов контейнеров *Docker* и *Podman*, юнитов `systemd` или лог-файлов в системе.\r\n\r\nПример чтения локального файла `kinozal-bot.log`:\r\n\r\n![Image alt](image/settings/lazyjournal-read-log-file.jpg)\r\n\r\n\u003e В примере используются запросы с разными фильтрами для поиска в базе Кинозал.\r\n\r\nДля мониторинга журналов контейнеров через веб-интерфейс, используйте [Dozzle](https://github.com/amir20/dozzle).\r\n\r\n![Image alt](image/settings/docker-dozzle.jpg)\r\n\r\nКоманда для быстрого удаления контейнера и образа:\r\n\r\n```shell\r\ndocker stop kinozal-bot \u0026\u0026 docker rm kinozal-bot \u0026\u0026 docker rmi kinozal-bot \u0026\u0026 docker rmi alpine || docker rmi lifailon/kinozal-bot:latest\r\n```\r\n\r\n\u003c!--\r\nВы также можете сохранить образ контейнера с помощью одной команды. Это удобно, в случае переустановки системы или переноса бота на другую машину (больше не понадобится заполнять конфигурацию и собирать образ заново):\r\n\r\n```shell\r\ndocker save -o kinozal-bot.tar kinozal-bot\r\n```\r\n\r\nНа другой системе необходимо только загрузить файл образа и запустить контейнер:\r\n\r\n```shell\r\ndocker load -i kinozal-bot.tar\r\ndocker run -d --name kinozal-bot --restart=unless-stopped kinozal-bot\r\n```\r\n--\u003e\r\n\r\n## 📌 Меню бота\r\n\r\nЧто бы создать и закрепить список основных команд для быстрого вызова через меню бота, перейдите в управление вашим ботом через **[BotFather](https://t.me/BotFather)**, выберите `Edit Bot` и настройте список команд с помощью `Edit commands`. Передайте список команд, как на примере ниже (вы можете изменить список команд, как и их описание на свое усмотрение):\r\n\r\n```\r\nsearch_id - 🔎 Поиск в Кинозал по id\r\nsearch_title - 🍿 Поиск по названию\r\nsearch_actor - 👥 Поиск по актеру\r\nresearch - 🔄 Повторить последний поиск\r\ntorrent_files - 🗂 Торрент файлы\r\nstatus - 🟢 qBittorrent\r\ntrans_status - 🔲 Transmission\r\nadd_torrent - ➕🧲 Добавить торрент по инфо хеш\r\nadd_url - ➕🌐 Добавить торрент по url-адресу\r\nplex_info - 🟠 Plex\r\nfind - 🔍 Поиск в Plex\r\nvpnc_status - 🛡 VPN\r\n```\r\n\r\nСлева от поля ввода текста в интерфейсе вашего бота появится меню для быстрого вызова команд, которые возможно выбирать (для вставки текстом в поле ввода) с помощью кнопки `Tab`, или продолжительным нажатием через мобильный интерфейс.\r\n\r\n---\r\n\r\n## 🙋‍♂️ Список команд\r\n\r\nСписок всех доступных команд (за исключением `/search_title`, `/search_actor`, `/add_hash` и `/add_url`) **автоматизирован** через меню интерфейса бота с помощью кнопок.\r\n\r\n`/search_title` - Поиск в Кинозал по названию (вначале запроса принимает год выхода для фильтрации) \\\r\n`/profile` - Профиль Кинозал (количество доступных для загрузки торрент файлов, статистика загрузки и отдачи, время сид и пир) \\\r\n`/torrent_files` - Список загруженных торрент файлов с возможностью удаления \\\r\n`/status` -  список и статус всех текущих торрентов, добавленных в торрент-клиент qBittorrent \\\r\n`/plex_info` - Список секций на сервере Plex для доступа к их контенту \\\r\n`/download_torrent \u003cid\u003e \u003cfile_name\u003e` - Загрузить торрент файл (передать два параметра: id и имя файла без пробелов) \\\r\n`/delete_torrent_file_\u003cid\u003e` - Удалить торрент файл по id \\\r\n`/search_id \u003cid\u003e` - Поиск в Кинозал по id \\\r\n`/download_video_\u003cid\u003e` - Добавить торрент файла на загрузку в qBittorrent \\\r\n`/info \u003chash\u003e` - Статус загрузки указанного торрента (передать параметр: hash торрента) \\\r\n`/torrent_content \u003chash\u003e` - Содержимое торрента (список файлов) \\\r\n`/file_torrent \u003cindex\u003e` - Статус выбранного торрент файла (передать параметр: порядковый индекс файла) \\\r\n`/torrent_priority \u003cnum\u003e` - Изменить приоритет выбранного файла в /file_torrent (передать параметр: номер приоритета) \\\r\n`/pause \u003chash\u003e` - Установить на паузу \\\r\n`/resume \u003chash\u003e` - Восстановить загрузку \\\r\n`/delete_torrent \u003chash\u003e` - Удалить торрент из клиента \\\r\n`/delete_video \u003chash\u003e` - Удалить вместе с данными \\\r\n`/plex_status_\u003ckey\u003e` - Информация о выбранной секции в Plex (передать параметр: ключ секции) \\\r\n`/plex_sync_\u003ckey\u003e` - Синхронизировать выбранную секцию в Plex \\\r\n`/plex_folder_\u003ckey\u003e` - Получить список директорий и файлов в выбранной секции \\\r\n`/find` - Поиск контента в Plex по пути (передать параметр: конечную точку)\r\n\r\n- Добавлено в версии 0.4.1:\r\n\r\n`/plex_last_views` - Список последних просмотров (дата просмотра и время остановки) в Plex \\\r\n`/plex_last_added` - Список последних добавленных файлов в Plex \\\r\n`/kinozal_description \u003cid\u003e` - Описание фильма из Кинозал (удалено из меню в версии 0.4.5)\r\n\r\n- Добавлено в версии 0.4.2:\r\n\r\n`/kinozal_actors \u003cid\u003e` - Список актеров из Кинозал (передать параметр: id kinozal) \\\r\n`/actor \u003cid\u003e` - Описание, поиск актера и его фильмографии из Кинозала и ссылка на Кинопоиск (передать параметр: имя актера) \\\r\n`/kinopoisk_movie \u003cid\u003e` - Информация о фильме из Кинопоиск по id kinopoisk (удалено из меню в версии 0.4.5)\r\n\r\n- Добавлено в версии 0.4.3:\r\n\r\nПоддержка [WinAPI](https://github.com/Lifailon/WinAPI) (временно отключено в версии 0.4.4).\r\n\r\n- Добавлено в версии 0.4.4:\r\n\r\n`/search_title \u003cyear*\u003e \u003cformat*\u003e \u003ctitle\u003e` - Поиск с фильтрацией по году выхода и формату разрешения \\\r\n`/research` - Повторить последний поиск (id не требуется) \\\r\n`/file_list` - Извлечь список файлов и их размер из раздачи \\\r\n`/send_torrent_file_id` - Отправка загруженного торрент-файла в Telegram \\\r\n`/send_last_torrent_file` - Отправить последний загруженный торрент-файл \\\r\n`/send_all_torrent_files` - Отправить все загруженные торрент-файлы \\\r\n`/skip_all_files \u003chash\u003e` - Пропустить загрузку всех файлов путем изменения приоритета в qBittorrent \\\r\n`/normal_all_files \u003chash\u003e` - Восстановить загрузку всех файлов \\\r\n`/add_torrent \u003chash\u003e` - Добавить раздачу на загрузку в qBittorrent по инфо хэш \\\r\n`/get_torrent \u003chash\u003e` - Выгрузить торрент файл на сервер по инфо хэш и отправить в телеграмм \\\r\n`/torrent_recheck \u003chash\u003e` - Проверить торрент файл \\\r\n`/torrent_limit` - Переключить альтернативные лимиты скорости загрузки и отдачи\r\n\r\n- Добавлено в версии 0.4.5:\r\n\r\n`/search_actor \u003cname\u003e` - Поиск актеров в базе Кинозал (возвращает список найденных актеров) \\\r\n`/actor \u003csearch/list\u003e \u003cname\u003e` - Первый параметр принимает тип возврата (`/kinozal_actors` или `/search_actor`) \\\r\n`/trans_status` - Список и статус всез торрент в клиенте Transmission \\\r\n`/trans_info \u003cid\u003e` - Получить подробную информацию о торренте \\\r\n`/trans_file_all \u003cid\u003e \u003cskip/resume\u003e` - Изменить приоритет загрузки всех торрент файлов выбранной раздачи по id (пропустить или возобновить загрузку и выставить нормальный приоритет) \\\r\n`/trans_file_select \u003cid\u003e \u003cfile_index\u003e` - Переключить приоритет выбранного файла (пропустить или высокий приоритет) \\\r\n`/trans_pause \u003cid\u003e \u003cstart/stop\u003e` - установить на паузу или возобновить \\\r\n`/trans_remove \u003cid\u003e \u003cfalse/true\u003e` - удалить торрент и данные \\\r\n`/trans_set_alt_speed` - переключить лимит альтернативной скорости \\\r\n`/add_hash \u003cqbit/trans\u003e \u003chash\u003e` - Добавить торрент по инфо хеш в указанный клиент \\\r\n`/download_trans_\u003cid\u003e` - Добавить торрент файла на загрузку в Transmission клиент \\\r\n`/add_url \u003curl\u003e` - Добавить торрент по url-адресу с выбором клиента через меню \\\r\n`/add_trans_url \u003curl\u003e` - Добавить торрент по url-адресу в Transmission клиент \\\r\n`/add_qbit_url \u003curl\u003e` - Добавить торрент по url-адресу в qBittorrent клиент \\\r\n`/torrent_reannounce \u003chash/all\u003e` - Принудительно повторно анонсировать (запросить у трекера больше участников) для выбранного торрента в qBittorrent клиенте \\\r\n`/tmdb_info \u003ckinozal_id\u003e` - Получить информацию о фильме или сериале через TMDB API \\\r\n`/tmdb_actor \u003ctmdb_id\u003e \u003ctype\u003e` - Получить список актеров \\\r\n`/tmdb_season_episodes \u003ctmdb_id\u003e \u003cseason_number\u003e` - Список серий в указанном сезоне \\\r\n`/tmdb_select_episode \u003ctmdb_id\u003e \u003cseason_number\u003e \u003cepisode_number\u003e` - Информация по выбранной серии и список приглашенных актеров \\\r\n`/tmdb_person \u003cperson_id\u003e` - Информация по актеру и ссылки на TMDB и IMDb\r\n\r\n---\r\n\r\n**Примеры запросов:**\r\n\r\n\r\n- 🔍 Поиск в Кинозал по id:\r\n\r\n`/search_id 1940284`\r\n\r\n- 🍿 Поиск по названию фильма или сериала:\r\n\r\n`/search_title Рокки 2` \\\r\n`/search_title Рокки 4`\r\n\r\n- Поиск с фильтрацией по типу (фильм или сериал):\r\n\r\n`/search_title Рокки 2 фильм`\r\n\r\n- Поиск фильмов с фильтрацией по году выхода:\r\n\r\n`/search_title 1979 Рокки фильм` \\\r\n`/search_title Рокки 1985 фильм`\r\n\r\n- Поиск фильмов с фильтрацией по году выхода и формату разрешения (`HD`, `FullHD` или `4K`):\r\n\r\n`/search_title Рокки фильм 1979 720` \\\r\n`/search_title Рокки фильм 1979 1080` \\\r\n`/search_title Рокки фильм 1979 2160`\r\n\r\n- 👥 Поиск актера по имени в базе Кинозал:\r\n\r\n`/search_actor \"Алан\"` \\\r\n`/search_actor \"Сильвестр\"`\r\n\r\n- Получить биографию и фильмографию указанного актера:\r\n\r\n`/actor search Алан Тьюдик` \\\r\n`/actor list Сильвестр Сталлоне`\r\n\r\n- 🔄Повторить последний запрос поиска для фильма/сериала или актера:\r\n\r\n`/research`\r\n\r\n- 🧲 Добавить торрент по инфо хеш на загрузку с выбором клиента через меню:\r\n\r\n`/add_torrent A72BD27A0CE265A3C7965392BC06C25EDD759214`\r\n\r\n- 🧲 Добавить торрент по инфо хеш в указанный торрент клиент:\r\n\r\n`/add_hash qbit A72BD27A0CE265A3C7965392BC06C25EDD759214` \\\r\n`/add_hash trans A72BD27A0CE265A3C7965392BC06C25EDD759214`\r\n\r\n- 🌐 Добавить торрент по url-адресу с выбором клиента через меню:\r\n\r\n`/add_url https://d.rutor.info/download/869858` \\\r\n`/add_url https://nnmclub.to/forum/download.php?id=1308422`\r\n\r\n- 🔳 Добавить торрент в Transmission клиент:\r\n\r\n`/add_trans_url https://d.rutor.info/download/869858`\r\n\r\n- 🐸 Добавить торрент в qBittorrent клиент:\r\n\r\n`/add_qbit_url https://nnmclub.to/forum/download.php?id=1308422`\r\n\r\n---\r\n\r\n## 🎉 Другие проекты\r\n\r\n- ✨ [TorAPI](https://github.com/Lifailon/TorAPI/blob/main/README_RU.md) - неофициальный и публичный API (**backend**) для торрент трекеров RuTracker, Kinozal, RuTor и NoNameClub. Используется для быстрого и централизованного поиска раздач, получения торрент файлов, магнитных ссылок и подробной информации о раздаче по названию фильма, сериала или идентификатору раздачи, а также предоставляет новостную RSS ленту для всех провайдеров с фильтрацией по категориям.\r\n\r\n- 🔎 [LibreKinopoisk](https://github.com/Lifailon/LibreKinopoisk) - расширение для Google Chrome, [Mozilla Firefox](https://addons.mozilla.org/ru/firefox/addon/librekinopoisk) и мобильных устройств, которое добавляет кнопки на сайт [Кинопоиск](http://kinopoisk.ru) и в контекстное меню браузера, а также реализует интерфейс [TorAPI](https://github.com/Lifailon/TorAPI) для быстрого поиска фильмов и сериалов в открытых источниках в стиле [Jackett](https://github.com/Jackett/Jackett) без необходимости в VPN и настройки сервера.\r\n\r\n- 📖 [lazyjournal](https://github.com/Lifailon/lazyjournal) - терминальный пользовательский интерфейс для `journalctl` (инструмент для чтения логов из системы [systemd-journald](https://github.com/systemd/systemd/tree/main/src/journal)), логов в файловой системе (включая архивные, например, `Apache` или `Nginx`), а также контейнеров `Docker` и `Podman` для быстрого просмотра и фильтрации в режиме реального времени с поддержкой нечеткого поиска, регулярных выражений (в стиле `fzf` и `grep`) и покраской вывода, написанный на языке `Go` с использованием библиотеки [gocui](https://github.com/awesome-gocui/gocui).\r\n\r\n- 📡 [Froxy](https://github.com/Lifailon/froxy/blob/main/README_RU.md) - кроссплатформенная утилита командной строки для реализации SOCKS, HTTP и обратного прокси сервера на базе **.NET**. Поддерживается протокол **SOCKS5** для туннелирования TCP трафика и **HTTP** протокол для прямого (классического) проксирования любого **HTTPS** трафика (`CONNECT` запросы), а также **TCP**, **UDP** и **HTTP/HTTPS** протоколы для обратоного проксирования. Для переадресации веб-траффика через обратный прокси поддерживаются `GET` и `POST` запросы с передачей заголовков и тела запроса от клиента, что позволяет использовать `API` запросы и проходить авторизацию на сайтах (передача cookie).\r\n\r\n- 🛡 [VPNc](https://github.com/Lifailon/vpnc/blob/main/README_ru.md) - универсальный инструмент для автоматического (локального) и удаленного управления VPN соединением через настольное приложение (системный трей) и `API` на базе `ASP.NET Core`.\r\n\r\n- ❤️ [WebTorrent Desktop api](https://github.com/Lifailon/webtorrent-desktop-api) - форк клиента [WebTorrent Desktop](https://github.com/webtorrent/webtorrent-desktop), в котором добавлен механизм удаленного управления через `API` на базе [Express.js Framework](https://github.com/expressjs/express).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifailon%2Fkinozal-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flifailon%2Fkinozal-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifailon%2Fkinozal-bot/lists"}