Skip to content

feat: 点播源目录浏览、筛选与滚动分页 - #212

Open
taom wants to merge 1 commit into
MoonTechLab:mainfrom
taom:feat/source-catalog-browse
Open

taom wants to merge 1 commit into
MoonTechLab:mainfrom
taom:feat/source-catalog-browse

Conversation

@taom

@taom taom commented Nov 10, 2026 •

Copy link
Copy Markdown

问题与行为

当前界面以关键词搜索和第三方推荐为主,无法直接按点播源浏览其目录。新增 /browse 与桌面/手机导航入口:选择已启用的点播源、筛选源站分类、滚动读取后续真实目录页,点击影片进入现有播放器。

  • 使用源站分类与分页元数据;按 ID 去重并保留源站首次出现的顺序。切换源、分类或片名查询时取消旧请求并隔离结果。
  • 加载下一页失败时保留卡片,可重试;提供手动“加载更多”回退。空页/重复页停止,连续三页没有可显示内容时暂停自动读取,避免后台扫描整个目录。
  • 片名搜索查询源站目录。年份、语言、地区以及片名/年份/更新时间排序仅作用于已加载内容,界面明确标注范围;不假设所有资源站支持全目录排序/过滤。
  • 复用现有账号权限、内容过滤、封面与播放器。分类缺失时仍可浏览全部列表。服务端短缓存有容量上限,请求有超时与参数校验。

验证

  • 干净上游分支的 TypeScript、pnpm lint:strict 与 pnpm build 均通过。
  • 受影响单元测试 12 项通过、零跳过。
  • 同版本应用生产构建通过;新目录/筛选功能已在隔离候选上验证。
  • 目录请求仅接受当前用户有权访问的已配置源 key;不接受任意 URL,不更改用户/源配置。

同一功能实现通过两应用的 26 项沙箱 Chromium 检查:真实分类从 20 增至 40 条、换源、390px 布局、实际 1080p 播放,以及独立模拟的重叠/末页、重复页、加载失败重试、旧源/旧分类响应竞态、无 IntersectionObserver、缺少分类、片名查询、组合筛选、排序不改动分页顺序、连续无匹配页的自动请求上限。模拟数据仅用于失败/竞态检查,真实播放单独验证。

此 PR 仅包含该功能及测试,不含个人部署、源列表、账号、版本、推荐数量或其他本地定制,不新增运行依赖。

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants