async def handle_list_node(bot: Bot, event: Event, state: T_State): sub_command = state["sub_command"] if sub_command == 'list': detail_type = event.dict().get(f'{event.get_type()}_type') if detail_type == 'group': group_id = event.dict().get('group_id') _res = DBAuth.list(auth_type='group', auth_id=group_id) if _res.success(): node_text = '\n'.join('/'.join(map(str, n)) for n in _res.result) msg = f'当前群组权限列表为:\n\n{node_text}' await omegaauth.finish(msg) else: await omegaauth.finish('发生了意外的错误QAQ, 请稍后再试') elif detail_type == 'private': user_id = event.dict().get('user_id') _res = DBAuth.list(auth_type='user', auth_id=user_id) if _res.success(): node_text = '\n'.join('/'.join(map(str, n)) for n in _res.result) msg = f'当前用户权限列表为:\n\n{node_text}' await omegaauth.finish(msg) else: await omegaauth.finish('发生了意外的错误QAQ, 请稍后再试') else: await omegaauth.finish('非授权会话, 操作中止')
async def _has_level_or_node(bot: Bot, event: Event, state: T_State) -> bool: auth_node = '.'.join(auth_nodes) detail_type = event.dict().get(f'{event.get_type()}_type') group_id = event.dict().get('group_id') user_id = event.dict().get('user_id') # level检查部分 if detail_type != 'group': level_checker = False else: if DBGroup(group_id=group_id).permission_level().result >= level: level_checker = True else: level_checker = False # node检查部分 if detail_type == 'private': allow_tag = DBAuth(auth_id=user_id, auth_type='user', auth_node=auth_node).allow_tag().result deny_tag = DBAuth(auth_id=user_id, auth_type='user', auth_node=auth_node).deny_tag().result elif detail_type == 'group': allow_tag = DBAuth(auth_id=group_id, auth_type='group', auth_node=auth_node).allow_tag().result deny_tag = DBAuth(auth_id=group_id, auth_type='group', auth_node=auth_node).deny_tag().result else: allow_tag = 0 deny_tag = 0 if allow_tag == 1 and deny_tag == 0: return True elif allow_tag == -2 and deny_tag == -2: return level_checker else: return False
async def handle_message(bot: Bot, event: Event, state: T_State): try: user_name = event.dict().get('sender').get('card') if not user_name: user_name = event.dict().get('sender').get('nickname') time = event.dict().get('time') self_id = event.dict().get('self_id') post_type = event.get_type() detail_type = event.dict().get(f'{event.get_type()}_type') sub_type = event.dict().get('sub_type') group_id = event.dict().get('group_id') user_id = event.dict().get('user_id') raw_data = repr(event) msg_data = str(event.dict().get('message')) new_event = DBHistory(time=time, self_id=self_id, post_type=post_type, detail_type=detail_type) new_event.add(sub_type=sub_type, group_id=group_id, user_id=user_id, user_name=user_name, raw_data=raw_data, msg_data=msg_data) except Exception as e: logger.error(f'Message history recording Failed, error: {repr(e)}')
async def _has_command_permission(bot: Bot, event: Event, state: T_State) -> bool: detail_type = event.dict().get(f'{event.get_type()}_type') group_id = event.dict().get('group_id') # 检查当前消息类型 if detail_type != 'group': return False else: if DBGroup(group_id=group_id).permission_level().result >= level: return True else: return False
async def parse(bot: Bot, event: Event, state: T_State): args = str(event.get_plaintext()).strip().lower().split() if not args: await setu_import.reject('你似乎没有发送有效的参数呢QAQ, 请重新发送:') state[state["_current_key"]] = args[0] if state[state["_current_key"]] == '取消': await setu_import.finish('操作已取消')
async def RDL(bot: Bot, event: Event): args = str(event.get_message()).split() if isinstance(event, MessageEvent): if args: if args[0] == 'random': await Random_Gal.send('Senrin折寿中......') async with AsyncClient() as Client: mg = await get_random_game(Client=Client, event=event) await Random_Gal.finish(Message(mg)) elif args[0] == 'tag': try: tag = args[1] except: await Random_Gal.finish( Message( f"[CQ:at,qq={event.user_id}]传入了不正确的参数......\n然后指令坏掉了,Senrin处理了个寂寞" )) else: await Random_Gal.send('Senrin折寿中......') async with AsyncClient() as Client: mg = await get_tag_game(Client=Client, tag=tag, event=event) await Random_Gal.finish(Message(mg)) else: await Random_Gal.finish( Message( f"[CQ:at,qq={event.user_id}]传入了不正确的参数......\n然后指令坏掉了,Senrin处理了个寂寞" )) else: await Random_Gal.finish( Message( f"[CQ:at,qq={event.user_id}]传入了不正确的参数......\n然后指令坏掉了,Senrin处理了个寂寞" ))
async def setu(bot: Bot, event: Event): """随机叫一份涩图,对每个用户有冷却时间""" uid = event.get_user_id() if not _nlmt.check(uid): await bot.send(event, EXCEED_NOTICE, at_sender=True) return if not _flmt.check(uid): await bot.send(event, '您冲得太快了,请稍候再冲', at_sender=True) return _flmt.start_cd(uid) _nlmt.increase(uid) # conditions all ok, send a setu. try: logger.debug('开始从网络爬取图片。') pic = await get_web_img() except Exception as e: logger.error(f"爬取网络图片失败,将从本地选择。({e})") pic = get_local_setu() try: if pic: await bot.send(event, pic.cqcode) except Exception as e: logger.error(f"发送图片{pic.path}失败") logger.exception(e) try: await bot.send(event, '涩图太涩,发不出去勒...') except: pass
async def search_handle(bot: Bot, event: Event, state: T_State): if event.user_id not in bot.config.master: search.finish() msg = str(event.get_message()) if 'CQ:image' in msg: state["url"] = msg.split('url=')[-1][:-1]
async def maimaidx(bot: Bot, event: Event, state: T_State): #获取关键词,数量 并处理 comman = str(event.get_message()).strip().split(' ') keyword = '' num = 1 try: if len(comman) == 2: num = int(comman[1]) if num > 4: await bot.send(message=f'您搁这抽卡呢?') return 0 Rlist = {'红': 2, '紫': 3, '白': 4} #数组的index if comman[0][0] in Rlist.keys(): rank = Rlist[comman[0][0]] lv = comman[0][1:] list = dxbot.random_song([lv], num=num, rank=rank) else: lv = comman[0].split('-') list = dxbot.random_song(lv, num=num) except: print('err') return msg = '' for i in list: if msg: msg += '\n----------------\n' msg += i await bot.send(event, message=msg)
async def _(bot: Bot, event: Event): if isinstance(event, PokeNotifyEvent): if event.is_tome() and event.user_id != event.self_id: await bot.send(event=event, message=a[random.randint(0, len(a) - 1)]) else: await poke.finish()
async def setp_handle(bot: Bot, event: Event, state: T_State): comman = str(event.get_message()).split() if comman: print(comman) state["key"] = comman[0] if len(comman) > 1: state["value"] = comman[1:]
async def handle_first_receive(bot: Bot, event: Event, state: T_State): args = str(event.get_plaintext()).strip().lower().split() if not args: pass elif args and len(args) == 1: state['mode'] = args[0] else: await setu_import.finish('参数错误QAQ')
async def handle_first_receive(bot: Bot, event: Event, state: T_State): args = str(event.get_plaintext()).strip().split() if not args: pass elif args and len(args) == 1: state['sub_command'] = args[0] else: await omegaauth.finish('参数错误QAQ')
async def _(bot: Bot, event: Event): if isinstance(event, PokeNotifyEvent): if event.is_tome() and event.user_id != event.self_id: l = len(a) k = random.randint(0, l - 1) while pre == k: k = random.randint(0, l - 1) last = k await bot.send(event=event, message=a[k], at_sender=True)
async def setp_got(bot: Bot, event: Event, state: T_State): try: state["value"] = str(event.get_message()).split() #录入库 save_json(state["key"], state["value"]) await bot.send(event, message=f'ok~') except: await bot.send(event, message=f'失败了QAQ')
async def handle_first_receive(bot: Bot, event: Event, state: T_State): args = str(event.get_plaintext()).strip().lower().split() if not args: pass elif args and len(args) == 1: state['group'] = args[0] elif args and len(args) == 2: state['group'] = args[0] state['announce_text'] = args[1] else: await announce.finish('参数错误QAQ')
def from_payload(cls, payload: NoneBotEvent) -> "Event": """ 从 CQHTTP 事件数据构造 `Event` 对象。 """ payload_dict = payload.dict() if isinstance(payload, MessageEvent): payload_dict["message"] = Message([ MessageSegment(type_=segment.type, data=segment.data) for segment in payload.message ]) return cls(payload_dict)
async def _has_auth_node(bot: Bot, event: Event, state: T_State) -> bool: auth_node = '.'.join(auth_nodes) detail_type = event.dict().get(f'{event.get_type()}_type') group_id = event.dict().get('group_id') user_id = event.dict().get('user_id') # 检查当前消息类型 if detail_type == 'private': allow_tag = DBAuth(auth_id=user_id, auth_type='user', auth_node=auth_node).allow_tag().result deny_tag = DBAuth(auth_id=user_id, auth_type='user', auth_node=auth_node).deny_tag().result elif detail_type == 'group' or detail_type == 'group_upload': allow_tag = DBAuth(auth_id=group_id, auth_type='group', auth_node=auth_node).allow_tag().result deny_tag = DBAuth(auth_id=group_id, auth_type='group', auth_node=auth_node).deny_tag().result else: allow_tag = 0 deny_tag = 0 if allow_tag == 1 and deny_tag == 0: return True else: return False
async def _Reply_SearchPic(bot: Bot, event: Event): send_except_msg = (Message( f"[CQ:at,qq={event.get_user_id()}]你确定你给我的是一张图片?\n" "若持续出此报错,请按照以下步骤搜图:\n" '1.将图片逐张转发至Senrin\n' '2.回复需要搜索的图片并附上“搜图”')) if '搜图' in str(event.get_message()): search_list = [] result_list = [] send_msg_result = '搜图结果如下:\n' for _msg in event.reply.message: # type:ignore 初步处理数据 if _msg.type == 'image': search_list.append(_msg.data['url']) else: pass if search_list: # 有图 await Reply_SearchPic.send('ちょっと待ってください......') for numst in range(len(search_list)): msg_url = search_list[numst] # 获取搜索结果 try: search_result = await SauceNAO(numst=numst, pic_url=msg_url) except: await Reply_SearchPic.finish( '似乎出现了蜜汁错误......图搜到了但没完全搜到......') return if search_result: result_list.append(search_result) if result_list: # 存在搜索结果 for result_send in result_list: _add_result = (f"第{result_send[0]}张图片:\n" f"{result_send[1]}\n") send_msg_result += _add_result if isinstance(event, GroupMessageEvent): await Reply_SearchPic.send( Message( f'[CQ:at,qq={event.get_user_id()}] Senrin从SauceNAO获得了搜图结果,并将以私聊方式发送!\nPS:若持续未收到图片,请添加Senrin为好友!' )) await bot.send_private_msg( user_id=event.user_id, message=Message(send_msg_result)) elif isinstance(event, PrivateMessageEvent): await Reply_SearchPic.send( Message('好耶!找到图咯!\n' + send_msg_result)) else: # 不存在搜索结果 await Reply_SearchPic.send( Message( f'[CQ:at,qq={event.get_user_id()}] 暂无相关信息,Senrin搜了个寂寞') ) else: # 无图 await Reply_SearchPic.finish(send_except_msg) await Reply_SearchPic.finish()
async def search_got(bot: Bot, event: Event, state: T_State): if event.user_id not in bot.config.master: await search.finish("不是Master不行的哦~") msg = str(event.get_message()) if 'CQ:image' in msg: state["url"] = msg.split('url=')[-1][:-1] data = await tool.get_image_data(state["url"]) await search.finish(data)
async def _regex_setu_random(bot: Bot, event: Event, state: dict): global last_time_Rrandom if isinstance(event, GroupMessageEvent): if event.group_id in [ get_driver().config.GroupList['last'], get_driver().config.GroupList['test'] ]: start_time = datetime.datetime.now() # 取现在时间 # 用于判定程序是否为初次启动,检测last_time是否被赋值 if isinstance(last_time_Rrandom, datetime.datetime): if (start_time - last_time_Rrandom).seconds <= 5: if str(event.user_id) not in masterList: await regex_setu_random.finish( "我球球你了让Senrin歇一会儿吧......爪巴涩图很累的说......") return else: await regex_setu_random.send("我爪巴爪巴......这就去......") handle_msg = (f"[CQ:at,qq={event.user_id}]随机涩图触发\n" "触发方式:regex\n" "图片分级:随机\n" "图片数量:1\n" "Loading......(约3秒钟)") await regex_setu_random.send(Message(handle_msg)) setu = await random_setu(Rmodle='regex', level=None, num=1) else: setu = None elif isinstance(event, PrivateMessageEvent): if str(event.user_id) in masterList: handle_msg = ("随机涩图触发\n" "触发方式:regex\n" "图片分级:随机\n" "图片数量:1\n" "Loading......(约3秒钟)") await regex_setu_random.send(Message(handle_msg)) setu = await random_setu(Rmodle='regex', level=None, num=1) else: await regex_setu_random.finish("看尼玛涩图给爷爬!") setu = None else: setu = None if setu: handle_msg = 'Active!!!' await regex_setu_random.send(Message(handle_msg)) for msg in setu: await asyncio.sleep(0.1) await regex_setu_random.send(Message(msg)) download_urls.clear() if event.get_user_id() not in masterList and resetTime == True: last_time_Rrandom = datetime.datetime.now() await regex_setu_random.finish()
async def setp_got(bot: Bot, event: Event, state: T_State): try: comman = str(event.get_message()).split() state["key"] = comman[0] if ",url=" in state["key"]: state["key"] = state["key"].split(",url=")[0] if len(comman) > 1: state["value"] = comman[1:] #录入库 save_json(state["key"], state["value"]) await bot.send(event, message=f'ok~') except: await bot.send(event, message=f'失败了QAQ')
async def add(bot: Bot, event: Event, state: T_State): ''' >> 添加关注 bid nickname ''' user_id = event.user_id msg = str(event.get_message()).split() if(user_id in master): if msg[0].isdigit: id = msg[0] nickname = msg[1] elif msg[1].isdigit: id = msg[1] nickname = msg[0] else: await bot.send(event, message = f'添加失败勒') return to_add(id, nickname) with open(path, 'w+') as f : tojson = json.dumps(liveroom,sort_keys=True, ensure_ascii=False, indent=4,separators=(',',': ')) f.write(tojson) await bot.send(event, message = f'添加成功~')
async def handle_plugin_cooldown(matcher: Matcher, bot: Bot, event: Event, state: T_State): group_id = event.dict().get('group_id') user_id = event.dict().get('user_id') global_config = get_driver().config superusers = global_config.superusers # 忽略超级用户 if user_id in [int(x) for x in superusers]: return # 只处理message事件 if matcher.type != 'message': return # 处理插件冷却 # 冷却处理优先级: 全局>插件>群组>用户 # 冷却限制优先级: 用户>群组>插件>全局 plugin_name = matcher.module plugin = get_plugin(plugin_name) plugin_cool_down_list = plugin.export.get('cool_down') # 只处理声明了__plugin_cool_down__的插件 if not plugin_cool_down_list: return # 检查用户或群组是否有skip_cd权限, 跳过冷却检查 skip_cd_auth_node = f'{plugin_name}.{PluginCoolDown.skip_auth_node}' user_auth_res = DBAuth(auth_id=user_id, auth_type='user', auth_node=skip_cd_auth_node) if user_auth_res.allow_tag().result == 1 and user_auth_res.deny_tag( ).result == 0: return group_auth_res = DBAuth(auth_id=group_id, auth_type='group', auth_node=skip_cd_auth_node) if group_auth_res.allow_tag().result == 1 and group_auth_res.deny_tag( ).result == 0: return # 检查冷却情况 global_check = DBCoolDownEvent.check_global_cool_down_event() plugin_check = DBCoolDownEvent.check_plugin_cool_down_event( plugin=plugin_name) group_check = DBCoolDownEvent.check_group_cool_down_event( plugin=plugin_name, group_id=group_id) user_check = DBCoolDownEvent.check_user_cool_down_event(plugin=plugin_name, user_id=user_id) # 处理全局冷却 # 先检查是否已有全局冷却 if plugin_check.result == 1 or group_check.result == 1 or user_check.result == 1: pass elif global_check.result == 1: await bot.send( event=event, message=Message( f'{MessageSegment.at(user_id=user_id)}命令冷却中!\n{global_check.info}' )) raise IgnoredException('全局命令冷却中') elif global_check.result == 0: pass else: logger.error( f'全局冷却事件异常! group: {group_id}, user: {user_id}, error: {global_check.info}' ) # 然后再处理命令中存在的全局冷却 for time in [ x.cool_down_time for x in plugin_cool_down_list if x.type == 'global' ]: # 若有插件、群组或用户冷却则交由其处理 if plugin_check.result == 1 or group_check.result == 1 or user_check.result == 1: break res = check_and_set_global_cool_down(minutes=time) if res.result == 1: await bot.send( event=event, message=Message( f'{MessageSegment.at(user_id=user_id)}命令冷却中!\n{res.info}')) raise IgnoredException('全局命令冷却中') elif res.result == 0: pass else: logger.error( f'全局冷却事件异常! group: {group_id}, user: {user_id}, error: {res.info}' ) # 处理插件冷却 for time in [ x.cool_down_time for x in plugin_cool_down_list if x.type == 'plugin' ]: # 若有群组或用户冷却则交由其处理 if group_check.result == 1 or user_check.result == 1: break res = check_and_set_plugin_cool_down(minutes=time, plugin=plugin_name) if res.result == 1: await bot.send( event=event, message=Message( f'{MessageSegment.at(user_id=user_id)}命令冷却中!\n{res.info}')) raise IgnoredException('插件命令冷却中') elif res.result == 0: pass else: logger.error( f'插件冷却事件异常! group: {group_id}, user: {user_id}, plugin: {plugin_name}, error: {res.info}' ) # 处理群组冷却 for time in [ x.cool_down_time for x in plugin_cool_down_list if x.type == 'group' ]: if not group_id: break # 若有用户冷却则交由其处理 if user_check.result == 1: break res = check_and_set_group_cool_down(minutes=time, plugin=plugin_name, group_id=group_id) if res.result == 1: await bot.send( event=event, message=Message( f'{MessageSegment.at(user_id=user_id)}命令冷却中!\n{res.info}')) raise IgnoredException('群组命令冷却中') elif res.result == 0: pass else: logger.error( f'群组冷却事件异常! group: {group_id}, user: {user_id}, plugin: {plugin_name}, error: {res.info}' ) # 处理用户冷却 for time in [ x.cool_down_time for x in plugin_cool_down_list if x.type == 'user' ]: if not user_id: break res = check_and_set_user_cool_down(minutes=time, plugin=plugin_name, user_id=user_id) if res.result == 1: await bot.send( event=event, message=Message( f'{MessageSegment.at(user_id=user_id)}命令冷却中!\n{res.info}')) raise IgnoredException('用户命令冷却中') elif res.result == 0: pass else: logger.error( f'用户冷却事件异常! group: {group_id}, user: {user_id}, plugin: {plugin_name}, error: {res.info}' )
async def _command_setu(bot: Bot, event: Event, state: dict): global last_time_command def check_tpye(arg): # 检查命令格式 if arg: if arg[0] == 'random': try: level = int(arg[1]) num = int(arg[2]) except: check_type = False else: if level in [1, 2, 0] and num <= 10: check_type = True else: check_type = False elif arg[0] == 'search': try: num = int(arg[2]) except: check_type = False else: check_type = True if num <= 10 else False else: check_type = False else: check_type = False return check_type if isinstance(event, GroupMessageEvent): if event.group_id in [ get_driver().config.GroupList['last'], get_driver().config.GroupList['test'] ]: arg = str(event.get_message()).split() checked_type = check_tpye(arg) if checked_type == False: setu = None await command_setu.finish( Message( f"[CQ:at,qq={event.user_id}]传入了不正确的参数......\n然后指令坏掉了,Senrin处理了个寂寞" )) else: if arg[0] == 'random': level, num = arg[1], int(arg[2]) start_time = datetime.datetime.now() # 取现在时间 # 用于判定程序是否为初次启动,检测last_time是否被赋值 if isinstance(last_time_command, datetime.datetime): if (start_time - last_time_command).seconds <= 60: if str(event.user_id) not in masterList: await command_setu.finish( "我球球你了让Senrin歇一会儿吧......爪巴涩图很累的说......") return else: await command_setu.send("我爪巴爪巴......这就去......") level_zh = level_zh_dic[str(level)] handle_msg = (f"[CQ:at,qq={event.user_id}]随机涩图触发\n" "触发方式:command\n" f"图片分级:{level_zh}\n" f"图片数量:{num}\n" "Loading......(约15秒钟)") await command_setu.send(Message(handle_msg)) setu = await random_setu(Rmodle='random', level=level, num=num) elif arg[0] == 'search': keywords, num = arg[1], int(arg[2]) start_time = datetime.datetime.now() # 取现在时间 # 用于判定程序是否为初次启动,检测last_time是否被赋值 if isinstance(last_time_command, datetime.datetime): if (start_time - last_time_command).seconds <= 60: if str(event.user_id) not in masterList: await command_setu.finish( "我球球你了让Senrin歇一会儿吧......爪巴涩图很累的说......") return else: await command_setu.send("我爪巴爪巴......这就去......") handle_msg = ("定向涩图触发\n" "触发方式:command\n" f"关键词:{keywords}\n" f"图片数量:{num}\n" "Loading......(约15秒钟)") await command_setu.send(Message(handle_msg)) setu = await search_setu(Keywords=keywords, num=num) else: setu = None else: setu = None elif isinstance(event, PrivateMessageEvent): if str(event.user_id) in masterList: arg = str(event.get_message()).split() checked_type = check_tpye(arg) if checked_type == False: setu = None await command_setu.finish( "传入了不正确的参数......\n然后指令坏掉了,Senrin处理了个寂寞") else: if arg[0] == 'random': level, num = arg[1], arg[2] level_zh = level_zh_dic[str(level)] handle_msg = (f"[CQ:at,qq={event.user_id}]随机涩图触发\n" "触发方式:command\n" f"图片分级:{level_zh}\n" f"图片数量:{num}\n" "Loading......(约15秒钟)") await command_setu.send(Message(handle_msg)) setu = await random_setu(Rmodle='random', level=level, num=num) elif arg[0] == 'search': keywords, num = arg[1], int(arg[2]) handle_msg = ("定向涩图触发\n" "触发方式:command\n" f"关键词:{keywords}\n" f"图片数量:{num}\n" "Loading......(约15秒钟)") await command_setu.send(Message(handle_msg)) setu = await search_setu(Keywords=keywords, num=num) else: setu = None else: setu = None else: setu = None if setu: await command_setu.send('Active!!!') for msg in setu: await command_setu.send(Message(msg)) await asyncio.sleep(0.1) if event.get_user_id() not in masterList and resetTime == True: last_time_command = datetime.datetime.now() download_urls.clear() await command_setu.finish()
async def _regex_setu_search(bot: Bot, event: Event, state: dict): global last_time_command async def regex_march(): if re.match(r'^[来整][几.\S*][张份个]\S*[色涩黄]图$', str(event.get_message())): key = re.findall(r'^[来整][几.\S*][张份个](\S*?)[色涩黄]图$', str(event.get_message()))[0] num = re.findall(r'^[来整]([几.\S*]?)[张份个]\S*[色涩黄]图$', str(event.get_message()))[0] if num == '几': num = random.randint(1, 10) elif num in word_to_int: num = word_to_int[num] else: await regex_setu_search.finish( "呐很抱歉呢......Senrin这里只有十张以内的涩图的说......") else: key = re.findall(r'^[来整]点(\S*?)[色涩黄]图$', str(event.get_message()))[0] # 获取关键词 num = 1 return (key, num) if isinstance(event, GroupMessageEvent): if event.group_id in [ get_driver().config.GroupList['last'], get_driver().config.GroupList['test'] ]: start_time = datetime.datetime.now() # 取现在时间 # 用于判定程序是否为初次启动,检测last_time是否被赋值 if isinstance(last_time_command, datetime.datetime): if (start_time - last_time_command).seconds <= 60: if str(event.user_id) not in masterList: await regex_setu_search.finish( "我球球你了让Senrin歇一会儿吧......爪巴涩图很累的说......") return else: await regex_setu_search.send("我爪巴爪巴......这就去......") result_march = await regex_march() key, num = result_march[0], result_march[1] handle_msg = (f"[CQ:at,qq={event.user_id}]随机涩图触发\n" "触发方式:regex\n" f"关键词:{key}\n" f"图片数量:{num}\n" "Loading......(约10秒钟)") await regex_setu_search.send(Message(handle_msg)) setu = await search_setu(Keywords=key, num=num) else: setu = None elif isinstance(event, PrivateMessageEvent): if str(event.user_id) in masterList: result_march = await regex_march() key, num = result_march[0], result_march[1] handle_msg = ("定向涩图触发\n" "触发方式:regex\n" f"关键词:{key}\n" f"图片数量:{num}\n" "Loading......(约10秒钟)") await regex_setu_search.send(Message(handle_msg)) setu = await search_setu(Keywords=key, num=num) else: await regex_setu_search.finish("看尼玛涩图给爷爬!") setu = None else: setu = None if setu: await regex_setu_search.send('Active!!!') for msg in setu: await asyncio.sleep(0.1) await regex_setu_random.send(Message(msg)) download_urls.clear() if event.get_user_id() not in masterList and resetTime == True: last_time_command = datetime.datetime.now() await regex_setu_search.finish()