summaryrefslogtreecommitdiff
path: root/ATRI/plugins/anime_search.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/anime_search.py')
-rw-r--r--ATRI/plugins/anime_search.py104
1 files changed, 53 insertions, 51 deletions
diff --git a/ATRI/plugins/anime_search.py b/ATRI/plugins/anime_search.py
index edbdc91..eb2e26d 100644
--- a/ATRI/plugins/anime_search.py
+++ b/ATRI/plugins/anime_search.py
@@ -46,67 +46,69 @@ def toSimpleString(str):
return "".join(output_str_list)
-@on_command(
- 'anime_search',
- aliases = ['以图搜番'],
- only_to_me = False
+@on_command('anime_search', aliases = ['以图搜番'], only_to_me = False
)
async def _(session: CommandSession):
user = session.event.user_id
msg = session.current_arg.strip()
+ with open('ATRI/plugins/noobList/noobList.json', 'r') as f:
+ data = json.load(f)
+
+ if data[f"{user}"] == str(user):
+ pass
+ else:
+ if not msg:
+ msg = session.get('message', prompt = "请发送一张图片")
+
+ await session.send("开始以图搜番\n(如搜索时间过长或无反应则为图片格式有问题)")
- if not msg:
- msg = session.get('message', prompt = "请发送一张图片")
-
- await session.send("开始以图搜番\n(如搜索时间过长或无反应则为图片格式有问题)")
-
- p = '\\[CQ\\:image\\,file\\=.*?\\,url\\=(.*?)\\]'
-
- img = re.findall(p, msg)
+ p = '\\[CQ\\:image\\,file\\=.*?\\,url\\=(.*?)\\]'
- if img:
- URL = f'https://trace.moe/api/search?url={img[0]}'
+ img = re.findall(p, msg)
- req = await get_bytes(URL)
+ if img:
+ URL = f'https://trace.moe/api/search?url={img[0]}'
- if req:
- data = json.loads(req.decode())
+ req = await get_bytes(URL)
- d = {}
+ if req:
+ data = json.loads(req.decode())
- 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
+ d = {}
- if data['docs'][i]['episode'] == '':
- n = 1
-
+ 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:
- n = data['docs'][i]['episode']
-
- d[toSimpleString(data['docs'][i]['title_chinese'])] = [data['docs'][i]['similarity'],f'第{n}集',f'{int(m)}分{int(s)}秒处']
-
- 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
+ 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)}秒处']
+
+ 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)
- await session.send(msg0)
-
- else:
- await session.send("搜索似乎失败了呢...") \ No newline at end of file
+ else:
+ await session.send("搜索似乎失败了呢...") \ No newline at end of file