diff options
Diffstat (limited to 'ATRI/plugins/rich')
| -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) | 
