From 8334a468d06e4d3449a99b7aef53f25b80e735b3 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Mon, 26 Jan 2026 12:53:26 +0800 Subject: [PATCH] feat(category): Add API endpoints for retrieving and saving category configuration --- app/api/apiv1.py | 3 +-- app/api/endpoints/category.py | 28 ---------------------------- app/api/endpoints/media.py | 23 +++++++++++++++++++++++ 3 files changed, 24 insertions(+), 30 deletions(-) delete mode 100644 app/api/endpoints/category.py diff --git a/app/api/apiv1.py b/app/api/apiv1.py index 9aa64723..b519acb9 100644 --- a/app/api/apiv1.py +++ b/app/api/apiv1.py @@ -2,7 +2,7 @@ from fastapi import APIRouter from app.api.endpoints import login, user, webhook, message, site, subscribe, \ media, douban, search, plugin, tmdb, history, system, download, dashboard, \ - transfer, mediaserver, bangumi, storage, discover, recommend, workflow, torrent, mcp, mfa, category + transfer, mediaserver, bangumi, storage, discover, recommend, workflow, torrent, mcp, mfa api_router = APIRouter() api_router.include_router(login.router, prefix="/login", tags=["login"]) @@ -18,7 +18,6 @@ api_router.include_router(douban.router, prefix="/douban", tags=["douban"]) api_router.include_router(tmdb.router, prefix="/tmdb", tags=["tmdb"]) api_router.include_router(history.router, prefix="/history", tags=["history"]) api_router.include_router(system.router, prefix="/system", tags=["system"]) -api_router.include_router(category.router, prefix="/category", tags=["category"]) api_router.include_router(plugin.router, prefix="/plugin", tags=["plugin"]) api_router.include_router(download.router, prefix="/download", tags=["download"]) api_router.include_router(dashboard.router, prefix="/dashboard", tags=["dashboard"]) diff --git a/app/api/endpoints/category.py b/app/api/endpoints/category.py deleted file mode 100644 index 5f6d6977..00000000 --- a/app/api/endpoints/category.py +++ /dev/null @@ -1,28 +0,0 @@ -from fastapi import APIRouter, Depends -from app import schemas -from app.chain.tmdb import TmdbChain -from app.db.models import User -from app.db.user_oper import get_current_active_superuser, get_current_active_user -from app.schemas.category import CategoryConfig - -router = APIRouter() - - -@router.get("/", summary="获取分类策略配置", response_model=schemas.Response) -def get_category_config(_: User = Depends(get_current_active_user)): - """ - 获取分类策略配置 - """ - config = TmdbChain().category_config() - return schemas.Response(success=True, data=config.model_dump()) - - -@router.post("/", summary="保存分类策略配置", response_model=schemas.Response) -def save_category_config(config: CategoryConfig, _: User = Depends(get_current_active_superuser)): - """ - 保存分类策略配置 - """ - if TmdbChain().save_category_config(config): - return schemas.Response(success=True, message="保存成功") - else: - return schemas.Response(success=False, message="保存失败") diff --git a/app/api/endpoints/media.py b/app/api/endpoints/media.py index 81c55e42..eddef82b 100644 --- a/app/api/endpoints/media.py +++ b/app/api/endpoints/media.py @@ -11,7 +11,10 @@ from app.core.context import Context from app.core.event import eventmanager from app.core.metainfo import MetaInfo, MetaInfoPath from app.core.security import verify_token, verify_apitoken +from app.db.models import User +from app.db.user_oper import get_current_active_user, get_current_active_superuser from app.schemas import MediaType, MediaRecognizeConvertEventData +from app.schemas.category import CategoryConfig from app.schemas.types import ChainEventType router = APIRouter() @@ -131,6 +134,26 @@ def scrape(fileitem: schemas.FileItem, return schemas.Response(success=True, message=f"{fileitem.path} 刮削完成") +@router.get("/category/config", summary="获取分类策略配置", response_model=schemas.Response) +def get_category_config(_: User = Depends(get_current_active_user)): + """ + 获取分类策略配置 + """ + config = MediaChain().category_config() + return schemas.Response(success=True, data=config.model_dump()) + + +@router.post("/category/config", summary="保存分类策略配置", response_model=schemas.Response) +def save_category_config(config: CategoryConfig, _: User = Depends(get_current_active_superuser)): + """ + 保存分类策略配置 + """ + if MediaChain().save_category_config(config): + return schemas.Response(success=True, message="保存成功") + else: + return schemas.Response(success=False, message="保存失败") + + @router.get("/category", summary="查询自动分类配置", response_model=dict) async def category(_: schemas.TokenPayload = Depends(verify_token)) -> Any: """