feat(identity): 豆瓣 / bgm.tv 辅助信息源与发现页

- adapters/meta:bgm.tv 官方 API(条目 / 搜索 / 每日放送)与豆瓣移动版接口(条目 / 实时热门)
- 识别升级链:豆瓣条目缓存没有时在线查;AniBT 的 bgm ID、公开 BT 站标题搜 bgm → 名称 + 年份匹配 TMDB(季条目去季名与年份)
- 条目缓存 30 天,查不到 6 小时负缓存;测试进程缺省不出外网
- 发现页:bgm 每日放送、豆瓣热门电影 / 剧集,点条目匹配 TMDB 作品

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-10-02 21:30:16 +08:00
1 parent b8876542b8
commit 709414778e
23 files changed
+958 -31

No files matched your search

+2 -2
View File
@@ -29,11 +29,11 @@ describe("控制台导航", () => {
expect(ACQUIRE_GROUP_TITLE).toBe("获取");
expect(NAV_GROUPS.map((g) => g.items.map((i) => i.label))).toEqual([
["首页", "计划", "智能体会话"],
["站点", "订阅", "规则"],
["站点", "发现", "订阅", "规则"],
["下载面板", "整理记录", "文件管理", "媒体库"],
["任务", "设置", "审计", "运行状态"],
]);
expect(NAV_ITEMS).toHaveLength(14);
expect(NAV_ITEMS).toHaveLength(15);
expect(NAV_ITEMS.map((i) => i.to)).not.toContain("/console/sources");
expect(new Set(NAV_ITEMS.map((i) => i.to)).size).toBe(NAV_ITEMS.length);
expect(NAV_ITEMS.every((i) => i.to.startsWith("/console"))).toBe(true);
+2
View File
@@ -2,6 +2,7 @@ import {
Bot,
CalendarClock,
CalendarCog,
Compass,
Download,
FileStack,
FolderTree,
@@ -76,6 +77,7 @@ export const NAV_GROUPS: NavGroup[] = [
icon: Globe,
description: "PT 站、公开 BT 站与 RSS 源:账号、资源与 RSS",
},
{ to: "/console/discover", label: "发现", icon: Compass, description: "bgm.tv 每日放送与豆瓣热门" },
{ to: "/console/subscriptions", label: "订阅", icon: CalendarClock, description: "单次收录与持续追踪" },
{ to: "/console/rules", label: "规则", icon: ListChecks, description: "收录策略与偏好标签" },
],