From fdb62f72268cbc67e38819e15c9aa6f77602aae5 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Fri, 2 Aug 2024 19:51:52 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zhenxun/builtin_plugins/__init__.py | 7 ------ zhenxun/builtin_plugins/admin/admin_help.py | 5 ++-- zhenxun/builtin_plugins/admin/admin_watch.py | 6 ----- zhenxun/builtin_plugins/platform/__init__.py | 11 +++++++++ .../platform/qq/group_handle.py | 23 ++++++++++--------- 5 files changed, 25 insertions(+), 27 deletions(-) create mode 100644 zhenxun/builtin_plugins/platform/__init__.py diff --git a/zhenxun/builtin_plugins/__init__.py b/zhenxun/builtin_plugins/__init__.py index c529ba8c..aae5acb0 100644 --- a/zhenxun/builtin_plugins/__init__.py +++ b/zhenxun/builtin_plugins/__init__.py @@ -1,4 +1,3 @@ -import os import uuid from nonebot import require @@ -22,16 +21,10 @@ require("nonebot_plugin_userinfo") from nonebot_plugin_saa import enable_auto_select_bot enable_auto_select_bot() -from pathlib import Path import nonebot import ujson as json -path = Path(__file__).parent / "platform" -for d in os.listdir(path): - nonebot.load_plugins(str((path / d).resolve())) - - driver: Driver = nonebot.get_driver() diff --git a/zhenxun/builtin_plugins/admin/admin_help.py b/zhenxun/builtin_plugins/admin/admin_help.py index b151ed09..45c1773e 100644 --- a/zhenxun/builtin_plugins/admin/admin_help.py +++ b/zhenxun/builtin_plugins/admin/admin_help.py @@ -1,5 +1,4 @@ import nonebot -from arclet.alconna import Args, Option from nonebot.plugin import PluginMetadata from nonebot_plugin_alconna import Alconna, Arparma, on_alconna from nonebot_plugin_alconna.matcher import AlconnaMatcher @@ -7,8 +6,8 @@ from nonebot_plugin_saa import Image, Text from nonebot_plugin_session import EventSession from zhenxun.configs.config import Config -from zhenxun.configs.path_config import DATA_PATH, IMAGE_PATH -from zhenxun.configs.utils import PluginExtraData, RegisterConfig +from zhenxun.configs.path_config import IMAGE_PATH +from zhenxun.configs.utils import PluginExtraData from zhenxun.models.plugin_info import PluginInfo from zhenxun.models.task_info import TaskInfo from zhenxun.services.log import logger diff --git a/zhenxun/builtin_plugins/admin/admin_watch.py b/zhenxun/builtin_plugins/admin/admin_watch.py index 02fe9417..919e4bd3 100644 --- a/zhenxun/builtin_plugins/admin/admin_watch.py +++ b/zhenxun/builtin_plugins/admin/admin_watch.py @@ -4,7 +4,6 @@ from nonebot.plugin import PluginMetadata from zhenxun.configs.config import Config from zhenxun.configs.utils import PluginExtraData -from zhenxun.models.group_member_info import GroupInfoUser from zhenxun.models.level_user import LevelUser from zhenxun.services.log import logger from zhenxun.utils.enum import PluginType @@ -26,11 +25,6 @@ base_config = Config.get("admin_bot_manage") @admin_notice.handle() async def _(event: GroupAdminNoticeEvent): - nickname = event.user_id - if user := await GroupInfoUser.get_or_none( - user_id=str(event.user_id), group_id=str(event.group_id) - ): - nickname = user.user_name if event.sub_type == "set": admin_default_auth = base_config.get("ADMIN_DEFAULT_AUTH") if admin_default_auth is not None: diff --git a/zhenxun/builtin_plugins/platform/__init__.py b/zhenxun/builtin_plugins/platform/__init__.py new file mode 100644 index 00000000..448afcf7 --- /dev/null +++ b/zhenxun/builtin_plugins/platform/__init__.py @@ -0,0 +1,11 @@ +import os +from pathlib import Path + +import nonebot + +path = Path(__file__).parent + +for f in os.listdir(path): + _p = path / f + if _p.is_dir(): + nonebot.load_plugins(str(_p.resolve())) diff --git a/zhenxun/builtin_plugins/platform/qq/group_handle.py b/zhenxun/builtin_plugins/platform/qq/group_handle.py index ad2d2ec9..48037a8c 100644 --- a/zhenxun/builtin_plugins/platform/qq/group_handle.py +++ b/zhenxun/builtin_plugins/platform/qq/group_handle.py @@ -27,7 +27,7 @@ from zhenxun.models.group_member_info import GroupInfoUser from zhenxun.models.level_user import LevelUser from zhenxun.models.plugin_info import PluginInfo from zhenxun.services.log import logger -from zhenxun.utils.enum import PluginType, RequestHandleType, RequestType +from zhenxun.utils.enum import PluginType, RequestHandleType from zhenxun.utils.utils import FreqLimiter __plugin_meta__ = PluginMetadata( @@ -110,7 +110,9 @@ async def _(bot: Bot, event: GroupIncreaseNoticeEvent | GroupMemberIncreaseEvent group_id = str(event.group_id) if user_id == bot.self_id: """新成员为bot本身""" - group = await GroupConsole.get_or_none(group_id=group_id) + group = await GroupConsole.get_or_none( + group_id=group_id, channel_id__isnull=True + ) if (not group or group.group_flag == 0) and base_config.get("flag"): """群聊不存在或被强制拉群,退出该群""" try: @@ -142,9 +144,7 @@ async def _(bot: Bot, event: GroupIncreaseNoticeEvent | GroupMemberIncreaseEvent user_id=int(superuser), message=f"触发强制入群保护,退出群聊 {event.group_id} 失败...", ) - elif group_id not in await GroupConsole.all().values_list( - "group_id", flat=True - ): + elif not GroupConsole.exists(group_id=group_id, channel_id__isnull=True): """默认群功能开关""" block_plugin = "" if plugin_list := await PluginInfo.filter(default_status=False).all(): @@ -230,14 +230,15 @@ async def _(bot: Bot, event: GroupIncreaseNoticeEvent | GroupMemberIncreaseEvent if msg_list: await MessageFactory(msg_list).send() else: + image = ( + IMAGE_PATH + / "qxz" + / random.choice(os.listdir(IMAGE_PATH / "qxz")) + ) await MessageFactory( [ Text("新人快跑啊!!本群现状↓(快使用自定义!)"), - Image( - IMAGE_PATH - / "qxz" - / random.choice(os.listdir(IMAGE_PATH / "qxz")) - ), + Image(image), ] ).send() @@ -256,7 +257,7 @@ 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(list(bot.config.superusers)[0]) + coffee = int(superuser) await bot.send_private_msg( user_id=coffee, message=f"****呜..一份踢出报告****\n"