zhenxun_bot/zhenxun/plugins/alapi/cover.py

47 lines
1.4 KiB
Python
Raw Normal View History

2024-03-10 00:50:20 +08:00
from nonebot.plugin import PluginMetadata
2024-08-10 02:25:04 +08:00
from nonebot_plugin_alconna import Alconna, Args, Arparma, Image, on_alconna
2024-03-10 00:50:20 +08:00
from nonebot_plugin_session import EventSession
from zhenxun.configs.utils import PluginExtraData
from zhenxun.services.log import logger
2024-08-10 02:25:04 +08:00
from zhenxun.utils.message import MessageUtils
2024-03-10 00:50:20 +08:00
from ._data_source import get_data
cover_url = "https://v2.alapi.cn/api/bilibili/cover"
__plugin_meta__ = PluginMetadata(
name="b封面",
description="快捷的b站视频封面获取方式",
usage="""
b封面 [链接/av/bv/cv/直播id]
示例:b封面 av86863038
""".strip(),
extra=PluginExtraData(
2024-08-05 23:07:17 +08:00
author="HibiKier", version="0.1", menu_type="一些工具"
2024-03-10 00:50:20 +08:00
).dict(),
)
_matcher = on_alconna(
Alconna("b封面", Args["url", str]),
priority=5,
block=True,
)
@_matcher.handle()
async def _(session: EventSession, arparma: Arparma, url: str):
params = {"c": url}
data, code = await get_data(cover_url, params)
if code != 200 and isinstance(data, str):
2024-08-10 02:25:04 +08:00
await MessageUtils.build_message(data).finish(reply_to=True)
2024-03-10 00:50:20 +08:00
data = data["data"] # type: ignore
title = data["title"] # type: ignore
img = data["cover"] # type: ignore
2024-08-10 02:25:04 +08:00
await MessageUtils.build_message([f"title{title}\n", Image(url=img)]).send(
reply_to=True
)
2024-03-10 00:50:20 +08:00
logger.info(
f" 获取b站封面: {title} url{img}", arparma.header_result, session=session
)