Files

43 lines
1.1 KiB
Python
Raw Permalink Normal View History

"""通用平台视频解析编排层 — B站 / YouTube / Twitter 等"""
from typing import Optional
from nonebot import logger
from nonebot_plugin_alconna import UniMessage
from ..policy import Policy
from ..services.fetchers.video_downloader import download_video
from .sender import PendingMedia, _as_paths
async def handle_universal(
url: str,
is_private: bool,
policy: Policy | None = None,
platform: str | None = None,
) -> tuple[Optional[PendingMedia], Optional[str]]:
"""
下载通用平台视频 → 打包待发送媒体(上传/发送由 sender 按 policy 多级处理)
Returns:
(PendingMedia, public_url) — None 表示下载失败
"""
video_file, title = await download_video(url)
if not video_file:
await UniMessage.text("视频下载失败。").send()
return None, None
logger.info(f"文件路径:{video_file}")
return (
PendingMedia(
files=_as_paths(video_file),
image_post=False,
is_private=is_private,
policy=policy,
platform=platform,
title=title,
),
None,
)