🐛 修复获取群组时会修改群组插件关闭状态

This commit is contained in:
HibiKier 2025-03-08 23:20:45 +08:00
parent f1d32bff89
commit 4dc7d78ee5
2 changed files with 28 additions and 26 deletions

View File

@ -1,3 +1,5 @@
import os
from zhenxun.configs.path_config import DATA_PATH, IMAGE_PATH from zhenxun.configs.path_config import DATA_PATH, IMAGE_PATH
from zhenxun.models.group_console import GroupConsole from zhenxun.models.group_console import GroupConsole
from zhenxun.models.plugin_info import PluginInfo from zhenxun.models.plugin_info import PluginInfo
@ -14,9 +16,9 @@ GROUP_HELP_PATH = DATA_PATH / "group_help"
def delete_help_image(gid: str | None = None): def delete_help_image(gid: str | None = None):
"""删除帮助图片""" """删除帮助图片"""
if gid: if gid:
file = GROUP_HELP_PATH / f"{gid}.png" for file in os.listdir(GROUP_HELP_PATH):
if file.exists(): if file.startswith(f"{gid}"):
file.unlink() os.remove(GROUP_HELP_PATH / file)
else: else:
if HELP_FILE.exists(): if HELP_FILE.exists():
HELP_FILE.unlink() HELP_FILE.unlink()
@ -196,7 +198,7 @@ class PluginManage:
await PluginInfo.filter(plugin_type=PluginType.NORMAL).update( await PluginInfo.filter(plugin_type=PluginType.NORMAL).update(
default_status=status default_status=status
) )
return f'成功将所有功能进群默认状态修改为: {"开启" if status else "关闭"}' return f"成功将所有功能进群默认状态修改为: {'开启' if status else '关闭'}"
if group_id: if group_id:
if group := await GroupConsole.get_or_none( if group := await GroupConsole.get_or_none(
group_id=group_id, channel_id__isnull=True group_id=group_id, channel_id__isnull=True
@ -213,12 +215,12 @@ class PluginManage:
module_list = [f"<{module}" for module in module_list] module_list = [f"<{module}" for module in module_list]
group.block_plugin = ",".join(module_list) + "," # type: ignore group.block_plugin = ",".join(module_list) + "," # type: ignore
await group.save(update_fields=["block_plugin"]) await group.save(update_fields=["block_plugin"])
return f'成功将此群组所有功能状态修改为: {"开启" if status else "关闭"}' return f"成功将此群组所有功能状态修改为: {'开启' if status else '关闭'}"
return "获取群组失败..." return "获取群组失败..."
await PluginInfo.filter(plugin_type=PluginType.NORMAL).update( await PluginInfo.filter(plugin_type=PluginType.NORMAL).update(
status=status, block_type=None if status else BlockType.ALL status=status, block_type=None if status else BlockType.ALL
) )
return f'成功将所有功能全局状态修改为: {"开启" if status else "关闭"}' return f"成功将所有功能全局状态修改为: {'开启' if status else '关闭'}"
@classmethod @classmethod
async def is_wake(cls, group_id: str) -> bool: async def is_wake(cls, group_id: str) -> bool:

View File

@ -110,17 +110,17 @@ class GroupConsole(Model):
group, is_create = await super().get_or_create( group, is_create = await super().get_or_create(
defaults=defaults, using_db=using_db, **kwargs defaults=defaults, using_db=using_db, **kwargs
) )
if is_create and ( if is_create:
modules := await TaskInfo.filter(default_status=False).values_list( if modules := await TaskInfo.filter(default_status=False).values_list(
"module", flat=True "module", flat=True
) ):
): group.block_task = cls.convert_module_format(modules) # type: ignore
group.block_task = cls.convert_module_format(modules) # type: ignore if modules := await PluginInfo.filter(
if modules := await PluginInfo.filter( plugin_type__in=[PluginType.NORMAL, PluginType.DEPENDANT],
plugin_type__in=[PluginType.NORMAL, PluginType.DEPENDANT], default_status=False,
default_status=False, load_status=True,
).values_list("module", flat=True): ).values_list("module", flat=True):
group.block_plugin = cls.convert_module_format(modules) # type: ignore group.block_plugin = cls.convert_module_format(modules) # type: ignore
await group.save( await group.save(
using_db=using_db, update_fields=["block_plugin", "block_task"] using_db=using_db, update_fields=["block_plugin", "block_task"]
) )
@ -137,17 +137,17 @@ class GroupConsole(Model):
group, is_create = await super().update_or_create( group, is_create = await super().update_or_create(
defaults=defaults, using_db=using_db, **kwargs defaults=defaults, using_db=using_db, **kwargs
) )
if is_create and ( if is_create:
modules := await TaskInfo.filter(default_status=False).values_list( if modules := await TaskInfo.filter(default_status=False).values_list(
"module", flat=True "module", flat=True
) ):
): group.block_task = cls.convert_module_format(modules) # type: ignore
group.block_task = cls.convert_module_format(modules) # type: ignore if modules := await PluginInfo.filter(
if modules := await PluginInfo.filter( plugin_type__in=[PluginType.NORMAL, PluginType.DEPENDANT],
plugin_type__in=[PluginType.NORMAL, PluginType.DEPENDANT], default_status=False,
default_status=False, load_status=True,
).values_list("module", flat=True): ).values_list("module", flat=True):
group.block_plugin = cls.convert_module_format(modules) # type: ignore group.block_plugin = cls.convert_module_format(modules) # type: ignore
await group.save( await group.save(
using_db=using_db, update_fields=["block_plugin", "block_task"] using_db=using_db, update_fields=["block_plugin", "block_task"]
) )