summaryrefslogtreecommitdiff
path: root/ATRI/plugins/rich/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/rich/__init__.py')
-rw-r--r--ATRI/plugins/rich/__init__.py76
1 files changed, 16 insertions, 60 deletions
diff --git a/ATRI/plugins/rich/__init__.py b/ATRI/plugins/rich/__init__.py
index 476eb88..87a2b02 100644
--- a/ATRI/plugins/rich/__init__.py
+++ b/ATRI/plugins/rich/__init__.py
@@ -1,70 +1,26 @@
-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
-from ATRI.utils.limit import is_too_exciting
-
-from .data_source import dec
+from ATRI.utils.limit import FreqLimiter
+from .data_source import Rich
-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",
-]
+_rich_flmt = FreqLimiter(2)
-bilibili_rich = sv.on_message()
+bili_rich = Rich().on_message("小程序爪巴", block=False)
-@bilibili_rich.handle()
-async def _bilibili_rich(bot: Bot, event: MessageEvent) -> None:
- global temp_list
+@bili_rich.handle()
+async def _fk_bili(bot: Bot, event: MessageEvent):
+ user_id = event.get_user_id()
+ if not _rich_flmt.check(user_id):
+ return
+
+ msg = str(event.message)
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", "")
- else:
- bv = re.findall(r"(BV\w+)", msg)
- av = str(dec(bv[0]))
- 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", "")
- else:
- return
-
- user = event.user_id
- check = is_too_exciting(user, 1, 10)
- if not check:
- return
-
- URL = f"https://api.kyomotoi.moe/api/bilibili/v2/?aid={av}"
- 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)
+ result, is_ok = await Rich().fk_bili(msg)
except BaseException:
return
+ if not is_ok:
+ return
+ _rich_flmt.start_cd(user_id)
+ await bili_rich.finish(result)