diff --git a/app/api/endpoints/system.py b/app/api/endpoints/system.py index 9cfb52358..e18cdb1e3 100644 --- a/app/api/endpoints/system.py +++ b/app/api/endpoints/system.py @@ -24,7 +24,7 @@ @router.get("/env", summary="查询系统环境变量", response_model=schemas.Response) def get_setting(_: schemas.TokenPayload = Depends(verify_token)): """ - 查询系统环境变量 + 查询系统环境变量,包括当前版本号 """ info = settings.dict( exclude={"SECRET_KEY", "SUPERUSER_PASSWORD", "API_TOKEN"} @@ -153,3 +153,16 @@ def nettest(url: str, }) else: return schemas.Response(success=False, message="网络连接失败!") + + +@router.get("/versions", summary="查询Github所有Release版本", response_model=schemas.Response) +def latest_version(_: schemas.TokenPayload = Depends(verify_token)): + """ + 查询Github所有Release版本 + """ + version_res = RequestUtils().get_res(f"https://api.github.com/repos/jxxghp/MoviePilot/releases") + if version_res: + ver_json = version_res.json() + if ver_json: + return schemas.Response(success=True, data=ver_json) + return schemas.Response(success=False) diff --git a/app/schemas/response.py b/app/schemas/response.py index 0cb40f77a..b42e7ce16 100644 --- a/app/schemas/response.py +++ b/app/schemas/response.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import Optional, Union from pydantic import BaseModel @@ -9,4 +9,4 @@ class Response(BaseModel): # 消息文本 message: Optional[str] = None # 数据 - data: Optional[dict] = {} + data: Optional[Union[dict, list]] = {}