diff --git a/zhenxun/builtin_plugins/platform/qq/group_handle.py b/zhenxun/builtin_plugins/platform/qq/group_handle.py index d2f851e2..29a05916 100644 --- a/zhenxun/builtin_plugins/platform/qq/group_handle.py +++ b/zhenxun/builtin_plugins/platform/qq/group_handle.py @@ -1,12 +1,13 @@ import os -import random import re +import random from datetime import datetime -import nonebot import ujson as json -from nonebot import on_notice, on_request from nonebot.adapters import Bot +from nonebot_plugin_alconna import At +from nonebot import on_notice, on_request +from nonebot.plugin import PluginMetadata from nonebot.adapters.onebot.v11 import ( GroupDecreaseNoticeEvent, GroupIncreaseNoticeEvent, @@ -15,22 +16,20 @@ from nonebot.adapters.onebot.v12 import ( GroupMemberDecreaseEvent, GroupMemberIncreaseEvent, ) -from nonebot.plugin import PluginMetadata -from nonebot_plugin_alconna import At -from zhenxun.configs.config import BotConfig, Config -from zhenxun.configs.path_config import DATA_PATH, IMAGE_PATH -from zhenxun.configs.utils import PluginExtraData, RegisterConfig, Task +from zhenxun.services.log import logger +from zhenxun.utils.utils import FreqLimiter +from zhenxun.models.task_info import TaskInfo +from zhenxun.utils.message import MessageUtils from zhenxun.models.fg_request import FgRequest -from zhenxun.models.group_console import GroupConsole -from zhenxun.models.group_member_info import GroupInfoUser from zhenxun.models.level_user import LevelUser from zhenxun.models.plugin_info import PluginInfo -from zhenxun.models.task_info import TaskInfo -from zhenxun.services.log import logger +from zhenxun.configs.config import Config, BotConfig +from zhenxun.models.group_console import GroupConsole +from zhenxun.models.group_member_info import GroupInfoUser from zhenxun.utils.enum import PluginType, RequestHandleType -from zhenxun.utils.message import MessageUtils -from zhenxun.utils.utils import FreqLimiter +from zhenxun.configs.path_config import DATA_PATH, IMAGE_PATH +from zhenxun.configs.utils import Task, RegisterConfig, PluginExtraData __plugin_meta__ = PluginMetadata( name="QQ群事件处理", @@ -129,7 +128,7 @@ async def _(bot: Bot, event: GroupIncreaseNoticeEvent | GroupMemberIncreaseEvent message=f"触发强制入群保护,已成功退出群聊 {group_id}...", ) logger.info( - f"强制拉群或未有群信息,退出群聊成功", + "强制拉群或未有群信息,退出群聊成功", "入群检测", group_id=event.group_id, ) @@ -140,7 +139,7 @@ async def _(bot: Bot, event: GroupIncreaseNoticeEvent | GroupMemberIncreaseEvent await req.save(update_fields=["handle_type"]) except Exception as e: logger.error( - f"强制拉群或未有群信息,退出群聊失败", + "强制拉群或未有群信息,退出群聊失败", "入群检测", group_id=event.group_id, e=e, @@ -209,7 +208,7 @@ async def _(bot: Bot, event: GroupIncreaseNoticeEvent | GroupMemberIncreaseEvent user_info["user_id"], user_info["group_id"], 9 ) logger.debug( - f"添加超级用户权限: 9", + "添加超级用户权限: 9", "入群检测", session=user_info["user_id"], group_id=user_info["group_id"], @@ -243,8 +242,8 @@ async def _(bot: Bot, event: GroupIncreaseNoticeEvent | GroupMemberIncreaseEvent img_file = path / f"{i}.png" if img_file.exists(): msg_list.append(img_file) - if not TaskInfo.is_block("group_welcome", group_id): - logger.info(f"发送群欢迎消息...", "入群检测", group_id=group_id) + if not await TaskInfo.is_block("group_welcome", group_id): + logger.info("发送群欢迎消息...", "入群检测", group_id=group_id) if msg_list: await MessageUtils.build_message(msg_list).send() else: @@ -275,17 +274,18 @@ async def _(bot: Bot, event: GroupDecreaseNoticeEvent | GroupMemberDecreaseEvent operator_name = "None" group = await GroupConsole.filter(group_id=str(group_id)).first() group_name = group.group_name if group else "" - coffee = int(superuser) - await bot.send_private_msg( - user_id=coffee, - message=f"****呜..一份踢出报告****\n" - f"我被 {operator_name}({operator_id})\n" - f"踢出了 {group_name}({group_id})\n" - f"日期:{str(datetime.now()).split('.')[0]}", - ) - if group: - await group.delete() - return + if superuser := BotConfig.get_superuser("qq"): + coffee = int(superuser) + await bot.send_private_msg( + user_id=coffee, + message=f"****呜..一份踢出报告****\n" + f"我被 {operator_name}({operator_id})\n" + f"踢出了 {group_name}({group_id})\n" + f"日期:{str(datetime.now()).split('.')[0]}", + ) + if group: + await group.delete() + return if str(event.user_id) == bot.self_id: """踢出Bot""" await GroupConsole.filter(group_id=str(event.group_id)).delete() @@ -312,7 +312,7 @@ async def _(bot: Bot, event: GroupDecreaseNoticeEvent | GroupMemberDecreaseEvent operator = await bot.get_group_member_info( user_id=event.operator_id, group_id=event.group_id ) - operator_name = operator["card"] if operator["card"] else operator["nickname"] + operator_name = operator["card"] or operator["nickname"] result = f"{user_name} 被 {operator_name} 送走了." - if not TaskInfo.is_block("refund_group_remind", str(event.group_id)): + if not await TaskInfo.is_block("refund_group_remind", str(event.group_id)): await group_decrease_handle.send(f"{result}")