From 627b13426d38696b5b8ba4e473d95d6f6f1c6a1b Mon Sep 17 00:00:00 2001 From: shiyu Date: Wed, 27 Aug 2025 19:05:58 +0800 Subject: [PATCH] feat: Update version handling in config and backup services --- api/routes/config.py | 6 +++--- services/backup.py | 18 +++++++++++------- services/config.py | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/api/routes/config.py b/api/routes/config.py index ea1b567..e8e66ce 100644 --- a/api/routes/config.py +++ b/api/routes/config.py @@ -2,7 +2,7 @@ import httpx import time from fastapi import APIRouter, Depends, Form from typing import Annotated -from services.config import ConfigCenter +from services.config import ConfigCenter, VERSION from services.auth import get_current_active_user, User, has_users from api.response import success router = APIRouter(prefix="/api/config", tags=["config"]) @@ -38,7 +38,7 @@ async def get_all_config( @router.get("/status") async def get_system_status(): system_info = { - "version": "v1.0.0", + "version": VERSION, "title": await ConfigCenter.get("APP_NAME", "Foxel"), "logo": await ConfigCenter.get("APP_LOGO", "/logo.svg"), "is_initialized": await has_users() @@ -58,7 +58,7 @@ async def get_latest_version(): if current_time - latest_version_cache["timestamp"] < 3600 and latest_version_cache["data"]: return success(latest_version_cache["data"]) try: - async with httpx.AsyncClient(timeout=10.0, proxy="http://127.0.0.1:7897") as client: + async with httpx.AsyncClient(timeout=10.0) as client: resp = await client.get( "https://api.github.com/repos/DrizzleTime/Foxel/releases/latest", follow_redirects=True, diff --git a/services/backup.py b/services/backup.py index de7b621..42da2c3 100644 --- a/services/backup.py +++ b/services/backup.py @@ -1,4 +1,3 @@ -import json from tortoise.transactions import in_transaction from models.database import ( StorageAdapter, @@ -8,6 +7,8 @@ from models.database import ( ShareLink, Configuration, ) +from services.config import VERSION + class BackupService: @staticmethod @@ -24,10 +25,13 @@ class BackupService: configs = await Configuration.all().values() for share in shares: - share["created_at"] = share["created_at"].isoformat() if share.get("created_at") else None - share["expires_at"] = share["expires_at"].isoformat() if share.get("expires_at") else None + share["created_at"] = share["created_at"].isoformat( + ) if share.get("created_at") else None + share["expires_at"] = share["expires_at"].isoformat( + ) if share.get("expires_at") else None return { + "version": VERSION, "storage_adapters": list(adapters), "mounts": list(mounts), "user_accounts": list(users), @@ -54,7 +58,7 @@ class BackupService: [Configuration(**c) for c in data["configurations"]], using_db=conn ) - + if data.get("user_accounts"): await UserAccount.bulk_create( [UserAccount(**u) for u in data["user_accounts"]], @@ -66,13 +70,13 @@ class BackupService: [StorageAdapter(**a) for a in data["storage_adapters"]], using_db=conn ) - + if data.get("mounts"): await Mount.bulk_create( [Mount(**m) for m in data["mounts"]], using_db=conn ) - + if data.get("automation_tasks"): await AutomationTask.bulk_create( [AutomationTask(**t) for t in data["automation_tasks"]], @@ -83,4 +87,4 @@ class BackupService: await ShareLink.bulk_create( [ShareLink(**s) for s in data["share_links"]], using_db=conn - ) \ No newline at end of file + ) diff --git a/services/config.py b/services/config.py index 18987a9..88ecca8 100644 --- a/services/config.py +++ b/services/config.py @@ -4,7 +4,7 @@ from typing import Any, Optional, Dict from dotenv import load_dotenv from models.database import Configuration load_dotenv(dotenv_path=".env") - +VERSION = "v1.0.0" class ConfigCenter: _cache: Dict[str, Any] = {}