zhenxun_bot/zhenxun/plugins/what_anime/data_source.py
2024-05-28 03:24:32 +08:00

48 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import time
from zhenxun.services.log import logger
from zhenxun.utils.http_utils import AsyncHttpx
async def get_anime(anime: str) -> str:
s_time = time.time()
url = "https://api.trace.moe/search?anilistInfo&url={}".format(anime)
logger.debug("[info]Now starting get the {}".format(url))
try:
anime_json = (await AsyncHttpx.get(url)).json()
if not anime_json["error"]:
if anime_json == "Error reading imagenull":
return "图像源错误,注意必须是静态图片哦"
repass = ""
# 拿到动漫 中文名
for anime in anime_json["result"][:5]:
synonyms = anime["anilist"]["synonyms"]
for x in synonyms:
_count_ch = 0
for word in x:
if "\u4e00" <= word <= "\u9fff":
_count_ch += 1
if _count_ch > 3:
anime_name = x
break
else:
anime_name = anime["anilist"]["title"]["native"]
episode = anime["episode"]
from_ = int(anime["from"])
m, s = divmod(from_, 60)
similarity = anime["similarity"]
putline = "[ {} ][{}][{}:{}] 相似度:{:.2%}".format(
anime_name,
episode if episode else "?",
m,
s,
similarity,
)
repass += putline + "\n"
return f"耗时 {int(time.time() - s_time)}\n" + repass[:-1]
else:
return f'访问错误 error{anime_json["error"]}'
except Exception as e:
logger.error(f"识番发生错误", e=e)
return "发生了奇怪的错误,那就没办法了,再试一次?"