22 Commits

Author SHA1 Message Date
029abb9be2 fix: progress part 1. percentage is working 2025-11-20 19:21:01 +01:00
34019b7e65 better shutdown 2025-11-20 19:11:05 +01:00
17c7a2e295 fixed tests 2025-11-19 20:46:08 +01:00
1e357181b6 fix: add and download issue 2025-11-14 09:33:36 +01:00
2441730862 fix progress events 2025-11-07 18:40:36 +01:00
5c4bd3d7e8 fix add issue 2025-11-02 15:42:51 +01:00
e414a1a358 refactored callback 2025-11-02 10:34:49 +01:00
2de3317aee refactoring backup 2025-11-02 09:52:43 +01:00
57c30a0156 call back logs 2025-11-01 19:03:30 +01:00
9fce617949 fix percentage 2025-11-01 18:46:53 +01:00
18faf3fe91 added remove all item from queue 2025-11-01 18:09:23 +01:00
4dba4db344 fix: wrong folder was created 2025-11-01 17:51:30 +01:00
33aeac0141 download the queue 2025-11-01 16:13:28 +01:00
3be175522f download re implemented 2025-10-30 22:06:41 +01:00
727486795c fix download 2025-10-30 21:13:08 +01:00
9a64ca5b01 cleanup 2025-10-23 18:10:34 +02:00
92795cf9b3 Improve docs and security defaults 2025-10-22 15:22:58 +02:00
4eede0c8c0 better time usings 2025-10-22 08:14:42 +02:00
3e50ec0149 fix tests 2025-10-22 07:44:24 +02:00
71207bc935 feat: Complete WebSocket integration with core services
- Enhanced DownloadService broadcasts for all queue operations
  - Download progress, complete, and failed broadcasts with full metadata
  - Queue operations (add, remove, reorder, retry, clear) broadcast queue status
  - Queue control (start, stop, pause, resume) broadcasts state changes

- AnimeService scan progress fully integrated with ProgressService
  - Scan lifecycle events (start, update, complete, fail) broadcasted
  - Progress tracking via ProgressService to scan_progress room

- ProgressService WebSocket integration
  - Broadcast callback registered during application startup
  - All progress types route to appropriate rooms
  - Throttled broadcasts for performance (>1% changes)

- Comprehensive integration tests
  - Test download progress and completion broadcasts
  - Test queue operation broadcasts
  - Test scan progress lifecycle
  - Test progress service integration
  - End-to-end flow testing

- Updated infrastructure documentation
  - Detailed broadcast message formats
  - Room structure and subscription patterns
  - Production deployment considerations
  - Architecture benefits and scalability notes
2025-10-17 11:51:16 +02:00
94de91ffa0 feat: implement WebSocket real-time progress updates
- Add ProgressService for centralized progress tracking and broadcasting
- Integrate ProgressService with DownloadService for download progress
- Integrate ProgressService with AnimeService for scan progress
- Add progress-related WebSocket message models (ScanProgress, ErrorNotification, etc.)
- Initialize ProgressService with WebSocket callback in application startup
- Add comprehensive unit tests for ProgressService
- Update infrastructure.md with ProgressService documentation
- Remove completed WebSocket Real-time Updates task from instructions.md

The ProgressService provides:
- Real-time progress tracking for downloads, scans, and queue operations
- Automatic progress percentage calculation
- Progress lifecycle management (start, update, complete, fail, cancel)
- WebSocket integration for instant client updates
- Progress history with size limits
- Thread-safe operations using asyncio locks
- Support for metadata and custom messages

Benefits:
- Decoupled progress tracking from WebSocket broadcasting
- Single reusable service across all components
- Supports multiple concurrent operations efficiently
- Centralized progress tracking simplifies monitoring
- Instant feedback to users on long-running operations
2025-10-17 11:12:06 +02:00
028d91283e feat: implement download queue service with persistence, priority, and retry logic
- Added comprehensive download queue service (download_service.py)
  - Priority-based queue management (HIGH, NORMAL, LOW)
  - Concurrent download processing with configurable limits
  - Automatic queue persistence to JSON file
  - Retry logic for failed downloads with max retry limits
  - Real-time progress tracking and WebSocket broadcasting
  - Queue operations: add, remove, reorder, pause, resume
  - Statistics tracking: download speeds, sizes, ETA calculations

- Created comprehensive unit tests (test_download_service.py)
  - 23 tests covering all service functionality
  - Tests for queue management, persistence, retry logic
  - Broadcast callbacks, error handling, and lifecycle

- Added structlog dependency for structured logging
- Updated infrastructure.md with download service documentation
- Removed completed task from instructions.md

All tests passing (23/23)
2025-10-17 10:07:16 +02:00