From 4d3d841ddac30a060c333cb248d629437234d635 Mon Sep 17 00:00:00 2001 From: ninemine <1371605831@qq.com> Date: Sat, 8 Nov 2025 15:34:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E6=94=BE=E4=BA=86=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CoreModules/plugin_interface.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/CoreModules/plugin_interface.py b/CoreModules/plugin_interface.py index f1d831f..95db270 100644 --- a/CoreModules/plugin_interface.py +++ b/CoreModules/plugin_interface.py @@ -22,7 +22,7 @@ class DatabaseModel(BaseModel): class PluginInterface(ABC): plugin_instances: Dict[str, "PluginInterface"] = {} - async def callback(self, message: str, chat_id: int, user_id: int) -> str|None: + async def callback(self, message: str|None|Literal[""], chat_id: int, user_id: int) -> str|None: ''' 继承后重写该方法接受消息并返回消息 返回空字符串代表不进行反馈 @@ -50,22 +50,22 @@ class PluginInterface(ABC): 继承后是否返回路由决定是否启动该插件 若返回None, 则不启动该插件 ''' - Architecture.Register(self.__class__, self, self.wake_up, *self.dependencies()) + + def setup() -> None: + # 在数据库保证必要的表和列存在 + db_model = self.register_db_model() + if db_model is None: + pass + elif isinstance(db_model, DatabaseModel): + self.register_table(db_model) + else: + for model in db_model: + self.register_table(model) + self.wake_up() + + Architecture.Register(self.__class__, self, setup, *self.dependencies()) router = APIRouter() router.post(path)(self.generate_router_callback()) - # 在数据库保证必要的表和列存在 - db = get_db() - db_model = self.register_db_model() - - - if db_model is None: - return router - elif isinstance(db_model, DatabaseModel): - self.register_table(db_model) - else: - for model in db_model: - self.register_table(model) - return router def generate_router_callback(self) -> Callable|Coroutine: