Files
ripster/docs/api/history.md
2026-03-10 13:12:57 +00:00

4.0 KiB

History API

Endpunkte für Job-Historie, Orphan-Import und Löschoperationen.


GET /api/history

Liefert Jobs (optionale Filter).

Query-Parameter:

Parameter Typ Beschreibung
status string Filter nach Job-Status
search string Suche in Titel-Feldern

Beispiel:

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

Response:

{
  "jobs": [
    {
      "id": 42,
      "status": "FINISHED",
      "title": "Inception",
      "raw_path": "/mnt/raw/Inception - RAW - job-42",
      "output_path": "/mnt/movies/Inception (2010)/Inception (2010).mkv",
      "mediaType": "bluray",
      "ripSuccessful": true,
      "encodeSuccess": true,
      "created_at": "2026-03-10T08:00:00.000Z",
      "updated_at": "2026-03-10T10:00:00.000Z"
    }
  ]
}

GET /api/history/:id

Liefert Job-Detail.

Query-Parameter:

Parameter Typ Standard Beschreibung
includeLogs bool false Prozesslog laden
includeLiveLog bool false alias-artig ebenfalls Prozesslog laden
includeAllLogs bool false vollständiges Log statt Tail
logTailLines number 800 Tail-Länge falls nicht includeAllLogs

Response:

{
  "job": {
    "id": 42,
    "status": "FINISHED",
    "makemkvInfo": {},
    "mediainfoInfo": {},
    "handbrakeInfo": {},
    "encodePlan": {},
    "log": "...",
    "log_count": 1,
    "logMeta": {
      "loaded": true,
      "total": 800,
      "returned": 800,
      "truncated": true
    }
  }
}

GET /api/history/database

Debug-Ansicht der DB-Zeilen (angereichert).

Response:

{
  "rows": [
    {
      "id": 42,
      "status": "FINISHED",
      "rawFolderName": "Inception - RAW - job-42"
    }
  ]
}

GET /api/history/orphan-raw

Sucht RAW-Ordner ohne zugehörigen Job.

Response:

{
  "rawDir": "/mnt/raw",
  "rawDirs": ["/mnt/raw", "/mnt/raw-bluray"],
  "rows": [
    {
      "rawPath": "/mnt/raw/Inception (2010) [tt1375666] - RAW - job-99",
      "folderName": "Inception (2010) [tt1375666] - RAW - job-99",
      "title": "Inception",
      "year": 2010,
      "imdbId": "tt1375666",
      "folderJobId": 99,
      "entryCount": 4,
      "hasBlurayStructure": true,
      "lastModifiedAt": "2026-03-10T09:00:00.000Z"
    }
  ]
}

POST /api/history/orphan-raw/import

Importiert RAW-Ordner als FINISHED-Job.

Request:

{ "rawPath": "/mnt/raw/Inception (2010) [tt1375666] - RAW - job-99" }

Response:

{
  "job": { "id": 77, "status": "FINISHED" },
  "uiReset": { "reset": true, "state": "IDLE" }
}

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

Weist OMDb-/Metadaten nachträglich zu.

Request:

{
  "imdbId": "tt1375666",
  "title": "Inception",
  "year": 2010,
  "poster": "https://...",
  "fromOmdb": true
}

Response:

{ "job": { "id": 42, "imdb_id": "tt1375666" } }

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

Löscht Dateien eines Jobs, behält DB-Eintrag.

Request:

{ "target": "both" }

target: raw | movie | both

Response:

{
  "summary": {
    "target": "both",
    "raw": { "attempted": true, "deleted": true, "filesDeleted": 12, "dirsRemoved": 3, "reason": null },
    "movie": { "attempted": true, "deleted": false, "filesDeleted": 0, "dirsRemoved": 0, "reason": "Movie-Datei/Pfad existiert nicht." }
  },
  "job": { "id": 42 }
}

POST /api/history/:id/delete

Löscht Job aus DB; optional auch Dateien.

Request:

{ "target": "none" }

target: none | raw | movie | both

Response:

{
  "deleted": true,
  "jobId": 42,
  "fileTarget": "both",
  "fileSummary": {
    "target": "both",
    "raw": { "filesDeleted": 10 },
    "movie": { "filesDeleted": 1 }
  },
  "uiReset": {
    "reset": true,
    "state": "IDLE"
  }
}

Hinweise

  • Ein aktiver Pipeline-Job kann nicht gelöscht werden (409).
  • Alle Löschoperationen sind irreversibel.