1717from apps .base .models import FileCodes , KeyValue
1818from apps .admin .dependencies import create_token
1919from core .settings import settings
20+ from core .utils import get_now , verify_password
2021
2122admin_api = APIRouter (prefix = "/admin" , tags = ["管理" ])
2223
2324
2425@admin_api .post ("/login" )
2526async def login (data : LoginData ):
26- # 验证管理员密码
27- if data .password != settings .admin_token :
27+ if not verify_password (data .password , settings .admin_token ):
2828 raise HTTPException (status_code = 401 , detail = "密码错误" )
2929
30- # 生成包含管理员身份的token
3130 token = create_token ({"is_admin" : True })
3231 return APIResponse (detail = {"token" : token , "token_type" : "Bearer" })
3332
@@ -37,16 +36,13 @@ async def dashboard(admin: bool = Depends(admin_required)):
3736 all_codes = await FileCodes .all ()
3837 all_size = str (sum ([code .size for code in all_codes ]))
3938 sys_start = await KeyValue .filter (key = "sys_start" ).first ()
40- # 获取当前日期时间
41- now = datetime .datetime .now ()
39+ now = await get_now ()
4240 today_start = now .replace (hour = 0 , minute = 0 , second = 0 , microsecond = 0 )
4341 yesterday_start = today_start - datetime .timedelta (days = 1 )
4442 yesterday_end = today_start - datetime .timedelta (microseconds = 1 )
45- # 统计昨天一整天的记录数(从昨天0点到23:59:59)
4643 yesterday_codes = FileCodes .filter (
4744 created_at__gte = yesterday_start , created_at__lte = yesterday_end
4845 )
49- # 统计今天到现在的记录数(从今天0点到现在)
5046 today_codes = FileCodes .filter (created_at__gte = today_start )
5147 return APIResponse (
5248 detail = {
@@ -63,21 +59,21 @@ async def dashboard(admin: bool = Depends(admin_required)):
6359
6460@admin_api .delete ("/file/delete" )
6561async def file_delete (
66- data : IDData ,
67- file_service : FileService = Depends (get_file_service ),
68- admin : bool = Depends (admin_required ),
62+ data : IDData ,
63+ file_service : FileService = Depends (get_file_service ),
64+ admin : bool = Depends (admin_required ),
6965):
7066 await file_service .delete_file (data .id )
7167 return APIResponse ()
7268
7369
7470@admin_api .get ("/file/list" )
7571async def file_list (
76- page : int = 1 ,
77- size : int = 10 ,
78- keyword : str = "" ,
79- file_service : FileService = Depends (get_file_service ),
80- admin : bool = Depends (admin_required ),
72+ page : int = 1 ,
73+ size : int = 10 ,
74+ keyword : str = "" ,
75+ file_service : FileService = Depends (get_file_service ),
76+ admin : bool = Depends (admin_required ),
8177):
8278 files , total = await file_service .list_files (page , size , keyword )
8379 return APIResponse (
@@ -92,17 +88,17 @@ async def file_list(
9288
9389@admin_api .get ("/config/get" )
9490async def get_config (
95- config_service : ConfigService = Depends (get_config_service ),
96- admin : bool = Depends (admin_required ),
91+ config_service : ConfigService = Depends (get_config_service ),
92+ admin : bool = Depends (admin_required ),
9793):
9894 return APIResponse (detail = config_service .get_config ())
9995
10096
10197@admin_api .patch ("/config/update" )
10298async def update_config (
103- data : dict ,
104- config_service : ConfigService = Depends (get_config_service ),
105- admin : bool = Depends (admin_required ),
99+ data : dict ,
100+ config_service : ConfigService = Depends (get_config_service ),
101+ admin : bool = Depends (admin_required ),
106102):
107103 data .pop ("themesChoices" )
108104 await config_service .update_config (data )
@@ -111,47 +107,47 @@ async def update_config(
111107
112108@admin_api .get ("/file/download" )
113109async def file_download (
114- id : int ,
115- file_service : FileService = Depends (get_file_service ),
116- admin : bool = Depends (admin_required ),
110+ id : int ,
111+ file_service : FileService = Depends (get_file_service ),
112+ admin : bool = Depends (admin_required ),
117113):
118114 file_content = await file_service .download_file (id )
119115 return file_content
120116
121117
122118@admin_api .get ("/local/lists" )
123119async def get_local_lists (
124- local_file_service : LocalFileService = Depends (get_local_file_service ),
125- admin : bool = Depends (admin_required ),
120+ local_file_service : LocalFileService = Depends (get_local_file_service ),
121+ admin : bool = Depends (admin_required ),
126122):
127123 files = await local_file_service .list_files ()
128124 return APIResponse (detail = files )
129125
130126
131127@admin_api .delete ("/local/delete" )
132128async def delete_local_file (
133- item : DeleteItem ,
134- local_file_service : LocalFileService = Depends (get_local_file_service ),
135- admin : bool = Depends (admin_required ),
129+ item : DeleteItem ,
130+ local_file_service : LocalFileService = Depends (get_local_file_service ),
131+ admin : bool = Depends (admin_required ),
136132):
137133 result = await local_file_service .delete_file (item .filename )
138134 return APIResponse (detail = result )
139135
140136
141137@admin_api .post ("/local/share" )
142138async def share_local_file (
143- item : ShareItem ,
144- file_service : FileService = Depends (get_file_service ),
145- admin : bool = Depends (admin_required ),
139+ item : ShareItem ,
140+ file_service : FileService = Depends (get_file_service ),
141+ admin : bool = Depends (admin_required ),
146142):
147143 share_info = await file_service .share_local_file (item )
148144 return APIResponse (detail = share_info )
149145
150146
151147@admin_api .patch ("/file/update" )
152148async def update_file (
153- data : UpdateFileData ,
154- admin : bool = Depends (admin_required ),
149+ data : UpdateFileData ,
150+ admin : bool = Depends (admin_required ),
155151):
156152 file_code = await FileCodes .filter (id = data .id ).first ()
157153 if not file_code :
@@ -167,7 +163,11 @@ async def update_file(
167163 update_data ["prefix" ] = data .prefix
168164 if data .suffix is not None and data .suffix != file_code .suffix :
169165 update_data ["suffix" ] = data .suffix
170- if data .expired_at is not None and data .expired_at != "" and data .expired_at != file_code .expired_at :
166+ if (
167+ data .expired_at is not None
168+ and data .expired_at != ""
169+ and data .expired_at != file_code .expired_at
170+ ):
171171 update_data ["expired_at" ] = data .expired_at
172172 if data .expired_count is not None and data .expired_count != file_code .expired_count :
173173 update_data ["expired_count" ] = data .expired_count
0 commit comments