diff --git a/astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py b/astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py index 5c4a992df..bd077a078 100644 --- a/astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py +++ b/astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py @@ -31,11 +31,13 @@ class QQOfficialMessageEvent(AstrMessageEvent): if image_base64: media = await self.upload_group_and_c2c_image(image_base64, 1, group_openid=source.group_openid) payload['media'] = media + payload['msg_type'] = 7 await self.bot.api.post_group_message(group_openid=source.group_openid, **payload) case botpy.message.C2CMessage: if image_base64: media = await self.upload_group_and_c2c_image(image_base64, 1, openid=source.author.user_openid) payload['media'] = media + payload['msg_type'] = 7 await self.bot.api.post_c2c_message(openid=source.author.user_openid, **payload) case botpy.message.Message: if image_path: @@ -73,9 +75,9 @@ class QQOfficialMessageEvent(AstrMessageEvent): plain_text += i.text elif isinstance(i, Image) and not image_base64: if i.file and i.file.startswith("file:///"): - image_base64 = file_to_base64(i.file[8:]) + image_base64 = file_to_base64(i.file[8:]).replace("base64://", "") image_file_path = i.file[8:] elif i.file and i.file.startswith("http"): image_file_path = await download_image_by_url(i.file) - image_base64 = file_to_base64(image_file_path) + image_base64 = file_to_base64(image_file_path).replace("base64://", "") return plain_text, image_base64, image_file_path \ No newline at end of file diff --git a/astrbot/core/star/star_manager.py b/astrbot/core/star/star_manager.py index 23ba7c412..b62854c7d 100644 --- a/astrbot/core/star/star_manager.py +++ b/astrbot/core/star/star_manager.py @@ -188,9 +188,6 @@ class PluginManager: # 通过装饰器的方式注册插件 metadata = star_map[path] metadata.star_cls = metadata.star_cls_type(context=self.context) - # 执行 initialize 函数 - if hasattr(metadata.star_cls, "initialize"): - await metadata.star_cls.initialize() metadata.module = module metadata.root_dir_name = root_dir_name metadata.reserved = reserved @@ -234,6 +231,10 @@ class PluginManager: if metadata.module_path in inactivated_plugins: metadata.activated = False + # 执行 initialize 函数 + if hasattr(metadata.star_cls, "initialize"): + await metadata.star_cls.initialize() + except BaseException as e: traceback.print_exc() fail_rec += f"加载 {path} 插件时出现问题,原因 {str(e)}\n"