Перейти до вмісту

Пакети даних

Для досвідчених

Скопіюй свої правила вибору, шаблони назв або перевірки назв релізів з однієї установки в іншу.

Пакет даних — це файл JSON, що містить лише дані. Він не може виконувати код, звертатися за адресою, додавати тайтл, змінювати користувача, чіпати медіафайли чи нести секрети.

  • Ти власник.
  • Ти маєш API-ключ з областю admin. Ключі з health_read, read чи write відхиляються.
  • Ти маєш JSON пакета. Візьми пакет, який тобі дали, або напиши свій за формою в розділі Для досвідчених.

Усі маршрути лежать на http://your-server:6262.

  1. Надішли пакет на POST /api/v1/data-packs/validate. Він перевіряє без збереження. Ти маєш побачити "valid": true.
  2. Надішли той самий JSON на POST /api/v1/data-packs. Він зберігає пакет як неактивний. Поки що нічого не змінюється.
  3. Відкрий GET /api/v1/data-packs, щоб побачити збережені пакети. GET /api/v1/data-packs/{id} експортує один.
  4. Відкрий GET /api/v1/data-packs/{id}/preview з одним pick_rule_id на кожне правило й не більше ніж одним naming_id. Ти отримаєш approval_hash.
  5. Надішли той самий вибір і хеш на POST /api/v1/data-packs/{id}/apply. Ти маєш побачити id пакета й id правил, які ти обрав.

Попередній перегляд:

GET /api/v1/data-packs/home-cinema/preview?pick_rule_id=balanced-web&naming_id=readable

Тіло застосування:

{
"pick_rule_ids": ["balanced-web"],
"naming_id": "readable",
"approval_hash": "the hash returned by preview"
}
  • Кожне обране правило вибору створюється наново. Його не призначено жодному тайтлу.
  • Обраний набір назв замінює лише ці параметри:
    • Шаблони файлів і тек фільмів.
    • Шаблони теки серіалу, теки сезону, теки спеціальних випусків, серії, щоденних серій і аніме.
    • Шаблони теки виконавця, теки альбому, теки диска, треку й треку на кількох дисках.
    • Форматування двокрапки та недозволених символів.
    • Стиль кількох серій, стиль дати ефіру й кількість цифр наскрізного номера.
  • Перейменування під час імпорту, поведінка теки, читання тегів і межі сканування ніколи не входять до пакета.

Ознака: застосування каже, що попередній перегляд застарів. Причина: після перегляду змінилися пакет, назва правила вибору, що зіткнулася б з іншою, або параметр назв, який він замінив би. Нічого не застосовано. Рішення: переглянь знову й надішли новий хеш.

Ознака: імпорт каже, що пакет уже існує. Причина: пакети ніколи не замінюються. Рішення: дай новому пакету інший id.

Ознака: помилка прав доступу. Причина: ключ не є ключем admin, створеним власником. Рішення: створи ключ admin як власник і користуйся ним.

Обмеження та відмови
Обмеження Значення
format holyarrs-data-pack
version 1
Розмір пакета чи експорту 256 KiB
Правила вибору 32
Набори назв 8
Перевірки назв релізів 256
Id від 1 до 64 символів: малі літери, цифри, крапки, дефіси, підкреслення. Починаються й закінчуються літерою або цифрою
Тіло запиту застосування 16 KiB

Пакет відхиляється за дубльовані чи невідомі поля, зайвий JSON після кінця, невідомі назви якості чи ознак, хибні слова назв, версію не 1 або значення поза цими межами. Кожна перевірка назви релізу проходить через аналізатор назв HolyArrs і має збігтися з усіма фактами, які очікує.

Форма пакета
Поле Що містить
format, version, id, name Обов’язковий заголовок
pick_rules Кожне має id, name, kinds і rules (щаблі, ознаки, обмеження розміру, протокол, мова, порядок)
naming Кожне має id, name і patterns (параметри назв, перелічені вище)
release_tests Кожне має id, name, release_name, hints і expected (тип, якість, роздільна здатність, джерело, кодек, прапорці)
Маршрути та відповіді
Маршрут Успіх Відмова
POST /api/v1/data-packs/validate 200 з valid і підсумком 400 недійсний, 413 завеликий
POST /api/v1/data-packs 201 з підсумком, стан inactive 409 id існує, 400, 413
GET /api/v1/data-packs 200 з data_packs
GET /api/v1/data-packs/{id} 200 з JSON пакета 404
GET /api/v1/data-packs/{id}/preview 200 з approval_hash 400 для будь-якого запиту, окрім pick_rule_id і naming_id, 404
POST /api/v1/data-packs/{id}/apply 200 з pack_id, pick_rule_ids, naming_id 409 застарілий, 400, 404

HolyArrs безкоштовний. Якщо він заощадив тобі час, познач його зіркою на GitHub, підтримай проєкт або пригости мене кавою.