From 892ae018b1b9ab52f3ee4b751893d70bd81ea777 Mon Sep 17 00:00:00 2001 From: Kyomotoi <1172294279@qq.com> Date: Tue, 11 Aug 2020 00:08:59 +0800 Subject: [Update] --- ATRI/plugins/hbook.py | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'ATRI/plugins/hbook.py') diff --git a/ATRI/plugins/hbook.py b/ATRI/plugins/hbook.py index d1a79bc..52a3098 100644 --- a/ATRI/plugins/hbook.py +++ b/ATRI/plugins/hbook.py @@ -7,29 +7,38 @@ from nonebot import on_command, CommandSession from ATRI.modules import response # type: ignore -@on_command('hbook', aliases = ['本子', '本子搜索', '本子查询'], only_to_me = False) +pattern = r"来(.*?)[点丶份张幅](.*?)的?本子" + +@on_command('hbook', patterns = [r"来(.*?)[点丶份张幅](.*?)的本子"], only_to_me = False) async def _(session: CommandSession): with open('ATRI/plugins/switch/switch.json', 'r') as f: data = json.load(f) if data["hbook"] == 0: + num = 1 + tag = '' start = time.perf_counter() - h_msg = session.current_arg.strip() + h_msg = str(session.event.message) - if not h_msg: - h_msg = session.get('message', prompt='要冲了吗?速发关键词') + info = re.findall(pattern, h_msg) + if info: + num = int(info[0][0] or 1) + tag = info[0][1] + if num > 5: + await session.send('你是不是涩批啊!要那么多干啥?!我最多发5份!') + num = 5 h_type = session.event.detail_type h_user = session.event.user_id header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'} - keyword = {'show':'title,titleen,tags','keyboard':h_msg} + keyword = {'show':'title,titleen,tags','keyboard':f'{tag}'} res = await response.post_bytes('https://b-upp.com/search/', headers=header, data=keyword) res = res.decode() if '没有搜索到相关的内容' in res: - n_msg = '...似乎没有找到[{}]相关的本子呢'.format(h_msg) + n_msg = '...似乎没有找到[{}]相关的本子呢'.format(tag) await session.send(message=n_msg) else: @@ -38,17 +47,17 @@ async def _(session: CommandSession): n = len(data) if h_type == 'group': - limit = 3 + limit = num elif h_type == 'private': - limit = 10 + limit = num if n > limit: # type: ignore n = limit # type: ignore - msg = f'根据提供信息,已查询到{n}本关键词为[{h_msg}]的本子:' + msg = f'根据提供信息,已查询到{n}本关键词为[{tag}]的本子:' if h_type == 'group': - msg = f'[CQ:at,qq={h_user}]\n根据提供信息,已查询到{n}本关键词为[{h_msg}]的本子:' + msg = f'[CQ:at,qq={h_user}]\n根据提供信息,已查询到{n}本关键词为[{tag}]的本子:' for i in range(n): msg0 = ('\n——————————\n本子链接:https://b-upp.com%s \n本子标题:%s '%(data[i])) msg += msg0 -- cgit v1.2.3