From d68289219589c047006ce0c7c57f64eb8307c4f1 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Wed, 22 Jan 2025 14:47:45 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E7=BE=A4=E7=BB=84?= =?UTF-8?q?=E5=85=A5=E7=BE=A4=E4=B8=8E=E9=80=80=E7=BE=A4=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/qq/group_handle/__init__.py | 2 +- .../platform/qq/group_handle/data_source.py | 34 +++++++++++-------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/zhenxun/builtin_plugins/platform/qq/group_handle/__init__.py b/zhenxun/builtin_plugins/platform/qq/group_handle/__init__.py index 2ca706c6..da86b93d 100644 --- a/zhenxun/builtin_plugins/platform/qq/group_handle/__init__.py +++ b/zhenxun/builtin_plugins/platform/qq/group_handle/__init__.py @@ -103,7 +103,7 @@ group_increase_handle = on_notice( group_decrease_handle = on_notice( priority=1, block=False, - rule=notice_rule([GroupMemberDecreaseEvent, GroupMemberIncreaseEvent]), + rule=notice_rule([GroupMemberDecreaseEvent, GroupDecreaseNoticeEvent]), ) """群员减少处理""" add_group = on_request(priority=1, block=False) diff --git a/zhenxun/builtin_plugins/platform/qq/group_handle/data_source.py b/zhenxun/builtin_plugins/platform/qq/group_handle/data_source.py index fc188eb1..5e307536 100644 --- a/zhenxun/builtin_plugins/platform/qq/group_handle/data_source.py +++ b/zhenxun/builtin_plugins/platform/qq/group_handle/data_source.py @@ -4,6 +4,7 @@ from pathlib import Path import random from nonebot.adapters import Bot +from nonebot.exception import ActionFailed from nonebot_plugin_alconna import At, UniMessage from nonebot_plugin_uninfo import Uninfo import ujson as json @@ -54,7 +55,7 @@ class GroupManager: if plugin_list := await PluginInfo.filter(default_status=False).all(): for plugin in plugin_list: block_plugin += f"<{plugin.module}," - group_info = await bot.get_group_info(group_id=group_id) + group_info = await bot.get_group_info(group_id=group_id, no_cache=True) await GroupConsole.create( group_id=group_info["group_id"], group_name=group_info["group_name"], @@ -215,17 +216,14 @@ class GroupManager: msg_list.insert(0, At("user", user_id)) logger.info("发送群欢迎消息...", "入群检测", session=session) if msg_list: - await MessageUtils.build_message(msg_list).send() # type: ignore - else: - image = DEFAULT_IMAGE_PATH / random.choice( - os.listdir(DEFAULT_IMAGE_PATH) - ) - await MessageUtils.build_message( - [ - "新人快跑啊!!本群现状↓(快使用自定义群欢迎消息!)", - image, - ] - ).send() + await MessageUtils.build_message(msg_list).finish() # type: ignore + image = DEFAULT_IMAGE_PATH / random.choice(os.listdir(DEFAULT_IMAGE_PATH)) + await MessageUtils.build_message( + [ + "新人快跑啊!!本群现状↓(快使用自定义群欢迎消息!)", + image, + ] + ).send() @classmethod async def add_user(cls, session: Uninfo, bot: Bot, user_id: str, group_id: str): @@ -237,11 +235,19 @@ class GroupManager: group_id: 群组id """ join_time = datetime.now() - user_info = await bot.get_group_member_info(group_id=group_id, user_id=user_id) + try: + user_info = await bot.get_group_member_info( + group_id=group_id, user_id=user_id, no_cache=True + ) + except ActionFailed: + user_info = {"user_id": user_id, "group_id": group_id, "nickname": ""} await GroupInfoUser.update_or_create( user_id=str(user_info["user_id"]), group_id=str(user_info["group_id"]), - defaults={"user_name": user_info["nickname"], "user_join_time": join_time}, + defaults={ + "user_name": user_info["nickname"], + "user_join_time": join_time, + }, ) logger.info(f"用户{user_info['user_id']} 所属{user_info['group_id']} 更新成功") if not await CommonUtils.task_is_block(