diff options
Diffstat (limited to 'ATRI/plugins/rich/__init__.py')
-rw-r--r-- | ATRI/plugins/rich/__init__.py | 93 |
1 files changed, 45 insertions, 48 deletions
diff --git a/ATRI/plugins/rich/__init__.py b/ATRI/plugins/rich/__init__.py index 9d5d6a9..cd4c5bd 100644 --- a/ATRI/plugins/rich/__init__.py +++ b/ATRI/plugins/rich/__init__.py @@ -1,7 +1,10 @@ import re import json +from random import choice from aiohttp.client import ClientSession + from nonebot.adapters.cqhttp import Bot, MessageEvent +from nonebot.adapters.cqhttp.message import MessageSegment from ATRI.service import Service as sv from ATRI.utils.request import get_bytes @@ -11,6 +14,10 @@ from .data_source import dec temp_list = [] +img_url = [ + "https://cdn.jsdelivr.net/gh/Kyomotoi/CDN@master/project/ATRI/fkrich.png", + "https://cdn.jsdelivr.net/gh/Kyomotoi/CDN@master/project/ATRI/xixi.jpg" +] bilibili_rich = sv.on_message() @@ -18,59 +25,49 @@ bilibili_rich = sv.on_message() @bilibili_rich.handle() async def _bilibili_rich(bot: Bot, event: MessageEvent) -> None: global temp_list - msg = str(event.raw_message).replace("\\", "") - bv = False - - if "qqdocurl" not in msg: - if "av" in msg: - try: + try: + msg = str(event.raw_message).replace("\\", "") + bv = False + + if "qqdocurl" not in msg: + if "av" in msg: av = re.findall(r"(av\d+)", msg)[0].replace('av', '') - except: - return - else: - try: + else: bv = re.findall(r"(BV\w+)", msg) av = str(dec(bv[0])) - except: - return - else: - patt = r"(?:(?:https?|ftp):\/\/)?[\w/\-?=%.]+\.[\w/\-&?=%.]+" - bv_url = re.findall(patt, msg) - bv_url = bv_url[3] - async with ClientSession() as session: - async with session.get( - url=bv_url) as r: - bv = re.findall(r"(BV\w+)", str(r.url)) - av = dec(bv[0]) - - if not bv: - if "av" in msg: - try: + else: + patt = r"(?:(?:https?|ftp):\/\/)?[\w/\-?=%.]+\.[\w/\-&?=%.]+" + bv_url = re.findall(patt, msg) + bv_url = bv_url[3] + async with ClientSession() as session: + async with session.get(url=bv_url) as r: + bv = re.findall(r"(BV\w+)", str(r.url)) + av = dec(bv[0]) + + if not bv: + if "av" in msg: av = re.findall(r"(av\d+)", msg)[0].replace('av', '') - except: + else: return - else: + + if count_list(temp_list, av) == 4: + await bot.send(event, "你是怕别人看不到么发这么多次?") + temp_list = del_list_aim(temp_list, av) return - - if count_list(temp_list, av) == 4: - await bot.send(event, "你是怕别人看不到么发这么多次?") - temp_list = del_list_aim(temp_list, av) - return - - temp_list.append(av) - - try: + + temp_list.append(av) + URL = f"https://api.kyomotoi.moe/api/bilibili/v2/?aid={av}" - except: + data = json.loads(await get_bytes(URL))['data'] + repo = ( + f"{data['bvid']} INFO:\n" + f"Title: {data['title']}\n" + f"Link: {data['short_link']}\n" + "にまねげぴのTencent rich!" + ) + await bot.send( + event, + MessageSegment.image(file=choice(img_url))) + await bilibili_rich.finish(repo) + except BaseException: return - data = json.loads(await get_bytes(URL))['data'] - repo = ( - f"{av} INFO:\n" - f"Title: {data['title']}\n" - f"Bid: {data['bvid']}\n" - f"View: {data['stat']['view']} Like: {data['stat']['like']}\n" - f"Coin: {data['stat']['coin']} Share: {data['stat']['share']}\n" - f"Link: {data['short_link']}\n" - "にまねげぴのTencent rich!" - ) - await bilibili_rich.finish(repo) |