Ga naar inhoud

Datapacks

Gevorderd

Kopieer je keuzeregels, naamgevingspatronen of releasenaamcontroles van de ene installatie naar de andere.

Een datapack is een JSON-bestand met alleen gegevens. Het kan geen code uitvoeren, geen adres ophalen, geen titel toevoegen, geen gebruiker wijzigen, geen mediabestanden aanraken en geen geheimen bevatten.

  • Je bent de eigenaar.
  • Je hebt een API-sleutel met de scope admin. Sleutels met health_read, read of write worden geweigerd.
  • Je hebt de JSON van het pack. Gebruik het pack dat je kreeg, of schrijf er een volgens de opbouw onder Voor gevorderden.

Een pack verplaatsen

Link naar Een pack verplaatsen

Alle routes staan op http://your-server:6262.

  1. Stuur het pack naar POST /api/v1/data-packs/validate. Het controleert zonder op te slaan. Je ziet "valid": true.
  2. Stuur dezelfde JSON naar POST /api/v1/data-packs. Het slaat het pack op als inactief. Er verandert nog niets.
  3. Open GET /api/v1/data-packs om opgeslagen packs te tonen. GET /api/v1/data-packs/{id} exporteert er één.
  4. Open GET /api/v1/data-packs/{id}/preview met één pick_rule_id per regel en hooguit één naming_id. Je krijgt een approval_hash.
  5. Stuur dezelfde keuze en de hash naar POST /api/v1/data-packs/{id}/apply. Je ziet de pack-id en de regel-id’s die je koos.

Preview:

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

Body van apply:

{
"pick_rule_ids": ["balanced-web"],
"naming_id": "readable",
"approval_hash": "the hash returned by preview"
}

Wat toepassen verandert

Link naar Wat toepassen verandert
  • Elke gekozen keuzeregel wordt nieuw aangemaakt. Hij is aan geen enkele titel toegewezen.
  • Een gekozen naamgevingsset vervangt alleen deze instellingen:
    • Patronen voor filmbestanden en -mappen.
    • Patronen voor seriemap, seizoenmap, specialsmap, aflevering, dagelijks en anime.
    • Patronen voor artiestmap, albummap, discmap, nummer en nummer bij meerdere discs.
    • Opmaak van dubbele punten en ongeldige tekens.
    • Stijl voor meerdere afleveringen, stijl voor uitzenddatum en cijfers van absolute nummers.
  • Hernoemen bij import, mapgedrag, het lezen van tags en scanlimieten zitten nooit in een pack.

Symptoom: Apply zegt dat de preview verouderd is. Oorzaak: het pack, een naam van een keuzeregel die zou botsen, of een naamgevingsinstelling die zou worden vervangen, is veranderd na de preview. Er is niets toegepast. Oplossing: bekijk opnieuw een preview en stuur de nieuwe hash mee.

Symptoom: Import zegt dat het pack al bestaat. Oorzaak: packs worden nooit vervangen. Oplossing: geef het nieuwe pack een andere id.

Symptoom: rechtenfout. Oorzaak: de sleutel is geen admin-sleutel die de eigenaar heeft gemaakt. Oplossing: maak als eigenaar een admin-sleutel aan en gebruik die.

Limieten en weigeringen
Limiet Waarde
format holyarrs-data-pack
version 1
Grootte van een pack of een export 256 KiB
Keuzeregels 32
Naamgevingssets 8
Releasenaamcontroles 256
Id’s 1 tot 64 tekens: kleine letters, cijfers, punten, streepjes, underscores. Begin en eind met een letter of cijfer
Body van een apply-verzoek 16 KiB

Een pack wordt geweigerd bij dubbele of onbekende velden, extra JSON na het einde, onbekende kwaliteits- of kenmerknamen, foute naamgevingswoorden, een andere versie dan 1, of waarden boven deze limieten. Elke releasenaamcontrole loopt door de parser van HolyArrs en moet alles matchen wat hij verwacht.

Opbouw van een pack
Veld Bevat
format, version, id, name Verplichte kop
pick_rules Elk heeft id, name, kinds en rules (stappen, kenmerken, groottelimieten, protocol, taal, volgorde)
naming Elk heeft id, name en patterns (de naamgevingsinstellingen hierboven)
release_tests Elk heeft id, name, release_name, hints en expected (soort, kwaliteit, resolutie, bron, codec, vlaggen)
Routes en antwoorden
Route Gelukt Geweigerd
POST /api/v1/data-packs/validate 200 met valid en een samenvatting 400 ongeldig, 413 te groot
POST /api/v1/data-packs 201 met een samenvatting, status inactive 409 id bestaat, 400, 413
GET /api/v1/data-packs 200 met data_packs
GET /api/v1/data-packs/{id} 200 met de JSON van het pack 404
GET /api/v1/data-packs/{id}/preview 200 met approval_hash 400 bij elke query behalve pick_rule_id en naming_id, 404
POST /api/v1/data-packs/{id}/apply 200 met pack_id, pick_rule_ids, naming_id 409 verouderd, 400, 404

Gerelateerde pagina’s

Link naar Gerelateerde pagina’s

HolyArrs is gratis. Heeft het je tijd bespaard, geef het een ster op GitHub, sponsor het of trakteer me op een kop koffie.