Files
ripster/docs/api/settings.md
2026-03-09 20:37:56 +00:00

6.9 KiB
Raw Blame History

Settings API

Endpunkte zum Lesen und Schreiben der Anwendungseinstellungen.


GET /api/settings

Gibt alle Einstellungen kategorisiert zurück.

Response:

{
  "paths": {
    "raw_dir": {
      "value": "/mnt/nas/raw",
      "schema": {
        "type": "string",
        "label": "Raw-Verzeichnis",
        "description": "Speicherort für rohe MKV-Dateien",
        "required": true
      }
    },
    "movie_dir": {
      "value": "/mnt/nas/movies",
      "schema": { ... }
    }
  },
  "tools": { ... },
  "encoding": { ... },
  "drive": { ... },
  "makemkv": { ... },
  "omdb": { ... },
  "notifications": { ... }
}

PUT /api/settings/:key

Aktualisiert eine einzelne Einstellung.

URL-Parameter: key Einstellungs-Schlüssel

Request:

{
  "value": "/mnt/storage/raw"
}

Response:

{ "ok": true, "key": "raw_dir", "value": "/mnt/storage/raw" }

Fehlerfälle:

  • 400 Ungültiger Wert (Validierungsfehler)
  • 404 Einstellung nicht gefunden

!!! note "Encode-Review-Refresh" Wenn eine encoding-relevante Einstellung geändert wird (z.B. handbrake_preset), wird der Encode-Plan für den aktuell wartenden Job automatisch neu berechnet.


PUT /api/settings

Aktualisiert mehrere Einstellungen auf einmal.

Request:

{
  "raw_dir": "/mnt/storage/raw",
  "movie_dir": "/mnt/storage/movies",
  "handbrake_preset": "H.265 MKV 720p30"
}

Response:

{
  "ok": true,
  "updated": ["raw_dir", "movie_dir", "handbrake_preset"],
  "errors": []
}

POST /api/settings/pushover/test

Sendet eine Test-Benachrichtigung über PushOver.

Request: Kein Body erforderlich (verwendet gespeicherte Zugangsdaten)

Response (Erfolg):

{ "ok": true, "message": "Test-Benachrichtigung gesendet" }

Response (Fehler):

{ "ok": false, "error": "Ungültiger API-Token" }

Skript-Verwaltung

Skripte werden über eigene Endpunkte unter /api/settings/scripts verwaltet. Jedes Skript hat eine scriptBody-Property (der Shell-Befehl oder mehrzeiliges Skript) und einen orderIndex für die Sortierung.

GET /api/settings/scripts

Gibt alle Skripte zurück, sortiert nach orderIndex.

Response:

{
  "scripts": [
    {
      "id": 1,
      "name": "Zu Plex verschieben",
      "scriptBody": "mv \"$RIPSTER_OUTPUT_PATH\" /mnt/plex/movies/",
      "orderIndex": 1,
      "createdAt": "2026-01-15T10:00:00.000Z",
      "updatedAt": "2026-01-15T10:00:00.000Z"
    }
  ]
}

POST /api/settings/scripts

Legt ein neues Skript an.

Request:

{
  "name": "Zu Plex verschieben",
  "scriptBody": "mv \"$RIPSTER_OUTPUT_PATH\" /mnt/plex/movies/"
}
Feld Typ Pflicht Beschreibung
name string Anzeigename (eindeutig)
scriptBody string Shell-Befehl oder mehrzeiliges Skript

Response: 201 Created { "script": { ... } }


PUT /api/settings/scripts/:id

Aktualisiert ein vorhandenes Skript. Alle Felder optional.


DELETE /api/settings/scripts/:id

Löscht ein Skript.

!!! warning "Referenzen" Das Skript wird gelöscht, auch wenn es in Job-Historien referenziert ist. In zukünftigen Reviews erscheint es nicht mehr.


POST /api/settings/scripts/:id/test

Führt ein Skript mit Platzhalter-Umgebungsvariablen aus (Testlauf).

Response:

{
  "ok": true,
  "exitCode": 0,
  "stdout": "Testausgabe des Skripts",
  "stderr": "",
  "durationMs": 245
}

Platzhalter-Werte beim Testlauf:

Variable Testwert
RIPSTER_OUTPUT_PATH /tmp/ripster-test-output.mkv
RIPSTER_JOB_ID 0
RIPSTER_TITLE Test Film
RIPSTER_YEAR 2024
RIPSTER_IMDB_ID tt0000000
RIPSTER_RAW_PATH /tmp/ripster-test-raw.mkv

POST /api/settings/scripts/reorder

Ändert die Reihenfolge der Skripte (persistiert in order_index).

Request:

{ "orderedScriptIds": [3, 1, 2] }

Response: { "scripts": [ ... ] } alle Skripte in neuer Reihenfolge.


Skript-Ketten-Verwaltung

Skript-Ketten werden unter /api/settings/script-chains verwaltet.

GET /api/settings/script-chains

Gibt alle Ketten zurück (inkl. Schritte).

POST /api/settings/script-chains

Legt eine neue Kette an.

{ "name": "Nach Jellyfin deployen" }

PUT /api/settings/script-chains/:id

Aktualisiert eine Kette (Name, Schritte).

DELETE /api/settings/script-chains/:id

Löscht eine Kette und alle ihre Schritte.

POST /api/settings/script-chains/:id/test

Führt eine Kette mit Platzhalter-Umgebungsvariablen aus (Testlauf).

Response:

{
  "result": {
    "success": true,
    "steps": [
      { "scriptId": 1, "scriptName": "Zu Plex verschieben", "success": true, "exitCode": 0 }
    ]
  }
}

POST /api/settings/script-chains/reorder

Ändert die Reihenfolge der Ketten (persistiert in order_index).

Request:

{ "orderedChainIds": [2, 1, 3] }

User-Presets

Benannte HandBrake-Preset-Sammlungen, die im Encode-Review schnell angewendet werden können. Unter /api/settings/user-presets verwaltet.

GET /api/settings/user-presets

Gibt alle User-Presets zurück. Optional gefiltert per Query-Parameter mediaType.

Query-Parameter:

Parameter Werte Beschreibung
mediaType bluray, dvd, other, all Filtert Presets nach Medientyp

Response:

{
  "presets": [
    {
      "id": 1,
      "name": "Blu-ray High Quality",
      "mediaType": "bluray",
      "handbrakePreset": "H.265 MKV 1080p30",
      "extraArgs": "--encoder-preset slow",
      "description": "Langsam, aber beste Qualität",
      "createdAt": "2026-01-15T10:00:00.000Z",
      "updatedAt": "2026-01-15T10:00:00.000Z"
    }
  ]
}

POST /api/settings/user-presets

Legt ein neues User-Preset an.

Request:

{
  "name": "Blu-ray High Quality",
  "mediaType": "bluray",
  "handbrakePreset": "H.265 MKV 1080p30",
  "extraArgs": "--encoder-preset slow",
  "description": "Langsam, aber beste Qualität"
}
Feld Typ Pflicht Beschreibung
name string Anzeigename
mediaType string bluray, dvd, other, all (Standard: all)
handbrakePreset string HandBrake-Preset-Name (-Z)
extraArgs string Zusatz-CLI-Argumente
description string Optionale Beschreibung

Response: 201 Created { "preset": { ... } }


PUT /api/settings/user-presets/:id

Aktualisiert ein User-Preset. Alle Felder optional.


DELETE /api/settings/user-presets/:id

Löscht ein User-Preset.


Einstellungs-Schlüssel Referenz

Eine vollständige Übersicht aller Schlüssel: :octicons-arrow-right-24: Einstellungsreferenz