diff --git a/app/api/endpoints/system.py b/app/api/endpoints/system.py index b215dc29..a1ad303f 100644 --- a/app/api/endpoints/system.py +++ b/app/api/endpoints/system.py @@ -10,6 +10,7 @@ from fastapi.responses import StreamingResponse from app import schemas from app.chain.search import SearchChain +from app.chain.system import SystemChain from app.core.config import settings from app.core.module import ModuleManager from app.core.security import verify_token @@ -50,10 +51,12 @@ def get_env_setting(_: schemas.TokenPayload = Depends(verify_token)): info = settings.dict( exclude={"SECRET_KEY", "SUPERUSER_PASSWORD"} ) + frontend_version = SystemChain().get_frontend_version() info.update({ "VERSION": APP_VERSION, "AUTH_VERSION": SitesHelper().auth_version, "INDEXER_VERSION": SitesHelper().indexer_version, + "FRONTEND_VERSION": frontend_version }) return schemas.Response(success=True, data=info) diff --git a/app/chain/system.py b/app/chain/system.py index e47c7be6..5da6a49c 100644 --- a/app/chain/system.py +++ b/app/chain/system.py @@ -1,5 +1,6 @@ import json import re +from pathlib import Path from typing import Union from app.chain import ChainBase @@ -117,3 +118,20 @@ class SystemChain(ChainBase, metaclass=Singleton): return None except Exception as err: logger.error(f"加载版本文件 {version_file} 出错:{str(err)}") + + @staticmethod + def get_frontend_version(): + """ + 获取前端版本 + """ + version_file = Path(settings.FRONTEND_PATH) / "version.txt" + if version_file.exists(): + try: + with open(version_file, 'r') as f: + version = str(f).strip() + return version + except Exception as err: + logger.error(f"加载版本文件 {version_file} 出错:{str(err)}") + else: + logger.warn("未找到前端版本文件,请正确设置 FRONTEND_PATH") + return None diff --git a/app/core/config.py b/app/core/config.py index 9c17f392..abf51661 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -13,6 +13,8 @@ class Settings(BaseSettings): PROJECT_NAME = "MoviePilot" # API路径 API_V1_STR: str = "/api/v1" + # 前端资源路径 + FRONTEND_PATH: str = "/public" # 密钥 SECRET_KEY: str = secrets.token_urlsafe(32) # 允许的域名