模块管理优化
This commit is contained in:
@@ -139,10 +139,10 @@ class PluginManager:
|
||||
plugin_class = None
|
||||
for name, obj in inspect.getmembers(module):
|
||||
if (inspect.isclass(obj) and
|
||||
issubclass(obj, PluginInterface) and
|
||||
obj != PluginInterface and
|
||||
obj != MessagePluginInterface and
|
||||
obj != ScheduledPluginInterface):
|
||||
issubclass(obj, PluginInterface) and
|
||||
obj != PluginInterface and
|
||||
obj != MessagePluginInterface and
|
||||
obj != ScheduledPluginInterface):
|
||||
plugin_class = obj
|
||||
break
|
||||
|
||||
@@ -407,31 +407,31 @@ class PluginManager:
|
||||
return success
|
||||
|
||||
def find_plugin_by_name(self, plugin_name: str) -> Tuple[Optional[str], Optional[PluginInterface]]:
|
||||
"""
|
||||
根据插件名称或模块名查找插件
|
||||
"""
|
||||
根据插件名称或模块名查找插件
|
||||
|
||||
Args:
|
||||
plugin_name: 插件名称或模块名
|
||||
Args:
|
||||
plugin_name: 插件名称或模块名
|
||||
|
||||
Returns:
|
||||
(插件显示名称, 插件实例) 元组,未找到返回 (None, None)
|
||||
"""
|
||||
# 直接通过显示名称查找
|
||||
if plugin_name in self.plugins:
|
||||
return plugin_name, self.plugins[plugin_name]
|
||||
Returns:
|
||||
(插件显示名称, 插件实例) 元组,未找到返回 (None, None)
|
||||
"""
|
||||
# 直接通过显示名称查找
|
||||
if plugin_name in self.plugins:
|
||||
return plugin_name, self.plugins[plugin_name]
|
||||
|
||||
# 通过模块名查找
|
||||
if plugin_name in self.module_to_plugin:
|
||||
display_name = self.module_to_plugin[plugin_name]
|
||||
return display_name, self.plugins.get(display_name)
|
||||
# 通过模块名查找
|
||||
if plugin_name in self.module_to_plugin:
|
||||
display_name = self.module_to_plugin[plugin_name]
|
||||
return display_name, self.plugins.get(display_name)
|
||||
|
||||
# 遍历所有插件查找匹配的模块名
|
||||
for name, plugin in self.plugins.items():
|
||||
try:
|
||||
module_name = plugin.__class__.__module__.split('.')[-2]
|
||||
if module_name == plugin_name:
|
||||
return name, plugin
|
||||
except (IndexError, AttributeError):
|
||||
continue
|
||||
# 遍历所有插件查找匹配的模块名
|
||||
for name, plugin in self.plugins.items():
|
||||
try:
|
||||
module_name = plugin.__class__.__module__.split('.')[-2]
|
||||
if module_name == plugin_name:
|
||||
return name, plugin
|
||||
except (IndexError, AttributeError):
|
||||
continue
|
||||
|
||||
return None, None
|
||||
return None, None
|
||||
|
||||
Reference in New Issue
Block a user