🐛 修复群组入群与退群提示

This commit is contained in:
HibiKier 2025-01-22 14:47:45 +08:00
parent f8e65030f1
commit d682892195
2 changed files with 21 additions and 15 deletions

View File

@ -103,7 +103,7 @@ group_increase_handle = on_notice(
group_decrease_handle = on_notice( group_decrease_handle = on_notice(
priority=1, priority=1,
block=False, block=False,
rule=notice_rule([GroupMemberDecreaseEvent, GroupMemberIncreaseEvent]), rule=notice_rule([GroupMemberDecreaseEvent, GroupDecreaseNoticeEvent]),
) )
"""群员减少处理""" """群员减少处理"""
add_group = on_request(priority=1, block=False) add_group = on_request(priority=1, block=False)

View File

@ -4,6 +4,7 @@ from pathlib import Path
import random import random
from nonebot.adapters import Bot from nonebot.adapters import Bot
from nonebot.exception import ActionFailed
from nonebot_plugin_alconna import At, UniMessage from nonebot_plugin_alconna import At, UniMessage
from nonebot_plugin_uninfo import Uninfo from nonebot_plugin_uninfo import Uninfo
import ujson as json import ujson as json
@ -54,7 +55,7 @@ class GroupManager:
if plugin_list := await PluginInfo.filter(default_status=False).all(): if plugin_list := await PluginInfo.filter(default_status=False).all():
for plugin in plugin_list: for plugin in plugin_list:
block_plugin += f"<{plugin.module}," 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( await GroupConsole.create(
group_id=group_info["group_id"], group_id=group_info["group_id"],
group_name=group_info["group_name"], group_name=group_info["group_name"],
@ -215,11 +216,8 @@ class GroupManager:
msg_list.insert(0, At("user", user_id)) msg_list.insert(0, At("user", user_id))
logger.info("发送群欢迎消息...", "入群检测", session=session) logger.info("发送群欢迎消息...", "入群检测", session=session)
if msg_list: if msg_list:
await MessageUtils.build_message(msg_list).send() # type: ignore await MessageUtils.build_message(msg_list).finish() # type: ignore
else: image = DEFAULT_IMAGE_PATH / random.choice(os.listdir(DEFAULT_IMAGE_PATH))
image = DEFAULT_IMAGE_PATH / random.choice(
os.listdir(DEFAULT_IMAGE_PATH)
)
await MessageUtils.build_message( await MessageUtils.build_message(
[ [
"新人快跑啊!!本群现状↓(快使用自定义群欢迎消息!)", "新人快跑啊!!本群现状↓(快使用自定义群欢迎消息!)",
@ -237,11 +235,19 @@ class GroupManager:
group_id: 群组id group_id: 群组id
""" """
join_time = datetime.now() 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( await GroupInfoUser.update_or_create(
user_id=str(user_info["user_id"]), user_id=str(user_info["user_id"]),
group_id=str(user_info["group_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']} 更新成功") logger.info(f"用户{user_info['user_id']} 所属{user_info['group_id']} 更新成功")
if not await CommonUtils.task_is_block( if not await CommonUtils.task_is_block(