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:
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:
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:
Response:
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:
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:
Response:
POST /api/history/:id/delete¶
Löscht den Job-Eintrag aus der Datenbank, optional auch die Dateien.
URL-Parameter: id – Job-ID
Request:
Response:
Unwiderruflich
Das Löschen von Jobs und Dateien ist nicht rückgängig zu machen.