"""站点适配层。 一个站点适配器只做三件事:**发现入口 bundle**、**从 bundle 里把资源清单抠出来**、**把逻辑名解析成 可下载的 URL**。通用管线(选择场景、落盘、自检)不认站点,只认这里吐出的数据结构——将来接别的 网站,新增一个同形状的模块即可。 """ from __future__ import annotations from . import mihoyo __all__ = ["mihoyo", "for_url", "SITE_MODULES"] SITE_MODULES = [mihoyo] def for_url(url: str) -> mihoyo.Site | None: """按 URL 选站点适配器;没有匹配的返回 None。""" for module in SITE_MODULES: site = module.match(url) if site is not None: return site return None