diff --git a/app/api/servcookie.py b/app/api/servcookie.py index 13cb13c1..39cdb071 100644 --- a/app/api/servcookie.py +++ b/app/api/servcookie.py @@ -2,7 +2,7 @@ import gzip import json from typing import Annotated, Callable, Any, Dict, Optional -import aiofiles +from aiopath import AsyncPath from fastapi import APIRouter, Depends, HTTPException, Path, Request, Response from fastapi.responses import PlainTextResponse from fastapi.routing import APIRoute @@ -65,11 +65,11 @@ async def update_cookie(req: schemas.CookieData): """ 上传Cookie数据 """ - file_path = settings.COOKIE_PATH / f"{req.uuid}.json" + file_path = AsyncPath(settings.COOKIE_PATH) / f"{req.uuid}.json" content = json.dumps({"encrypted": req.encrypted}) - async with aiofiles.open(file_path, encoding="utf-8", mode="w") as file: + async with file_path.open(encoding="utf-8", mode="w") as file: await file.write(content) - async with aiofiles.open(file_path, encoding="utf-8", mode="r") as file: + async with file_path.open(encoding="utf-8", mode="r") as file: read_content = await file.read() if read_content == content: return {"action": "done"} @@ -81,14 +81,14 @@ async def load_encrypt_data(uuid: str) -> Dict[str, Any]: """ 加载本地加密原始数据 """ - file_path = settings.COOKIE_PATH / f"{uuid}.json" + file_path = AsyncPath(settings.COOKIE_PATH) / f"{uuid}.json" # 检查文件是否存在 if not file_path.exists(): raise HTTPException(status_code=404, detail="Item not found") # 读取文件 - async with aiofiles.open(file_path, encoding="utf-8", mode="r") as file: + async with file_path.open(encoding="utf-8", mode="r") as file: read_content = await file.read() data = json.loads(read_content.encode("utf-8")) return data diff --git a/app/factory.py b/app/factory.py index c2d20ec6..c4c43c1c 100644 --- a/app/factory.py +++ b/app/factory.py @@ -17,7 +17,7 @@ def create_app() -> FastAPI: # 配置 CORS 中间件 _app.add_middleware( - CORSMiddleware, + CORSMiddleware, # noqa allow_origins=settings.ALLOWED_HOSTS, allow_credentials=True, allow_methods=["*"], diff --git a/app/startup/modules_initializer.py b/app/startup/modules_initializer.py index 8f31a3bf..42e742a5 100644 --- a/app/startup/modules_initializer.py +++ b/app/startup/modules_initializer.py @@ -1,12 +1,5 @@ import sys -from app.command import CommandChain -from app.core.cache import close_cache -from app.core.config import settings -from app.core.module import ModuleManager -from app.log import logger -from app.utils.system import SystemUtils - # SitesHelper涉及资源包拉取,提前引入并容错提示 try: from app.helper.sites import SitesHelper # noqa @@ -16,16 +9,23 @@ except ImportError as e: print(error_message, file=sys.stderr) sys.exit(1) +from app.utils.system import SystemUtils +from app.log import logger +from app.core.config import settings +from app.core.cache import close_cache +from app.core.module import ModuleManager from app.core.event import EventManager from app.helper.thread import ThreadHelper from app.helper.display import DisplayHelper from app.helper.doh import DohHelper from app.helper.resource import ResourceHelper from app.helper.message import MessageHelper -from app.schemas import Notification, NotificationType -from app.schemas.types import SystemConfigKey +from app.helper.subscribe import SubscribeHelper from app.db import close_database from app.db.systemconfig_oper import SystemConfigOper +from app.command import CommandChain +from app.schemas import Notification, NotificationType +from app.schemas.types import SystemConfigKey def start_frontend(): @@ -145,6 +145,8 @@ def init_modules(): ModuleManager() # 启动事件消费 EventManager().start() + # 初始化订阅分享 + SubscribeHelper() # 启动前端服务 start_frontend() # 检查认证状态