- Add production.py with security hardening and performance optimizations - Required environment variables for security (JWT, passwords, database) - Database connection pooling for PostgreSQL/MySQL - Security configurations and allowed hosts - Production logging and rotation settings - API rate limiting and performance tuning - Add development.py with relaxed settings for local development - Defaults for development (SQLite, debug logging, auto-reload) - Higher rate limits and longer session timeouts - Dev credentials for easy local setup - Development database defaults - Add environment configuration loader (__init__.py) - Automatic environment detection - Factory functions for lazy loading settings - Proper environment validation - Add startup scripts (start.sh) - Bash script for starting application in any environment - Conda environment validation - Automatic directory creation - Environment file generation - Database initialization - Development vs production startup modes - Add setup script (setup.py) - Python setup automation for environment initialization - Dependency installation - Environment file generation - Database initialization - Comprehensive validation and error handling - Update requirements.txt with psutil dependency All configurations follow project coding standards and include comprehensive documentation, type hints, and error handling.
425 lines
10 KiB
JSON
425 lines
10 KiB
JSON
{
|
|
"pending": [
|
|
{
|
|
"id": "7ce31824-1042-4a7e-b358-021660fe3f57",
|
|
"serie_id": "workflow-series",
|
|
"serie_name": "Workflow Test Series",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "high",
|
|
"added_at": "2025-10-22T06:33:14.519721Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "2037b69a-48c2-4878-aa01-4a715d09d824",
|
|
"serie_id": "series-2",
|
|
"serie_name": "Series 2",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.205751Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "56d39fa2-5590-49ee-a5f9-11b811b8644a",
|
|
"serie_id": "series-1",
|
|
"serie_name": "Series 1",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.202473Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "a154fa76-d368-4b49-a440-677c22d497f7",
|
|
"serie_id": "series-0",
|
|
"serie_name": "Series 0",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.197599Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "e30b1101-eca3-4e72-891d-8b5f154448b3",
|
|
"serie_id": "series-high",
|
|
"serie_name": "Series High",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "high",
|
|
"added_at": "2025-10-22T06:33:13.828413Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "36053249-03ad-42d6-83c5-67514f4c5ccd",
|
|
"serie_id": "test-series-2",
|
|
"serie_name": "Another Series",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "high",
|
|
"added_at": "2025-10-22T06:33:13.800966Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "6cf9ec9d-351c-4804-bbb1-fee061f3f9fd",
|
|
"serie_id": "test-series-1",
|
|
"serie_name": "Test Anime Series",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": "Episode 1"
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:13.774745Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "ac2f472c-4e3f-463b-b679-cf574af9174e",
|
|
"serie_id": "test-series-1",
|
|
"serie_name": "Test Anime Series",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 2,
|
|
"title": "Episode 2"
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:13.774848Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "b3d11784-aea5-41c0-8078-adc8c8294b04",
|
|
"serie_id": "series-normal",
|
|
"serie_name": "Series Normal",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:13.831840Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "dc1332cc-9230-46e6-bcdc-f0bb0f1ff58b",
|
|
"serie_id": "series-low",
|
|
"serie_name": "Series Low",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "low",
|
|
"added_at": "2025-10-22T06:33:13.835608Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "f86cf7ea-3f59-4e2a-a8bc-e63062995543",
|
|
"serie_id": "test-series",
|
|
"serie_name": "Test Series",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.145652Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "f0bad497-7bc8-4983-b65e-80f8f61de9e4",
|
|
"serie_id": "test-series",
|
|
"serie_name": "Test Series",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.235532Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "f4656791-4788-4088-aa76-7a9abbeef3d2",
|
|
"serie_id": "invalid-series",
|
|
"serie_name": "Invalid Series",
|
|
"episode": {
|
|
"season": 99,
|
|
"episode": 99,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.295095Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "5790af03-d28a-4f78-914c-f82d4c73bde5",
|
|
"serie_id": "test-series",
|
|
"serie_name": "Test Series",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.324681Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "4a293a5d-1bd8-4eb2-b006-286f7e0bed95",
|
|
"serie_id": "series-4",
|
|
"serie_name": "Series 4",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.367510Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "cc7ab85a-b63e-41ba-9e1b-d1c5c0b976f6",
|
|
"serie_id": "series-0",
|
|
"serie_name": "Series 0",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.368708Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "2cd29cec-7805-465d-b3a0-141cf8583710",
|
|
"serie_id": "series-1",
|
|
"serie_name": "Series 1",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.369487Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "dc4f4a75-7823-4933-a5f2-491698f741e5",
|
|
"serie_id": "series-2",
|
|
"serie_name": "Series 2",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.370252Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "956bb8fd-b745-436c-bdd1-ea1f522f8faa",
|
|
"serie_id": "series-3",
|
|
"serie_name": "Series 3",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.371006Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "27adc5f4-32f6-4aa5-9119-7e11f89682d8",
|
|
"serie_id": "persistent-series",
|
|
"serie_name": "Persistent Series",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.437853Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "3234ac64-d825-444b-8b35-d5d6cad0ad51",
|
|
"serie_id": "ws-series",
|
|
"serie_name": "WebSocket Series",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.488776Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
},
|
|
{
|
|
"id": "281f5856-ebc5-4dfd-b983-2d11ba865b5b",
|
|
"serie_id": "pause-test",
|
|
"serie_name": "Pause Test Series",
|
|
"episode": {
|
|
"season": 1,
|
|
"episode": 1,
|
|
"title": null
|
|
},
|
|
"status": "pending",
|
|
"priority": "normal",
|
|
"added_at": "2025-10-22T06:33:14.656270Z",
|
|
"started_at": null,
|
|
"completed_at": null,
|
|
"progress": null,
|
|
"error": null,
|
|
"retry_count": 0,
|
|
"source_url": null
|
|
}
|
|
],
|
|
"active": [],
|
|
"failed": [],
|
|
"timestamp": "2025-10-22T06:33:14.656532+00:00"
|
|
} |