Files
zhenxun_bot/zhenxun/plugins/parse_bilibili/__init__.py
T

58 lines
1.9 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.
from nonebot import on_message
from nonebot.plugin import PluginMetadata
from nonebot_plugin_alconna import UniMsg
from nonebot_plugin_session import EventSession
from zhenxun.configs.utils import PluginExtraData, RegisterConfig, Task
from zhenxun.models.group_console import GroupConsole
from zhenxun.models.task_info import TaskInfo
from zhenxun.services.log import logger
from .data_source import Parser
__plugin_meta__ = PluginMetadata(
name="B站转发解析",
description="B站转发解析",
usage="""
usage:
B站转发解析,解析b站分享信息,支持bv,bilibili链接,b站手机端转发卡片,cv,b23.tv,且30秒内内不解析相同url
""".strip(),
extra=PluginExtraData(
author="HibiKier",
version="0.1",
menu_type="其他",
configs=[
RegisterConfig(
module="_task",
key="DEFAULT_BILIBILI_PARSE",
value=True,
default_value=True,
help="被动 B站转发解析 进群默认开关状态",
type=bool,
)
],
tasks=[Task(module="bilibili_parse", name="b站转发解析")],
).dict(),
)
async def _rule(session: EventSession) -> bool:
task = await TaskInfo.get_or_none(module="bilibili_parse")
if not task or not task.status:
logger.debug("b站转发解析被动全局关闭,已跳过...")
return False
if gid := session.id3 or session.id2:
return not await GroupConsole.is_block_task(gid, "bilibili_parse")
return False
_matcher = on_message(priority=1, block=False, rule=_rule)
@_matcher.handle()
async def _(session: EventSession, message: UniMsg):
data = message[0]
if result := await Parser.parse(data, message.extract_plain_text().strip()):
await result.send()
logger.info(f"b站转发解析: {result}", "BILIBILI_PARSE", session=session)