Files
ripster/docs/api/history.md

3.6 KiB
Raw Blame History

History API

Endpunkte für die Job-Histoire, Dateimanagement und Orphan-Import.


GET /api/history

Gibt eine Liste aller Jobs zurück, optional gefiltert.

Query-Parameter:

Parameter Typ Beschreibung
status string Filtert nach Status (z.B. FINISHED, ERROR)
search string Sucht in Filmtiteln

Beispiel:

GET /api/history?status=FINISHED&search=Inception

Response:

{
  "jobs": [
    {
      "id": 42,
      "status": "FINISHED",
      "title": "Inception",
      "imdb_id": "tt1375666",
      "omdb_year": "2010",
      "omdb_type": "movie",
      "omdb_poster": "https://...",
      "raw_path": "/mnt/nas/raw/Inception_t00.mkv",
      "output_path": "/mnt/nas/movies/Inception (2010).mkv",
      "created_at": "2024-01-15T10:00:00.000Z",
      "updated_at": "2024-01-15T12:30:00.000Z"
    }
  ],
  "total": 1
}

GET /api/history/:id

Gibt Detail-Informationen für einen einzelnen Job zurück.

URL-Parameter: id Job-ID

Query-Parameter:

Parameter Typ Standard Beschreibung
includeLogs boolean false Log-Inhalte einschließen
includeLiveLog boolean false Aktuellen Live-Log einschließen

Response:

{
  "id": 42,
  "status": "FINISHED",
  "title": "Inception",
  "imdb_id": "tt1375666",
  "encode_plan": { ... },
  "makemkv_output": { ... },
  "mediainfo_output": { ... },
  "handbrake_log": "/path/to/log",
  "logs": {
    "handbrake": "Encoding: task 1 of 1, 100.0%\n..."
  },
  "created_at": "2024-01-15T10:00:00.000Z",
  "updated_at": "2024-01-15T12:30:00.000Z"
}

GET /api/history/database

Gibt alle rohen Datenbankzeilen zurück (Debug-Ansicht).

Response:

{
  "jobs": [ { "id": 1, "status": "FINISHED", ... } ],
  "total": 15
}

GET /api/history/orphan-raw

Findet Raw-Ordner, die nicht als Jobs in der Datenbank registriert sind.

Response:

{
  "orphans": [
    {
      "path": "/mnt/nas/raw/UnknownMovie_2023-12-01",
      "size": "45.2 GB",
      "modifiedAt": "2023-12-01T15:00:00.000Z",
      "files": ["t00.mkv", "t01.mkv"]
    }
  ]
}

POST /api/history/orphan-raw/import

Importiert einen Orphan-Raw-Ordner als Job in die Datenbank.

Request:

{
  "path": "/mnt/nas/raw/UnknownMovie_2023-12-01"
}

Response:

{
  "ok": true,
  "jobId": 99,
  "message": "Orphan-Ordner als Job importiert"
}

Nach dem Import kann dem Job über /api/history/:id/omdb/assign Metadaten zugewiesen werden.


POST /api/history/:id/omdb/assign

Weist einem bestehenden Job OMDb-Metadaten nachträglich zu.

URL-Parameter: id Job-ID

Request:

{
  "imdbId": "tt1375666",
  "title": "Inception",
  "year": "2010",
  "type": "movie",
  "poster": "https://..."
}

Response:

{ "ok": true }

POST /api/history/:id/delete-files

Löscht die Dateien eines Jobs (Raw und/oder Output), behält den Job-Eintrag.

URL-Parameter: id Job-ID

Request:

{
  "deleteRaw": true,
  "deleteOutput": false
}

Response:

{
  "ok": true,
  "deleted": {
    "raw": "/mnt/nas/raw/Inception_t00.mkv",
    "output": null
  }
}

POST /api/history/:id/delete

Löscht den Job-Eintrag aus der Datenbank, optional auch die Dateien.

URL-Parameter: id Job-ID

Request:

{
  "deleteFiles": true
}

Response:

{ "ok": true, "message": "Job gelöscht" }

!!! warning "Unwiderruflich" Das Löschen von Jobs und Dateien ist nicht rückgängig zu machen.