async def _(session: CommandSession): user = session.event.user_id group = session.event.group_id if checkNoob(user, group): if sleepTime(): await session.send(sleepTime()) else: await session.send(str(random.randint(1, 6)))
async def _(session: CommandSession): group = session.event.group_id user = session.event.user_id if sleepTime(): await session.send(sleepTime()) else: if checkNoob(user, group): try: with open(Path('.') / 'ATRI' / 'modules' / 'favoIMP' / 'user.json', 'r') as f: data = json.load(f) except: data = {} try: if data[f"{user}"][1] == datetime.date.today().strftime('%y%m%d'): await session.send('咱今天签到过啦~明天再来吧!') return except: pass favoIMP = randint(1,5) try: with open(Path('.') / 'ATRI' / 'modules' / 'favoIMP' / 'user.json', 'r') as f: data = json.load(f) data[f"{user}"] = [f"{int(data[f'{user}'][0]) + favoIMP}", f"{datetime.date.today().strftime('%y%m%d')}"] with open(Path('.') / 'ATRI' / 'modules' / 'favoIMP' / 'user.json', 'w') as f: f.write(json.dumps(data)) f.close() except: data = {} data[f"{user}"] = [f"{favoIMP}", f"{datetime.date.today().strftime('%y%m%d')}"] with open(Path('.') / 'ATRI' / 'modules' / 'favoIMP' / 'user.json', 'w') as f: f.write(json.dumps(data)) f.close() IMP = int(data[f"{user}"][0]) msg0 = f'[CQ:at,qq={user}]\n' msg0 += '签到成功ヾ(≧∇≦*)ゝ\n' msg0 += f'+ 好感度 {favoIMP}|{IMP}\n' if 0 <= IMP < 100: msg0 += '今日もいい日ですよ!~頑張ってください!' elif 100 <= IMP < 250: msg0 += 'アトリが心から応援します!' elif 250 <= IMP < 350: msg0 += 'アトリはあなたを待ちます' elif 350 <= IMP < 400: msg0 += 'わ...わたし...えと...す...' elif 400 <= IMP: msg0 += '好きだあなた好きだ!永遠!' await session.send(msg0)
async def SaucenaoSearch(session: CommandSession): user = session.event.user_id group = session.event.group_id msg = session.current_arg.strip() if checkNoob(user, group): if sleepTime(): await session.send(sleepTime()) else: if checkSwitch(__plugin_name__, group): if not msg: msg = session.get('message', prompt="请发送一张图片") await session.send("开始以图识图") try: p = '\\[CQ\\:image\\,file\\=.*?\\,url\\=(.*?)\\]' img = re.findall(p, msg) task = SauceNAO(api_key=API_KEY) data = task.search(url=img) msg0 = '' try: data = json.loads(data)['results'][0] title = data['data']['title'] pixiv_id = data['data']['pixiv_id'] member_name = data['data']['member_name'] member_id = data['data']['member_id'] similarity = data['header']['similarity'] mini_url = data['header']['thumbnail'] msg0 = f'[CQ:at,qq={user}]' msg0 += f'SauceNAO结果:' msg0 += f'[CQ:image,file={mini_url}]\n' msg0 += f'相似度:{similarity}%\n' msg0 += f'标题:{title}\n' msg0 += f'插画ID:{pixiv_id}\n' msg0 += f'画师:{member_name}\n' msg0 += f'画师ID:{member_id}\n' msg0 += f'直链:https://pixiv.cat/{pixiv_id}.jpg' except: msg = '数据处理失败' if float(similarity) > 70: await session.send(msg0) else: await session.send("找不到相似的图呢...") except Exception: session.finish(errorBack(msg)) else: session.finish('该功能已关闭...')
async def _(session: CommandSession): user = session.event.user_id group = session.event.group_id if checkNoob(user, group): if sleepTime(): await session.send(sleepTime()) else: await session.send( str( random.choice([ '大凶', '大胸', '小凶', '小胸', '凶', '吉', '中吉', '大吉', '特大吉', '超特大吉' ])))
async def _(context): user = context["user_id"] group = context["group_id"] if checkNoob(user, group): if sleepTime(): pass else: if randint(1, 20) == 4: img = choice(['11.jpg', '12.jpg', '23.jpg']) img = os.path.abspath( Path('.') / 'ATRI' / 'data' / 'emoji' / 'senren' / f'{img}') await bot.send_msg(message=f'[CQ:image,file=file:///{img}]', auto_escape=False) # type: ignore else: pass
async def _(context): group = context["group_id"] user = context["user_id"] if sleepTime(): pass else: if checkNoob(user, group): msg = str(context["message"]) print(msg) if "搜图" in msg or "识图" in msg: if checkSwitch("saucenao_search", group): try: pattern = r"CQ:reply,id=(.*?)]" info = re.findall(pattern, msg) msgID = info[0] print(msgID) except: print('ERROR-onMessage') return try: with open( Path('.') / 'ATRI' / 'data' / 'groupData' / f'{group}' / 'msgData.json', 'r') as f: data = json.load(f) except: data = {} if msgID in data.keys(): msgR = data[f"{msgID}"]["msg"] pattern = r"url=(.*?)]" info = re.findall(pattern, msgR) picURL = info[0] try: task = SauceNAO(api_key=API_KEY) data = task.search(url=picURL) msg0 = '' except: await bot.send_msg(group_id=group, message=errorBack('请求数据失败') ) # type: ignore return print(data) try: data = json.loads(data)['results'][0] title = data['data']['title'] pixiv_id = data['data']['pixiv_id'] member_name = data['data']['member_name'] member_id = data['data']['member_id'] similarity = data['header']['similarity'] mini_url = data['header']['thumbnail'] msg0 = f'[CQ:at,qq={user}]' msg0 += f'SauceNAO结果:' msg0 += f'[CQ:image,file={mini_url}]\n' msg0 += f'相似度:{similarity}%\n' msg0 += f'标题:{title}\n' msg0 += f'插画ID:{pixiv_id}\n' msg0 += f'画师:{member_name}\n' msg0 += f'画师ID:{member_id}\n' msg0 += f'直链:https://pixiv.cat/{pixiv_id}.jpg' except: await bot.send_msg(group_id=group, message=errorBack('处理数据失败') ) # type: ignore return if msg0: if float(similarity) > 70: await bot.send_msg(group_id=group, message=msg0 ) # type: ignore else: await bot.send_msg(group_id=group, message='ATRI无法找到相似的图呢...' ) # type: ignore else: await bot.send_msg(group_id=group, message='该功能已关闭...') # type: ignore else: try: with open( Path('.') / 'ATRI' / 'plugins' / 'LearnRepo' / 'LearnRepo.json', 'r') as f: data = json.load(f) except: data = {} if str(msg) in data.keys(): lt = data[f"{msg}"] msg = lt[0] prob = int(lt[1]) res = randint(1, prob) if res == 1: await bot.send_msg(group_id=group, message=msg) # type: ignore
async def AnimeSearch(session: CommandSession): user = session.event.user_id group = session.event.group_id msg = session.current_arg.strip() if checkNoob(user, group): if sleepTime(): await session.send(sleepTime()) else: if checkSwitch(__plugin_name__, group): if not msg: msg = session.get('message', prompt="请发送一张图片") await session.send("开始以图搜番\n(如搜索时间过长或无反应则为图片格式有问题)") p = '\\[CQ\\:image\\,file\\=.*?\\,url\\=(.*?)\\]' img = re.findall(p, msg) if img: URL = f'https://trace.moe/api/search?url={img[0]}' try: req = await get_bytes(URL) except: session.finish(errorBack('请求数据失败')) data = json.loads(req.decode()) try: d = {} for i in range(len(data['docs'])): if data['docs'][i]['title_chinese'] in d.keys(): d[data['docs'][i]['title_chinese']][0] += data[ 'docs'][i]['similarity'] else: m = data['docs'][i]['at'] / 60 s = data['docs'][i]['at'] % 60 if data['docs'][i]['episode'] == '': n = 1 else: n = data['docs'][i]['episode'] d[toSimpleString( data['docs'][i]['title_chinese'])] = [ data['docs'][i]['similarity'], f'第{n}集', f'{int(m)}分{int(s)}秒处' ] except: session.finish(errorBack('处理数据失败')) result = sorted(d.items(), key=lambda x: x[1], reverse=True) t = 0 msg0 = f'[CQ:at,qq={user}]\n根据所提供的图片按照相似度找到{len(d)}个结果:' for i in result: t += 1 lk = ('%.2f%%' % (i[1][0] * 100)) msg = ( f'\n——————————\n({t})\n相似度:{lk}\n动漫名:《{i[0]}》\n时间点:{i[1][1]} {i[1][2]}' ) msg0 += msg await session.send(msg0) else: session.finish('该功能已关闭...')