Giter Site home page Giter Site logo

123jjck / qbit-anime-organizer Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 31 KB

Скрипт в автоматическом режиме перемещает скачанные сериалы в собственную папку

Python 100.00%
anilibria-api anime organize-media-files plex-media-server qbittorrent-api

qbit-anime-organizer's Introduction

qBit Anime Organizer

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

Принцип работы

Данный скрипт рассчитан на использование вместе с торрент-клиентом qBittorrent. Он подойдёт только для тех торрентов, в которых серии находятся В ПАПКЕ и имеют вшитые субтитры и озвучку!

  1. После завершения загрузки qBittorrent вызывает скрипт, передавая хэш торрента в аргументах

  2. Скрипт убеждается, что загрузка точно завершена, и что торрент имеет одну из разрешенных категорий (global.qbit.allowed_categories в config.json)

  3. Если в папке с сериями есть незавершенные файлы (например, если вы во время загрузки передумали и сняли галочки с каких-либо файлов в торрент клиенте), скрипт их удаляет

  4. Если торрент содержит в себе файлы, скачанные с сервиса AniLibria и имеют характерный нейминг (т.е номер серии в квадратных скобках ([01] и т.п), название серий приводится в стандартный вид: Ijiranaide_Nagatoro-san_2nd_Attack_[01]_[AniLibria_TV]_[WEBRip_1080p_HEVC].mkv => Ijiranaide_Nagatoro-san_2nd_Attack 01 [WEBRip_1080p_HEVC].mkv.

    • Данный шаг необходим для правильного распознавания серий Plex медиасервером
  5. Если включено автоматическое перемещение серий (series.moving), скрипт действует по следующему алгоритму:

  • Если отключен ручной нейминг и при этом торрент-файл скачан с AniLibria:
    1. Убираем из названия папки с сериями всё лишнее и используем это в качестве названия папки сериала
    2. Если включён парсинг названий с AniLibria (api.enable_fetching), пытаемся достать при помощи API название сериала
  • Если включён ручной нейминг, в качестве названия папки сериала используется название ТОРРЕНТА.
  1. Если в названии ТОРРЕНТА указан сезон в формате [Sномер] (например: [S1], [S01] и т.д.), переименовываем папку с сериями в "Season номер" (для корректного распознавания сезона Plex медиасервером). Если нет, используем значение сезона по-умолчанию (series.moving.default_season)

  2. Перемещаем папку торрента в указанный путь (series.moving.destination)

    • Таким образом, получается идеальная структура файлов: /путь/к/папке/с/сериалами/Название Сериала/Season номер/Серия.mkv, которую подхватывает Plex медиасервер. Так как все процедуры происходят при помощи API qBittorrent'а, сохраняется возможность дальнейшей раздачи этих файлов.

Установка скрипта

Подготовка

Скрипт работает только с определенными категориями торрентов. Перед установкой скрипта мы создадим новую категорию, торренты из которой будет обрабатывать скрипт.

  1. В веб-интерфейсе qBittorrent кликните правой кнопкой мышки по категории "Все" в левой части страницы и нажмите "Добавить категорию".
  2. Укажите название категории и путь сохранения

Установка

  • Убедитесь, что у вас установлен Python 3-й версии и модуль qbittorrent-api.
  1. Скачайте файлы qbit.py , config.json и поместите их в одну папку

    • Не забудьте добавить созданную вами категорию в конфигурационный файл (см. Настройка)
  2. Откройте настройки в веб-интерфейсе qBittorrent

  3. Перейдите во вкладку "Загрузки" и пролистайте до раздела "Запуск внешней программы"

  4. Отметьте галочкой "Запускать внешнюю программу по завершении торрента"

  5. Вставьте в поле команду /usr/bin/python3 /путь/к/скрипту/qbit.py "%I" (/usr/bin/python3 - путь к Python)

  6. Нажмите "Сохранить"

Настройка

см. Конфигурационный файл

qbit-anime-organizer's People

Contributors

123jjck avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.