From 974fe7c965b01e71a9b3057a26014407965816ff Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 19 Oct 2024 07:33:44 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20user.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/user.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/api/endpoints/user.py b/app/api/endpoints/user.py index d1d6d6f0..53b9cf79 100644 --- a/app/api/endpoints/user.py +++ b/app/api/endpoints/user.py @@ -174,7 +174,7 @@ def set_config(key: str, value: Union[list, dict, bool, int, str] = None, @router.delete("/id/{user_id}", summary="删除用户", response_model=schemas.Response) -def delete_user_from_user_id( +def delete_user_by_id( *, db: Session = Depends(get_db), user_id: int, @@ -191,7 +191,7 @@ def delete_user_from_user_id( @router.delete("/name/{user_name}", summary="删除用户", response_model=schemas.Response) -def delete_user_from_user_id( +def delete_user_by_name( *, db: Session = Depends(get_db), user_name: str, @@ -208,7 +208,7 @@ def delete_user_from_user_id( @router.get("/{username}", summary="用户详情", response_model=schemas.User) -def read_user_by_id( +def read_user_by_name( username: str, current_user: User = Depends(get_current_active_user), db: Session = Depends(get_db), From 6f299b3255204313d959b23ef143528fcfeee869 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 19 Oct 2024 08:13:47 +0800 Subject: [PATCH 2/4] fix bug --- app/modules/filemanager/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/modules/filemanager/__init__.py b/app/modules/filemanager/__init__.py index 7cca140b..682b5230 100644 --- a/app/modules/filemanager/__init__.py +++ b/app/modules/filemanager/__init__.py @@ -1106,7 +1106,9 @@ class FileManagerModule(_ModuleBase): continue media_files = self.list_files(fileitem, True) if media_files: - ret_fileitems.extend(media_files) + for media_file in media_files: + if f".{media_file.extension.lower()}" in settings.RMT_MEDIAEXT: + ret_fileitems.append(media_file) return ret_fileitems def media_exists(self, mediainfo: MediaInfo, **kwargs) -> Optional[ExistMediaInfo]: From 5d1ccef5a29624b91c0f28ec3661ab1c51abc183 Mon Sep 17 00:00:00 2001 From: Aqr-K <95741669+Aqr-K@users.noreply.github.com> Date: Sat, 19 Oct 2024 11:36:03 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix(login):=20=E5=A2=9E=E5=8A=A0=E8=BF=94?= =?UTF-8?q?=E5=9B=9Euser=5Fid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/login.py | 1 + app/schemas/token.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/app/api/endpoints/login.py b/app/api/endpoints/login.py index 8df058a4..d3fc4309 100644 --- a/app/api/endpoints/login.py +++ b/app/api/endpoints/login.py @@ -75,6 +75,7 @@ async def login_access_token( ), token_type="bearer", super_user=user.is_superuser, + user_id=user.id, user_name=user.name, avatar=user.avatar, level=level diff --git a/app/schemas/token.py b/app/schemas/token.py index 507a5170..c827766e 100644 --- a/app/schemas/token.py +++ b/app/schemas/token.py @@ -10,6 +10,8 @@ class Token(BaseModel): token_type: str # 超级用户 super_user: bool + # 用户ID + user_id: int # 用户名 user_name: str # 头像 From 1c2a194a7dfbd279aadd6fe523e3b217e4fc3963 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 19 Oct 2024 12:29:45 +0800 Subject: [PATCH 4/4] fix rclone && alipan --- app/api/endpoints/storage.py | 6 +++--- app/modules/filemanager/storages/alipan.py | 16 ++++++++++++++-- app/modules/filemanager/storages/rclone.py | 2 +- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/api/endpoints/storage.py b/app/api/endpoints/storage.py index 7396f772..07a19c16 100644 --- a/app/api/endpoints/storage.py +++ b/app/api/endpoints/storage.py @@ -56,9 +56,9 @@ def save(name: str, @router.post("/list", summary="所有目录和文件", response_model=List[schemas.FileItem]) -def list(fileitem: schemas.FileItem, - sort: str = 'updated_at', - _: User = Depends(get_current_active_superuser)) -> Any: +def list_files(fileitem: schemas.FileItem, + sort: str = 'updated_at', + _: User = Depends(get_current_active_superuser)) -> Any: """ 查询当前目录下所有目录和文件 :param fileitem: 文件项 diff --git a/app/modules/filemanager/storages/alipan.py b/app/modules/filemanager/storages/alipan.py index 62d2ee5f..236610f2 100644 --- a/app/modules/filemanager/storages/alipan.py +++ b/app/modules/filemanager/storages/alipan.py @@ -159,6 +159,7 @@ class AliPan(StorageBase): "updateTime": time.time(), }) self.__update_params(data) + self.__update_drives() self.__init_aligo() except Exception as e: return {}, f"bizExt 解码失败:{str(e)}" @@ -181,6 +182,17 @@ class AliPan(StorageBase): """ return self.aligo.get_user() + def __update_drives(self): + """ + 更新用户存储根目录 + """ + drivers = self.aligo.list_my_drives() + for driver in drivers: + if driver.category == "resource": + self.__update_params({"resourceDriveId": driver.drive_id}) + elif driver.category == "backup": + self.__update_params({"backDriveId": driver.drive_id}) + def __get_fileitem(self, fileinfo: BaseFile, parent: str = "/") -> schemas.FileItem: """ 获取文件信息 @@ -231,7 +243,7 @@ class AliPan(StorageBase): return [ schemas.FileItem( storage=self.schema.value, - fileid=fileitem.fileid, + fileid="root", drive_id=self.__auth_params.get("resourceDriveId"), parent_fileid="root", type="dir", @@ -241,7 +253,7 @@ class AliPan(StorageBase): ), schemas.FileItem( storage=self.schema.value, - fileid=fileitem.fileid, + fileid="root", drive_id=self.__auth_params.get("backDriveId"), parent_fileid="root", type="dir", diff --git a/app/modules/filemanager/storages/rclone.py b/app/modules/filemanager/storages/rclone.py index c9fc2fb2..f3fc9d4a 100644 --- a/app/modules/filemanager/storages/rclone.py +++ b/app/modules/filemanager/storages/rclone.py @@ -335,7 +335,7 @@ class Rclone(StorageBase): ret = subprocess.run( [ 'rclone', 'about', - 'MP:/', '--json' + '/', '--json' ], capture_output=True, startupinfo=self.__get_hidden_shell()