Skip to content

feat(utils): 提取 detect_platform helper,集中 URL 到平台的识别逻辑 #450

Description

@EricWang1358

问题 / Feature request

�pp/validators/video_url_validator.py 中的 is_supported_video_url(url) 只能返回 �ool,调用方若想同时知道是哪个平台,要么自己重写正则,要么额外 urlparse 一遍。这让前后端跨工作区(�ackend / BillNote_frontend / BillNote_extension)复用同一份平台识别逻辑时出现重复代码:前端 platform.ts / 扩展 platform.ts 各自维护了一份正则表。

期望

  • 在 �pp/utils/url_parser.py 中新增 detect_platform(url) -> Optional[str](返回 "bilibili" | "youtube" | "douyin" | "kuaishou" | None);
  • 让 is_supported_video_url 复用它,保持单一数据源;
  • 把正则表 SUPPORTED_PLATFORMS 抽到 url_parser.py,validator 与新 helper 都引用。

为什么建议独立 PR

  • 改动面小(单个文件加约 20 行,加 1 个测试文件),与 bcut / kuaishou / docker 三个 PR 完全正交。
  • 这次为了避免与它们在合并时产生冲突,先单独立 issue 跟踪,后续单独再开 PR。

关联

  • 见 BiliNote CLAUDE.md "架构" 一节:浏览器扩展 src/logic/platform.ts 和后端 �alidators/video_url_validator.py 是镜像实现,确实有重复。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions