66import re
77
88from fastapi import FastAPI
9- from starlette .middleware .cors import CORSMiddleware
10- from starlette .responses import HTMLResponse , FileResponse
9+ from fastapi .middleware .cors import CORSMiddleware
10+ from fastapi .responses import HTMLResponse
1111from tortoise .contrib .fastapi import register_tortoise
1212
13+ from apps .base .models import KeyValue
1314from apps .base .views import share_api
1415from apps .admin .views import admin_api
1516from core .response import APIResponse
16- from core .settings import data_root , settings , BASE_DIR
17+ from core .settings import data_root , settings , BASE_DIR , DEFAULT_CONFIG
1718from core .tasks import delete_expire_files
18- from core .utils import max_save_times_desc
1919
2020app = FastAPI ()
2121
2727 allow_headers = ["*" ],
2828)
2929
30-
31- @app .get ('/assets/{file_path:path}' )
32- async def assets (file_path : str ):
33- if settings .max_save_seconds > 0 :
34- if re .match (r'SendView-[\d|a-f|A-F]+\.js' , file_path ):
35- with open (BASE_DIR / f'fcb-fronted/dist/assets/{ file_path } ' , 'r' , encoding = 'utf-8' ) as f :
36- # 删除永久保存选项
37- content = f .read ()
38- content = content .replace ('_(c,{label:e(r)("send.expireData.forever"),value:"forever"},null,8,["label"]),' , '' )
39- return HTMLResponse (content = content , media_type = 'text/javascript' )
40- if re .match (r'index-[\d|a-f|A-F]+\.js' , file_path ):
41- with open (BASE_DIR / f'fcb-fronted/dist/assets/{ file_path } ' , 'r' , encoding = 'utf-8' ) as f :
42- # 更改本文描述
43- desc_zh , desc_en = await max_save_times_desc (settings .max_save_seconds )
44- content = f .read ()
45- content = content .replace ('天数<7' , desc_zh )
46- content = content .replace ('Days <7' , desc_en )
47- return HTMLResponse (content = content , media_type = 'text/javascript' )
48- return FileResponse (f'fcb-fronted/dist/assets/{ file_path } ' )
49-
50-
5130register_tortoise (
5231 app ,
5332 generate_schemas = True ,
@@ -75,6 +54,8 @@ async def assets(file_path: str):
7554async def startup_event ():
7655 # 启动后台任务,不定时删除过期文件
7756 asyncio .create_task (delete_expire_files ())
57+ user_config , created = await KeyValue .get_or_create (key = 'settings' , defaults = {'value' : DEFAULT_CONFIG })
58+ settings .user_config = user_config .value
7859
7960
8061@app .get ('/' )
@@ -94,6 +75,7 @@ async def get_config():
9475 return APIResponse (detail = {
9576 'explain' : settings .page_explain ,
9677 'uploadSize' : settings .uploadSize ,
78+ 'expireStyle' : settings .expireStyle ,
9779 })
9880
9981
0 commit comments