diff --git a/data/config.json b/data/config.json index 03643ca..6b8143c 100644 --- a/data/config.json +++ b/data/config.json @@ -17,7 +17,7 @@ "keep_days": 30 }, "other": { - "master_password_hash": "$pbkdf2-sha256$29000$AQAAAKAUImRsTSlFCGFMaQ$farZvo8fZCY9ZX7UiGFXTMtdduNvfSSVP8iDNwSWqfo", + "master_password_hash": "$pbkdf2-sha256$29000$MwYgpBTCmPM.JwQgRGhtDQ$GbltEa61jWLom23mXGi7psyZ4haHuXM6MRB5wl4CCU4", "anime_directory": "/mnt/server/serien/Serien/" }, "version": "1.0.0" diff --git a/data/download_queue.json b/data/download_queue.json index c68def4..f238355 100644 --- a/data/download_queue.json +++ b/data/download_queue.json @@ -1,6 +1,327 @@ { - "pending": [], + "pending": [ + { + "id": "4900cd26-5702-44fc-b575-5111193a274f", + "serie_id": "test-series-2", + "serie_folder": "Another Series (2024)", + "serie_name": "Another Series", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "HIGH", + "added_at": "2025-11-28T14:58:37.173276Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "991f6985-1896-420c-8e28-675044bf9da3", + "serie_id": "series-high", + "serie_folder": "Series High (2024)", + "serie_name": "Series High", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "HIGH", + "added_at": "2025-11-28T14:58:37.214713Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "1d2c34fe-9f91-4614-a733-fd4e5ffbc451", + "serie_id": "series-normal", + "serie_folder": "Series Normal (2024)", + "serie_name": "Series Normal", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.216943Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "2eeb36cd-50ba-4e49-92c1-8f9385d9d0f9", + "serie_id": "series-low", + "serie_folder": "Series Low (2024)", + "serie_name": "Series Low", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "LOW", + "added_at": "2025-11-28T14:58:37.218979Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "c42241f8-6ffb-4ee4-bcfa-f4e388cdd8cf", + "serie_id": "test-series", + "serie_folder": "Test Series (2024)", + "serie_name": "Test Series", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.399213Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "728a5592-0b82-4ce5-a34f-7a9c390053dc", + "serie_id": "test-series", + "serie_folder": "Test Series (2024)", + "serie_name": "Test Series", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.467671Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "d64df138-b5b2-447a-a310-fde41a4607c8", + "serie_id": "invalid-series", + "serie_folder": "Invalid Series (2024)", + "serie_name": "Invalid Series", + "episode": { + "season": 99, + "episode": 99, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.540908Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "c87bb473-6b35-4f81-a0a8-7eec1e23756a", + "serie_id": "test-series", + "serie_folder": "Test Series (2024)", + "serie_name": "Test Series", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.578395Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "babab810-6c34-4a87-aec5-f8848645f57f", + "serie_id": "series-4", + "serie_folder": "Series 4 (2024)", + "serie_name": "Series 4", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.674390Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "4da2b237-ab58-4312-a322-09d28f3ba0ec", + "serie_id": "series-2", + "serie_folder": "Series 2 (2024)", + "serie_name": "Series 2", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.675597Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "d2ad485b-6f44-4738-8cba-ef9be5ef6853", + "serie_id": "series-0", + "serie_folder": "Series 0 (2024)", + "serie_name": "Series 0", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.677593Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "d44e3def-5e49-47c9-accb-c662712f3b5d", + "serie_id": "series-1", + "serie_folder": "Series 1 (2024)", + "serie_name": "Series 1", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.678299Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "d8ddb373-d20e-456e-a836-31991a9e3e90", + "serie_id": "series-3", + "serie_folder": "Series 3 (2024)", + "serie_name": "Series 3", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.678964Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "7cdbc2b6-0d5c-48fc-8a02-0b6b4d4275dd", + "serie_id": "persistent-series", + "serie_folder": "Persistent Series (2024)", + "serie_name": "Persistent Series", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.765201Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "1b5f11b3-26d3-43ea-9615-8f951dc09bac", + "serie_id": "ws-series", + "serie_folder": "WebSocket Series (2024)", + "serie_name": "WebSocket Series", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "NORMAL", + "added_at": "2025-11-28T14:58:37.835647Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + }, + { + "id": "72a71e8e-3a06-4d81-896e-d5c11956cb12", + "serie_id": "workflow-series", + "serie_folder": "Workflow Test Series (2024)", + "serie_name": "Workflow Test Series", + "episode": { + "season": 1, + "episode": 1, + "title": null + }, + "status": "pending", + "priority": "HIGH", + "added_at": "2025-11-28T14:58:37.870997Z", + "started_at": null, + "completed_at": null, + "progress": null, + "error": null, + "retry_count": 0, + "source_url": null + } + ], "active": [], "failed": [], - "timestamp": "2025-11-27T17:59:24.301867+00:00" + "timestamp": "2025-11-28T14:58:37.880117+00:00" } \ No newline at end of file diff --git a/infrastructure.md b/infrastructure.md index 1eaf98f..8298326 100644 --- a/infrastructure.md +++ b/infrastructure.md @@ -188,22 +188,22 @@ Provides utilities for template rendering and series data preparation. ### Core Functions -| Function | Purpose | -| ------------------------- | ------------------------------------ | -| `get_base_context` | Base context for all templates | -| `render_template` | Render template with context | -| `validate_template_exists`| Check if template file exists | -| `list_available_templates`| List all available template files | +| Function | Purpose | +| -------------------------- | --------------------------------- | +| `get_base_context` | Base context for all templates | +| `render_template` | Render template with context | +| `validate_template_exists` | Check if template file exists | +| `list_available_templates` | List all available template files | ### Series Context Helpers All series helpers use `key` as the primary identifier: -| Function | Purpose | -| --------------------------------- | ---------------------------------------------- | -| `prepare_series_context` | Prepare series data for templates (uses `key`) | -| `get_series_by_key` | Find series by `key` (not `folder`) | -| `filter_series_by_missing_episodes`| Filter series with missing episodes | +| Function | Purpose | +| ----------------------------------- | ---------------------------------------------- | +| `prepare_series_context` | Prepare series data for templates (uses `key`) | +| `get_series_by_key` | Find series by `key` (not `folder`) | +| `filter_series_by_missing_episodes` | Filter series with missing episodes | **Example Usage:** diff --git a/instructions.md b/instructions.md index f0ee3a0..b73e5a3 100644 --- a/instructions.md +++ b/instructions.md @@ -161,13 +161,14 @@ For each task completed: ### Phase 4: API Layer ✅ (Completed November 28, 2025) All API layer tasks completed: -- Task 4.1: Update Anime API Endpoints ✅ -- Task 4.2: Update Download API Endpoints ✅ -- Task 4.3: Update Queue API Endpoints ✅ -- Task 4.4: Update WebSocket API Endpoints ✅ -- Task 4.5: Update Pydantic Models ✅ -- Task 4.6: Update Validators ✅ -- Task 4.7: Update Template Helpers ✅ + +- Task 4.1: Update Anime API Endpoints ✅ +- Task 4.2: Update Download API Endpoints ✅ +- Task 4.3: Update Queue API Endpoints ✅ +- Task 4.4: Update WebSocket API Endpoints ✅ +- Task 4.5: Update Pydantic Models ✅ +- Task 4.6: Update Validators ✅ +- Task 4.7: Update Template Helpers ✅ ---