From 8c5b164cb8e3ba1687ee58a4a4fdc205bc89a94f Mon Sep 17 00:00:00 2001 From: jigsaw Date: Fri, 9 Aug 2024 21:22:45 +0800 Subject: [PATCH] :bug: middleware(obv11): file name --- nonebot_plugin_all4one/database/__init__.py | 38 +++++++++---------- .../middlewares/onebot_v11.py | 3 +- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/nonebot_plugin_all4one/database/__init__.py b/nonebot_plugin_all4one/database/__init__.py index 4783ea7..ecefa94 100644 --- a/nonebot_plugin_all4one/database/__init__.py +++ b/nonebot_plugin_all4one/database/__init__.py @@ -37,27 +37,27 @@ async def get_file(file_id: str, src: Optional[str] = None) -> File: file = ( await session.scalars(select(File).where(File.id == UUID(file_id))) ).one_or_none() - if file: - if src is None: - if file.sha256: - return file + if file is None: + raise DatabaseError("failed", 31001, "file not found", {}) + if src is None: + if file.sha256: + return file + else: + if file.src == src: + return file else: - if file.src == src: - return file + if file.sha256 is None: + raise DatabaseError("failed", 31001, "file not found", {}) + if file_ := ( + await session.scalars( + select(File).where(File.sha256 == file.sha256, File.src == src) + ) + ).first(): + return file_ else: - if file.sha256: - if file_ := ( - await session.scalars( - select(File).where( - File.sha256 == file.sha256, File.src == src - ) - ) - ).first(): - return file_ - else: - file.src = src - file.src_id = None - return file + file.src = src + file.src_id = None + return file raise DatabaseError("failed", 31001, "file not found", {}) diff --git a/nonebot_plugin_all4one/middlewares/onebot_v11.py b/nonebot_plugin_all4one/middlewares/onebot_v11.py index c561a34..c971dc6 100644 --- a/nonebot_plugin_all4one/middlewares/onebot_v11.py +++ b/nonebot_plugin_all4one/middlewares/onebot_v11.py @@ -1,4 +1,5 @@ import uuid +from pathlib import Path from datetime import datetime from typing import Any, Union, Literal, Optional @@ -155,7 +156,7 @@ async def to_onebot_message(self, message: Message) -> OneBotMessage: data = None file_id = await upload_file( - "", + Path(file).name, self.get_name(), file, data=data,