优化入群欢迎远程处理好友、群请求

This commit is contained in:
CMHopeSunshine 2022-09-07 16:44:56 +08:00
parent 9a330c99fc
commit 27f66d33c8
2 changed files with 17 additions and 3 deletions

View File

@ -64,14 +64,28 @@ async def _(event: PrivateMessageEvent, state: T_State, msg: Message = CommandAr
msg = msg.replace('', '').strip()
if not requests_list[state['type']]:
await approve_request.finish(f'没有待处理的{state["type"]}请求')
elif msg == '全部':
state['id'] = Message('全部')
elif msg in requests_list[state['type']].keys():
state['id'] = Message(msg)
else:
state['id_list'] = '\n'.join([f'{v["name"]}({k})' for k, v in requests_list[state['type']].items()])
@approve_request.got('id', prompt=Message.template('你要同意的是以下哪个{type}:\n{id_list}\n请发送{type}号码'))
@approve_request.got('id', prompt=Message.template('你要同意的是以下哪个{type}:\n{id_list}\n请发送号码,或"全部"来同意全部请求'))
async def _(event: PrivateMessageEvent, bot: Bot, state: T_State, id_: str = ArgPlainText('id')):
if id_ == '全部':
for id__, info in requests_list[state['type']].items():
if state['type'] == '好友':
await bot.set_friend_add_request(flag=info['flag'], approve=True)
del requests_list['好友'][id__]
logger.info('好友添加请求', '', {'好友': id__}, '已同意', True)
elif state['type'] == '':
await bot.set_group_add_request(flag=info['flag'], sub_type='invite', approve=True)
del requests_list[''][id__]
logger.info('群邀请请求', '', {'': id__}, '已同意', True)
await asyncio.sleep(0.75)
await approve_request.finish(f'已同意全部{state["type"]}请求')
if id_ not in requests_list[state['type']].keys():
await approve_request.reject(Message.template('请发送要同意的{type}号码:\n{id_list}'))
else:
@ -110,7 +124,7 @@ async def _(bot: Bot, event: GroupRequestEvent):
user_info = await bot.get_stranger_info(user_id=event.user_id)
group_info = await bot.get_group_info(group_id=event.group_id)
base_msg = f'{user_info["nickname"]}({event.user_id})邀请{NICKNAME}加入群{group_info["group_name"]}({event.group_id})'
if pm.config.auto_add_group:
if pm.config.auto_add_group or event.user_id in SUPERUSERS:
await asyncio.sleep(random.randint(10, 20))
await bot.send_private_msg(user_id=SUPERUSERS[0], message=f'{base_msg},已自动同意')
await event.approve(bot)

View File

@ -388,5 +388,5 @@ def format_message(text: str, **kwargs) -> Message:
type_ = text.strip('{').strip('}')
msg += MessageSegment.text(kwargs.get(type_, text))
else:
msg += MessageSegment.text(text)
msg += MessageSegment.text(text.replace('\\n', '\n'))
return msg