From 6770ba3a35ae67a35222aa5e9c82be8dc822f342 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Fri, 8 Sep 2023 22:48:53 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E6=96=87=E4=BB=B6=E7=AE=A1=E7=90=86API?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/filebrowser.py | 11 +++++++++-- app/schemas/file.py | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/api/endpoints/filebrowser.py b/app/api/endpoints/filebrowser.py index 6d4f3a8d..801e2784 100644 --- a/app/api/endpoints/filebrowser.py +++ b/app/api/endpoints/filebrowser.py @@ -17,7 +17,7 @@ IMAGE_TYPES = [".jpg", ".png", ".gif", ".bmp", ".jpeg", ".webp"] @router.get("/list", summary="所有插件", response_model=List[schemas.FileItem]) -def list_path(path: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any: +def list_path(path: str, orderby: str = 'time', _: schemas.TokenPayload = Depends(verify_token)) -> Any: """ 查询当前目录下所有目录和文件 """ @@ -55,6 +55,7 @@ def list_path(path: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any basename=path_obj.stem, extension=path_obj.suffix[1:], size=path_obj.stat().st_size, + modify_time=path_obj.stat().st_mtime, )) return ret_items @@ -65,6 +66,7 @@ def list_path(path: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any path=str(item).replace("\\", "/") + "/", name=item.name, basename=item.stem, + modify_time=item.stat().st_mtime, )) # 遍历所有文件,不含子目录 @@ -80,8 +82,13 @@ def list_path(path: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any basename=item.stem, extension=item.suffix[1:], size=item.stat().st_size, + modify_time=item.stat().st_mtime, )) - + # 排序 + if orderby == 'time': + ret_items.sort(key=lambda x: x.modify_time, reverse=True) + else: + ret_items.sort(key=lambda x: x.name, reverse=False) return ret_items diff --git a/app/schemas/file.py b/app/schemas/file.py index d34ee7bd..ff4a5e65 100644 --- a/app/schemas/file.py +++ b/app/schemas/file.py @@ -16,3 +16,5 @@ class FileItem(BaseModel): extension: Optional[str] = None # 文件大小 size: Optional[int] = None + # 修改时间 + modify_time: Optional[float] = None