feat: Update version handling in config and backup services

This commit is contained in:
shiyu
2025-08-27 19:05:58 +08:00
parent fd02a4bbe5
commit 627b13426d
3 changed files with 15 additions and 11 deletions

View File

@@ -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,

View File

@@ -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
)
)

View File

@@ -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] = {}