diff options
author | Kyomotoi <1172294279@qq.com> | 2021-04-15 14:15:25 +0800 |
---|---|---|
committer | Kyomotoi <1172294279@qq.com> | 2021-04-15 14:15:25 +0800 |
commit | 2349350ba8db8a572a49e931891eaa42a4207df4 (patch) | |
tree | a86a71fd374d54d7fded9ac52d16b3670d0e6a81 /ATRI/plugins/anime-search/__init__.py | |
parent | d03636606de4c2f8c5c163f0e797325c7d182346 (diff) | |
download | ATRI-2349350ba8db8a572a49e931891eaa42a4207df4.tar.gz ATRI-2349350ba8db8a572a49e931891eaa42a4207df4.tar.bz2 ATRI-2349350ba8db8a572a49e931891eaa42a4207df4.zip |
✨🐛⚡️ 一些改动
新增:以图搜图
挖坑:今天吃什么
修复:只响应私聊消息
修复:nsfw部分变量错误
优化:插件名
优化:部分插件代码结构
Diffstat (limited to 'ATRI/plugins/anime-search/__init__.py')
-rw-r--r-- | ATRI/plugins/anime-search/__init__.py | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/ATRI/plugins/anime-search/__init__.py b/ATRI/plugins/anime-search/__init__.py deleted file mode 100644 index 9bf76cb..0000000 --- a/ATRI/plugins/anime-search/__init__.py +++ /dev/null @@ -1,108 +0,0 @@ -import re -import json - -from nonebot.adapters.cqhttp.message import MessageSegment -from nonebot.adapters.cqhttp import Bot, MessageEvent -from nonebot.adapters.cqhttp.message import Message -from nonebot.typing import T_State - -from ATRI.service import Service as sv -from ATRI.rule import is_in_service -from ATRI.exceptions import RequestTimeOut -from ATRI.utils.request import get_bytes - -from .data_source import to_simple_string - - -URL = "https://trace.moe/api/search?url=" - - -__doc__ = """ -以图搜番 -权限组:所有人 -用法: - /anime -""" - -anime_search = sv.on_command( - cmd="anime", - docs=__doc__, - rule=is_in_service('anime') -) - -@anime_search.args_parser # type: ignore -async def _nsfw(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message) - if msg == "算了": - await anime_search.finish('好吧') - - if not msg: - await anime_search.reject('图呢?') - else: - state['msg'] = msg - -@anime_search.handle() -async def _anime_search(bot: Bot, - event: MessageEvent, - state: T_State) -> None: - msg = str(event.message).strip() - if msg: - state["msg"] = msg - -@anime_search.got("msg", prompt="图呢?") -async def _(bot: Bot, - event: MessageEvent, - state: T_State) -> None: - msg = state["msg"] - img = re.findall(r"url=(.*?)]", msg) - if not img: - await anime_search.reject("请发送图片而不是其它东西!!") - - try: - req = await get_bytes(URL + img[0]) - except RequestTimeOut: - raise RequestTimeOut("Request failed!") - - data = json.loads(req)["docs"] - try: - d = {} - for i in range(len(data)): - if data[i]["title_chinese"] in d.keys(): - d[data[i]["title_chinese"]][0] += data[i]["similarity"] - else: - m = data[i]["at"] / 60 - s = data[i]["at"] % 60 - - if not data[i]["episode"]: - n = 1 - else: - n = data[i]["episode"] - - d[to_simple_string(data[i]["title_chinese"])] = [ - data[i]["similarity"], - f"第{n}集", - f"{int(m)}分{int(s)}秒处" - ] - except Exception as err: - raise Exception(f"Invalid data.\n{err}") - - result = sorted( - d.items(), - key=lambda x:x[1], - reverse=True - ) - - t = 0 - - msg0 = f"{MessageSegment.at(event.user_id)}\nResult [{len(d)}]:" - for i in result: - t += 1 - s = "%.2f%%" % (i[1][0] * 100) - msg0 = msg0 + ( - "\n——————————\n" - f"({t}) Similarity: {s}\n" - f"Name: {i[0]}\n" - f"Time: {i[1][1]} {i[1][2]}" - ) - - await anime_search.finish(Message(msg0)) |