diff --git a/app/api/endpoints/download.py b/app/api/endpoints/download.py index bdfec12c..a74ef6a0 100644 --- a/app/api/endpoints/download.py +++ b/app/api/endpoints/download.py @@ -9,7 +9,9 @@ from app.core.context import MediaInfo, Context, TorrentInfo from app.core.metainfo import MetaInfo from app.core.security import verify_token from app.db.models.user import User +from app.db.systemconfig_oper import SystemConfigOper from app.db.user_oper import get_current_active_user +from app.schemas.types import SystemConfigKey router = APIRouter() @@ -111,6 +113,17 @@ def stop(hashString: str, return schemas.Response(success=True if ret else False) +@router.get("/clients", summary="查询可用下载器", response_model=List[dict]) +def clients(_: schemas.TokenPayload = Depends(verify_token)) -> Any: + """ + 查询可用下载器 + """ + downloaders: List[dict] = SystemConfigOper().get(SystemConfigKey.Downloaders) + if downloaders: + return [{"name": d.get("name"), "type": d.get("type")} for d in downloaders if d.get("enabled")] + return [] + + @router.delete("/{hashString}", summary="删除下载任务", response_model=schemas.Response) def delete(hashString: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any: diff --git a/app/api/endpoints/mediaserver.py b/app/api/endpoints/mediaserver.py index 0b41cb21..1f1e90b8 100644 --- a/app/api/endpoints/mediaserver.py +++ b/app/api/endpoints/mediaserver.py @@ -12,8 +12,10 @@ from app.core.security import verify_token from app.db import get_db from app.db.mediaserver_oper import MediaServerOper from app.db.models import MediaServerItem +from app.db.systemconfig_oper import SystemConfigOper from app.helper.mediaserver import MediaServerHelper from app.schemas import MediaType, NotExistMediaInfo +from app.schemas.types import SystemConfigKey router = APIRouter() @@ -143,3 +145,14 @@ def library(server: str, hidden: bool = False, 获取媒体服务器媒体库列表 """ return MediaServerChain().librarys(server=server, username=userinfo.username, hidden=hidden) or [] + + +@router.get("/clients", summary="查询可用媒体服务器", response_model=List[dict]) +def clients(_: schemas.TokenPayload = Depends(verify_token)) -> Any: + """ + 查询可用媒体服务器 + """ + mediaservers: List[dict] = SystemConfigOper().get(SystemConfigKey.MediaServers) + if mediaservers: + return [{"name": d.get("name"), "type": d.get("type")} for d in mediaservers if d.get("enabled")] + return []