From 98d3ab646f6034298ec009781d7c97076651053b Mon Sep 17 00:00:00 2001 From: Raven95676 Date: Fri, 4 Jul 2025 14:55:53 +0800 Subject: [PATCH] chore: convert some methods to static --- astrbot/core/star/__init__.py | 6 ++++-- astrbot/core/star/star_manager.py | 15 ++++++++++----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/astrbot/core/star/__init__.py b/astrbot/core/star/__init__.py index f871c67c..d9f980e8 100644 --- a/astrbot/core/star/__init__.py +++ b/astrbot/core/star/__init__.py @@ -14,12 +14,14 @@ class Star(CommandParserMixin): StarTools.initialize(context) self.context = context - async def text_to_image(self, text: str, return_url=True) -> str: + @staticmethod + async def text_to_image(text: str, return_url=True) -> str: """将文本转换为图片""" return await html_renderer.render_t2i(text, return_url=return_url) + @staticmethod async def html_render( - self, tmpl: str, data: dict, return_url=True, options: dict = None + tmpl: str, data: dict, return_url=True, options: dict = None ) -> str: """渲染 HTML""" return await html_renderer.render_custom_template( diff --git a/astrbot/core/star/star_manager.py b/astrbot/core/star/star_manager.py index 3dd4cd1c..2b0ed791 100644 --- a/astrbot/core/star/star_manager.py +++ b/astrbot/core/star/star_manager.py @@ -119,7 +119,8 @@ class PluginManager: reloaded_plugins.add(plugin_name) break - def _get_classes(self, arg: ModuleType): + @staticmethod + def _get_classes(arg: ModuleType): """获取指定模块(可以理解为一个 python 文件)下所有的类""" classes = [] clsmembers = inspect.getmembers(arg, inspect.isclass) @@ -129,7 +130,8 @@ class PluginManager: break return classes - def _get_modules(self, path): + @staticmethod + def _get_modules(path): modules = [] dirs = os.listdir(path) @@ -189,7 +191,8 @@ class PluginManager: except Exception as e: logger.error(f"更新插件 {p} 的依赖失败。Code: {str(e)}") - def _load_plugin_metadata(self, plugin_path: str, plugin_obj=None) -> StarMetadata: + @staticmethod + def _load_plugin_metadata(plugin_path: str, plugin_obj=None) -> StarMetadata: """v3.4.0 以前的方式载入插件元数据 先寻找 metadata.yaml 文件,如果不存在,则使用插件对象的 info() 函数获取元数据。 @@ -228,8 +231,9 @@ class PluginManager: return metadata + @staticmethod def _get_plugin_related_modules( - self, plugin_root_dir: str, is_reserved: bool = False + plugin_root_dir: str, is_reserved: bool = False ) -> list[str]: """获取与指定插件相关的所有已加载模块名 @@ -775,7 +779,8 @@ class PluginManager: plugin.activated = False - async def _terminate_plugin(self, star_metadata: StarMetadata): + @staticmethod + async def _terminate_plugin(star_metadata: StarMetadata): """终止插件,调用插件的 terminate() 和 __del__() 方法""" logger.info(f"正在终止插件 {star_metadata.name} ...")