diff --git a/app/api/endpoints/transfer.py b/app/api/endpoints/transfer.py index 2af051d74..833217374 100644 --- a/app/api/endpoints/transfer.py +++ b/app/api/endpoints/transfer.py @@ -12,6 +12,7 @@ from app.api.endpoints.transferhistory import ( restore_manual_transfer_history_metadata, ) from app.api.response import ( + COLLECTION_MAX_PAGE_SIZE, CompatibleCountParam, CompatiblePageParam, ResponseAPIRouter, @@ -50,6 +51,7 @@ from app.schemas.transfer import TransferManualReviewData as _SchemaTransferManu from app.schemas.transfer import TransferManualReviewPageData as _SchemaTransferManualReviewPageData from app.schemas.transfer import TransferManualReviewRequest as _SchemaTransferManualReviewRequest from app.schemas.transfer import TransferManualReviewTaskData as _SchemaTransferManualReviewTaskData +from app.schemas.transfer import TransferQueuePageData as _SchemaTransferQueuePageData from app.schemas.types import MUSIC_ENTITY_ALBUM, MUSIC_ENTITY_RECORDING, MediaType from app.schemas.workflow import FileItem from app.schemas.workflow import FileItem as _SchemaFileItem @@ -442,6 +444,26 @@ async def query_queue(_: _SchemaTokenPayload = Depends(verify_token), page: Comp return TransferChain().get_queue_tasks() +@router.get( # type: ignore[misc] + "/queue/page", + summary="查询受限整理队列快照", + response_model=_SchemaTransferQueuePageData, +) +async def query_queue_page( + _: _SchemaTokenPayload = Depends(verify_token), + page: int = Query(1, ge=1), + count: int = Query(100, ge=1, le=COLLECTION_MAX_PAGE_SIZE), +) -> _SchemaTransferQueuePageData: + """返回前端所需的有限整理队列窗口,避免序列化完整云盘目录树。""" + items, total = TransferChain().get_queue_tasks_page(page, count) + return _SchemaTransferQueuePageData( + items=items, + total=total, + page=page, + count=count, + ) + + @router.delete( "/queue", summary="从整理队列中删除任务", response_model=_SchemaResponse[None] ) diff --git a/app/api/endpoints/transferqueue.py b/app/api/endpoints/transferqueue.py deleted file mode 100644 index 397aa4740..000000000 --- a/app/api/endpoints/transferqueue.py +++ /dev/null @@ -1,29 +0,0 @@ -from fastapi import Depends, Query - -from app.adapters.web.security.access import verify_token -from app.api.response import COLLECTION_MAX_PAGE_SIZE, ResponseAPIRouter -from app.chain.transfer.facade import TransferChain -from app.schemas.token import TokenPayload as _SchemaTokenPayload -from app.schemas.transfer import TransferQueuePageData as _SchemaTransferQueuePageData - -router = ResponseAPIRouter() - - -@router.get( # type: ignore[misc] - "/queue/page", - summary="查询受限整理队列快照", - response_model=_SchemaTransferQueuePageData, -) -async def query_queue_page( - _: _SchemaTokenPayload = Depends(verify_token), - page: int = Query(1, ge=1), - count: int = Query(100, ge=1, le=COLLECTION_MAX_PAGE_SIZE), -) -> _SchemaTransferQueuePageData: - """返回前端所需的有限整理队列窗口,避免全量队列阻塞接口序列化。""" - items, total = TransferChain().get_queue_tasks_page(page, count) - return _SchemaTransferQueuePageData( - items=items, - total=total, - page=page, - count=count, - ) diff --git a/app/api/routers.py b/app/api/routers.py index a2e915820..d1a154cb8 100644 --- a/app/api/routers.py +++ b/app/api/routers.py @@ -41,7 +41,6 @@ from app.api.endpoints import ( tmdb, torrent, transfer, - transferqueue, user, webhook, workflow, @@ -89,7 +88,6 @@ API_V1_ROUTER_SPECS: tuple[RouterSpec, ...] = ( RouterSpec(dashboard.router, "/dashboard", ("dashboard",)), RouterSpec(storage.router, "/storage", ("storage",)), RouterSpec(transfer.router, "/transfer", ("transfer",)), - RouterSpec(transferqueue.router, "/transfer", ("transfer",)), RouterSpec(mediaserver.router, "/mediaserver", ("mediaserver",)), RouterSpec(bangumi.router, "/bangumi", ("bangumi",)), RouterSpec(anilist.router, "/anilist", ("anilist",)),