mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
🐛 私聊时修改插件时删除私聊帮助
This commit is contained in:
parent
0a5ab83ffe
commit
807b2f6504
@ -1,16 +1,16 @@
|
|||||||
from nonebot.adapters import Bot
|
from nonebot.adapters import Bot
|
||||||
from nonebot.plugin import PluginMetadata
|
from nonebot.plugin import PluginMetadata
|
||||||
from nonebot_plugin_alconna import AlconnaQuery, Arparma, Match, Query
|
|
||||||
from nonebot_plugin_session import EventSession
|
from nonebot_plugin_session import EventSession
|
||||||
|
from nonebot_plugin_alconna import Match, Query, Arparma, AlconnaQuery
|
||||||
|
|
||||||
from zhenxun.configs.config import Config
|
|
||||||
from zhenxun.configs.utils import PluginExtraData, RegisterConfig
|
|
||||||
from zhenxun.services.log import logger
|
from zhenxun.services.log import logger
|
||||||
from zhenxun.utils.enum import BlockType, PluginType
|
from zhenxun.configs.config import Config
|
||||||
from zhenxun.utils.message import MessageUtils
|
from zhenxun.utils.message import MessageUtils
|
||||||
|
from zhenxun.utils.enum import BlockType, PluginType
|
||||||
|
from zhenxun.configs.utils import RegisterConfig, PluginExtraData
|
||||||
|
|
||||||
from ._data_source import PluginManage, build_plugin, build_task
|
from .command import _status_matcher, _group_status_matcher
|
||||||
from .command import _group_status_matcher, _status_matcher
|
from ._data_source import PluginManage, build_task, build_plugin, delete_help_image
|
||||||
|
|
||||||
base_config = Config.get("plugin_switch")
|
base_config = Config.get("plugin_switch")
|
||||||
|
|
||||||
@ -40,7 +40,6 @@ __plugin_meta__ = PluginMetadata(
|
|||||||
version="0.1",
|
version="0.1",
|
||||||
plugin_type=PluginType.SUPER_AND_ADMIN,
|
plugin_type=PluginType.SUPER_AND_ADMIN,
|
||||||
superuser_help="""
|
superuser_help="""
|
||||||
超级管理员额外命令
|
|
||||||
格式:
|
格式:
|
||||||
插件列表
|
插件列表
|
||||||
开启/关闭[功能名称] ?[-t ["private", "p", "group", "g"](关闭类型)] ?[-g 群组Id]
|
开启/关闭[功能名称] ?[-t ["private", "p", "group", "g"](关闭类型)] ?[-g 群组Id]
|
||||||
@ -117,8 +116,7 @@ async def _(
|
|||||||
if not all.result and not plugin_name.available:
|
if not all.result and not plugin_name.available:
|
||||||
await MessageUtils.build_message("请输入功能名称").finish(reply_to=True)
|
await MessageUtils.build_message("请输入功能名称").finish(reply_to=True)
|
||||||
name = plugin_name.result
|
name = plugin_name.result
|
||||||
gid = session.id3 or session.id2
|
if gid := session.id3 or session.id2:
|
||||||
if gid:
|
|
||||||
"""修改当前群组的数据"""
|
"""修改当前群组的数据"""
|
||||||
if task.result:
|
if task.result:
|
||||||
if all.result:
|
if all.result:
|
||||||
@ -129,8 +127,7 @@ async def _(
|
|||||||
logger.info(
|
logger.info(
|
||||||
f"开启群组被动 {name}", arparma.header_result, session=session
|
f"开启群组被动 {name}", arparma.header_result, session=session
|
||||||
)
|
)
|
||||||
else:
|
elif session.id1 in bot.config.superusers and default_status.result:
|
||||||
if session.id1 in bot.config.superusers and default_status.result:
|
|
||||||
"""单个插件的进群默认修改"""
|
"""单个插件的进群默认修改"""
|
||||||
result = await PluginManage.set_default_status(name, True)
|
result = await PluginManage.set_default_status(name, True)
|
||||||
logger.info(
|
logger.info(
|
||||||
@ -138,8 +135,7 @@ async def _(
|
|||||||
arparma.header_result,
|
arparma.header_result,
|
||||||
session=session,
|
session=session,
|
||||||
)
|
)
|
||||||
else:
|
elif all.result:
|
||||||
if all.result:
|
|
||||||
"""所有插件"""
|
"""所有插件"""
|
||||||
result = await PluginManage.set_all_plugin_status(
|
result = await PluginManage.set_all_plugin_status(
|
||||||
True, default_status.result, gid
|
True, default_status.result, gid
|
||||||
@ -151,9 +147,8 @@ async def _(
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
result = await PluginManage.unblock_group_plugin(name, gid)
|
result = await PluginManage.unblock_group_plugin(name, gid)
|
||||||
logger.info(
|
logger.info(f"开启功能 {name}", arparma.header_result, session=session)
|
||||||
f"开启功能 {name}", arparma.header_result, session=session
|
delete_help_image(gid)
|
||||||
)
|
|
||||||
await MessageUtils.build_message(result).finish(reply_to=True)
|
await MessageUtils.build_message(result).finish(reply_to=True)
|
||||||
elif session.id1 in bot.config.superusers:
|
elif session.id1 in bot.config.superusers:
|
||||||
"""私聊"""
|
"""私聊"""
|
||||||
@ -170,7 +165,8 @@ async def _(
|
|||||||
True, default_status.result, group_id
|
True, default_status.result, group_id
|
||||||
)
|
)
|
||||||
logger.info(
|
logger.info(
|
||||||
f"超级用户开启全部功能全局开关 {f'指定群组: {group_id}' if group_id else ''}",
|
"超级用户开启全部功能全局开关"
|
||||||
|
f" {f'指定群组: {group_id}' if group_id else ''}",
|
||||||
arparma.header_result,
|
arparma.header_result,
|
||||||
session=session,
|
session=session,
|
||||||
)
|
)
|
||||||
@ -204,7 +200,6 @@ async def _(
|
|||||||
arparma.header_result,
|
arparma.header_result,
|
||||||
session=session,
|
session=session,
|
||||||
)
|
)
|
||||||
await MessageUtils.build_message(result).finish(reply_to=True)
|
|
||||||
else:
|
else:
|
||||||
result = await PluginManage.superuser_unblock(name, None, group_id)
|
result = await PluginManage.superuser_unblock(name, None, group_id)
|
||||||
logger.info(
|
logger.info(
|
||||||
@ -213,6 +208,7 @@ async def _(
|
|||||||
session=session,
|
session=session,
|
||||||
target=group_id,
|
target=group_id,
|
||||||
)
|
)
|
||||||
|
delete_help_image()
|
||||||
await MessageUtils.build_message(result).finish(reply_to=True)
|
await MessageUtils.build_message(result).finish(reply_to=True)
|
||||||
|
|
||||||
|
|
||||||
@ -231,20 +227,18 @@ async def _(
|
|||||||
if not all.result and not plugin_name.available:
|
if not all.result and not plugin_name.available:
|
||||||
await MessageUtils.build_message("请输入功能名称").finish(reply_to=True)
|
await MessageUtils.build_message("请输入功能名称").finish(reply_to=True)
|
||||||
name = plugin_name.result
|
name = plugin_name.result
|
||||||
gid = session.id3 or session.id2
|
if gid := session.id3 or session.id2:
|
||||||
if gid:
|
|
||||||
"""修改当前群组的数据"""
|
"""修改当前群组的数据"""
|
||||||
if task.result:
|
if task.result:
|
||||||
if all.result:
|
if all.result:
|
||||||
result = await PluginManage.block_group_all_task(gid)
|
result = await PluginManage.block_group_all_task(gid)
|
||||||
logger.info(f"开启所有群组被动", arparma.header_result, session=session)
|
logger.info("开启所有群组被动", arparma.header_result, session=session)
|
||||||
else:
|
else:
|
||||||
result = await PluginManage.block_group_task(name, gid)
|
result = await PluginManage.block_group_task(name, gid)
|
||||||
logger.info(
|
logger.info(
|
||||||
f"关闭群组被动 {name}", arparma.header_result, session=session
|
f"关闭群组被动 {name}", arparma.header_result, session=session
|
||||||
)
|
)
|
||||||
else:
|
elif session.id1 in bot.config.superusers and default_status.result:
|
||||||
if session.id1 in bot.config.superusers and default_status.result:
|
|
||||||
"""单个插件的进群默认修改"""
|
"""单个插件的进群默认修改"""
|
||||||
result = await PluginManage.set_default_status(name, False)
|
result = await PluginManage.set_default_status(name, False)
|
||||||
logger.info(
|
logger.info(
|
||||||
@ -252,22 +246,16 @@ async def _(
|
|||||||
arparma.header_result,
|
arparma.header_result,
|
||||||
session=session,
|
session=session,
|
||||||
)
|
)
|
||||||
else:
|
elif all.result:
|
||||||
if all.result:
|
|
||||||
"""所有插件"""
|
"""所有插件"""
|
||||||
result = await PluginManage.set_all_plugin_status(
|
result = await PluginManage.set_all_plugin_status(
|
||||||
False, default_status.result, gid
|
False, default_status.result, gid
|
||||||
)
|
)
|
||||||
logger.info(
|
logger.info("关闭群组中全部功能", arparma.header_result, session=session)
|
||||||
f"关闭群组中全部功能",
|
|
||||||
arparma.header_result,
|
|
||||||
session=session,
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
result = await PluginManage.block_group_plugin(name, gid)
|
result = await PluginManage.block_group_plugin(name, gid)
|
||||||
logger.info(
|
logger.info(f"关闭功能 {name}", arparma.header_result, session=session)
|
||||||
f"关闭功能 {name}", arparma.header_result, session=session
|
delete_help_image(gid)
|
||||||
)
|
|
||||||
await MessageUtils.build_message(result).finish(reply_to=True)
|
await MessageUtils.build_message(result).finish(reply_to=True)
|
||||||
elif session.id1 in bot.config.superusers:
|
elif session.id1 in bot.config.superusers:
|
||||||
group_id = group.result if group.available else None
|
group_id = group.result if group.available else None
|
||||||
@ -283,7 +271,8 @@ async def _(
|
|||||||
False, default_status.result, group_id
|
False, default_status.result, group_id
|
||||||
)
|
)
|
||||||
logger.info(
|
logger.info(
|
||||||
f"超级用户关闭全部功能全局开关 {f'指定群组: {group_id}' if group_id else ''}",
|
"超级用户关闭全部功能全局开关"
|
||||||
|
f" {f'指定群组: {group_id}' if group_id else ''}",
|
||||||
arparma.header_result,
|
arparma.header_result,
|
||||||
session=session,
|
session=session,
|
||||||
)
|
)
|
||||||
@ -317,13 +306,13 @@ async def _(
|
|||||||
arparma.header_result,
|
arparma.header_result,
|
||||||
session=session,
|
session=session,
|
||||||
)
|
)
|
||||||
await MessageUtils.build_message(result).finish(reply_to=True)
|
|
||||||
else:
|
else:
|
||||||
_type = BlockType.ALL
|
_type = BlockType.ALL
|
||||||
if block_type.available:
|
|
||||||
if block_type.result in ["p", "private"]:
|
if block_type.result in ["p", "private"]:
|
||||||
|
if block_type.available:
|
||||||
_type = BlockType.PRIVATE
|
_type = BlockType.PRIVATE
|
||||||
elif block_type.result in ["g", "group"]:
|
elif block_type.result in ["g", "group"]:
|
||||||
|
if block_type.available:
|
||||||
_type = BlockType.GROUP
|
_type = BlockType.GROUP
|
||||||
result = await PluginManage.superuser_block(name, _type, group_id)
|
result = await PluginManage.superuser_block(name, _type, group_id)
|
||||||
logger.info(
|
logger.info(
|
||||||
@ -332,6 +321,7 @@ async def _(
|
|||||||
session=session,
|
session=session,
|
||||||
target=group_id,
|
target=group_id,
|
||||||
)
|
)
|
||||||
|
delete_help_image()
|
||||||
await MessageUtils.build_message(result).finish(reply_to=True)
|
await MessageUtils.build_message(result).finish(reply_to=True)
|
||||||
|
|
||||||
|
|
||||||
@ -362,11 +352,7 @@ async def _(
|
|||||||
):
|
):
|
||||||
image = await build_task(session.id3 or session.id2)
|
image = await build_task(session.id3 or session.id2)
|
||||||
if image:
|
if image:
|
||||||
logger.info(
|
logger.info("查看群被动列表", arparma.header_result, session=session)
|
||||||
f"查看群被动列表",
|
|
||||||
arparma.header_result,
|
|
||||||
session=session,
|
|
||||||
)
|
|
||||||
await MessageUtils.build_message(image).finish(reply_to=True)
|
await MessageUtils.build_message(image).finish(reply_to=True)
|
||||||
else:
|
else:
|
||||||
await MessageUtils.build_message("获取群被动任务失败...").finish(reply_to=True)
|
await MessageUtils.build_message("获取群被动任务失败...").finish(reply_to=True)
|
||||||
|
|||||||
@ -3,8 +3,23 @@ from zhenxun.models.plugin_info import PluginInfo
|
|||||||
from zhenxun.utils.enum import BlockType, PluginType
|
from zhenxun.utils.enum import BlockType, PluginType
|
||||||
from zhenxun.models.group_console import GroupConsole
|
from zhenxun.models.group_console import GroupConsole
|
||||||
from zhenxun.utils.exception import GroupInfoNotFound
|
from zhenxun.utils.exception import GroupInfoNotFound
|
||||||
|
from zhenxun.configs.path_config import DATA_PATH, IMAGE_PATH
|
||||||
from zhenxun.utils.image_utils import RowStyle, BuildImage, ImageTemplate
|
from zhenxun.utils.image_utils import RowStyle, BuildImage, ImageTemplate
|
||||||
|
|
||||||
|
HELP_FILE = IMAGE_PATH / "SIMPLE_HELP.png"
|
||||||
|
|
||||||
|
GROUP_HELP_PATH = DATA_PATH / "group_help"
|
||||||
|
|
||||||
|
|
||||||
|
def delete_help_image(gid: str | None = None):
|
||||||
|
"""删除帮助图片"""
|
||||||
|
if gid:
|
||||||
|
file = GROUP_HELP_PATH / f"{gid}.png"
|
||||||
|
if file.exists():
|
||||||
|
file.unlink()
|
||||||
|
elif HELP_FILE.exists():
|
||||||
|
HELP_FILE.unlink()
|
||||||
|
|
||||||
|
|
||||||
def plugin_row_style(column: str, text: str) -> RowStyle:
|
def plugin_row_style(column: str, text: str) -> RowStyle:
|
||||||
"""被动技能文本风格
|
"""被动技能文本风格
|
||||||
@ -421,7 +436,7 @@ class PluginManage:
|
|||||||
if status:
|
if status:
|
||||||
group.block_task += f"{task.module},"
|
group.block_task += f"{task.module},"
|
||||||
elif f"super:{task.module}," in group.block_task:
|
elif f"super:{task.module}," in group.block_task:
|
||||||
return f"{status_str} {task_name} 被动技能失败,当前群组该被动已被管理员禁用"
|
return f"{status_str} {task_name} 被动技能失败,当前群组该被动已被管理员禁用" # noqa: E501
|
||||||
else:
|
else:
|
||||||
group.block_task = group.block_task.replace(f"{task.module},", "")
|
group.block_task = group.block_task.replace(f"{task.module},", "")
|
||||||
await group.save(update_fields=["block_task"])
|
await group.save(update_fields=["block_task"])
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user