mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-11-03 05:44:44 +08:00
refactor(transfer): keep queue projections in transfer endpoint module
This commit is contained in:
@@ -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]
|
||||
)
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
@@ -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",)),
|
||||
|
||||
Reference in New Issue
Block a user