fix progress events

This commit is contained in:
2025-11-07 18:40:36 +01:00
parent 5c4bd3d7e8
commit 2441730862
5 changed files with 673 additions and 249 deletions

View File

@@ -384,39 +384,14 @@ def get_download_service() -> "DownloadService":
if _download_service is None:
try:
from src.server.services import (
websocket_service as websocket_service_module,
)
from src.server.services.download_service import DownloadService
anime_service = get_anime_service()
_download_service = DownloadService(anime_service)
ws_service = websocket_service_module.get_websocket_service()
async def broadcast_callback(update_type: str, data: dict) -> None:
"""Broadcast download updates via WebSocket."""
if update_type == "download_progress":
await ws_service.broadcast_download_progress(
data.get("download_id", ""),
data,
)
elif update_type == "download_complete":
await ws_service.broadcast_download_complete(
data.get("download_id", ""),
data,
)
elif update_type == "download_failed":
await ws_service.broadcast_download_failed(
data.get("download_id", ""),
data,
)
elif update_type == "queue_status":
await ws_service.broadcast_queue_status(data)
else:
await ws_service.broadcast_queue_status(data)
_download_service.set_broadcast_callback(broadcast_callback)
# Note: DownloadService no longer needs broadcast callbacks.
# Progress updates flow through:
# SeriesApp → AnimeService → ProgressService → WebSocketService
except HTTPException:
raise