🐛 过滤父插件

This commit is contained in:
HibiKier 2024-09-07 13:54:25 +08:00
parent 807b2f6504
commit 62fd93c1ff
2 changed files with 17 additions and 6 deletions

View File

@ -170,7 +170,9 @@ class PluginManage:
if plugin_name.isdigit():
plugin = await PluginInfo.get_or_none(id=int(plugin_name))
else:
plugin = await PluginInfo.get_or_none(name=plugin_name, load_status=True)
plugin = await PluginInfo.get_or_none(
name=plugin_name, load_status=True, plugin_type__not=PluginType.PARENT
)
if plugin:
plugin.default_status = status
await plugin.save(update_fields=["default_status"])
@ -461,7 +463,9 @@ class PluginManage:
if plugin_name.isdigit():
plugin = await PluginInfo.get_or_none(id=int(plugin_name))
else:
plugin = await PluginInfo.get_or_none(name=plugin_name, load_status=True)
plugin = await PluginInfo.get_or_none(
name=plugin_name, load_status=True, plugin_type__not=PluginType.PARENT
)
if plugin:
group, _ = await GroupConsole.get_or_create(
group_id=group_id, channel_id__isnull=True
@ -527,7 +531,9 @@ class PluginManage:
if plugin_name.isdigit():
plugin = await PluginInfo.get_or_none(id=int(plugin_name))
else:
plugin = await PluginInfo.get_or_none(name=plugin_name, load_status=True)
plugin = await PluginInfo.get_or_none(
name=plugin_name, load_status=True, plugin_type__not=PluginType.PARENT
)
if plugin:
if group_id:
if group := await GroupConsole.get_or_none(
@ -571,7 +577,9 @@ class PluginManage:
if plugin_name.isdigit():
plugin = await PluginInfo.get_or_none(id=int(plugin_name))
else:
plugin = await PluginInfo.get_or_none(name=plugin_name, load_status=True)
plugin = await PluginInfo.get_or_none(
name=plugin_name, load_status=True, plugin_type__not=PluginType.PARENT
)
if plugin:
if group_id:
if group := await GroupConsole.get_or_none(

View File

@ -1,5 +1,6 @@
import nonebot
from zhenxun.utils.enum import PluginType
from zhenxun.models.plugin_info import PluginInfo
from zhenxun.configs.path_config import IMAGE_PATH
from zhenxun.utils.image_utils import BuildImage, ImageTemplate
@ -29,9 +30,11 @@ async def get_plugin_help(name: str, is_superuser: bool) -> str | BuildImage:
is_superuser: 是否为超级用户
"""
if name.isdigit():
plugin = await PluginInfo.get_or_none(id=int(name), load_status=True)
plugin = await PluginInfo.get_or_none(id=int(name))
else:
plugin = await PluginInfo.get_or_none(name__iexact=name, load_status=True)
plugin = await PluginInfo.get_or_none(
name__iexact=name, load_status=True, plugin_type__not=PluginType.PARENT
)
if plugin:
_plugin = nonebot.get_plugin_by_module_name(plugin.module_path)
if _plugin and _plugin.metadata: