merge: ui2/t-discover

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei

# Conflicts:
#	packages/adapters/src/tmdb/index.ts
This commit is contained in:
root committed 2026-10-06 18:34:12 +08:00
commit b32d5c028a
29 files changed
+3404 -329

No files matched your search

+28 -10
View File
@@ -1,6 +1,7 @@
import { z } from "zod";
import { MetadataEnrichOutput } from "../capabilities-io.ts";
import { cursorPage, IdParam } from "../common.ts";
import * as discover from "../discover.ts";
import * as execution from "../execution.ts";
import * as identity from "../identity.ts";
import * as libraryVersions from "../library-versions.ts";
@@ -211,24 +212,41 @@ export const libraryApi = {
method: "get",
path: "/discover/bangumi-calendar",
scope: "read",
summary: "bgm.tv 每日放送(周一到周日;缓存 1 小时)",
response: search.DiscoverCalendar,
summary: "bgm.tv 每日放送(周一到周日;请求缓存 6 小时;带本地状态)",
response: discover.DiscoverCalendar,
}),
discoverHot: ep({
discoverTmdb: ep({
method: "get",
path: "/discover/douban-hot",
path: "/discover/tmdb",
scope: "read",
summary: "豆瓣实时热门电影 / 剧集(缓存 1 小时)",
query: search.DiscoverHotQuery,
response: search.DiscoverList,
summary:
"TMDB 发现:流行趋势、热门、正在上映 / 播出、即将上映、高分、按条件筛选、搜索(走 TMDB 请求缓存;带本地状态)",
query: discover.DiscoverTmdbQuery,
response: discover.DiscoverPage,
}),
discoverDouban: ep({
method: "get",
path: "/discover/douban",
scope: "read",
summary: "豆瓣发现:榜单、标签、筛选、搜索(走豆瓣请求缓存,失败不缓存)",
query: discover.DiscoverDoubanQuery,
response: discover.DiscoverPage,
}),
discoverBangumi: ep({
method: "get",
path: "/discover/bangumi",
scope: "read",
summary: "Bangumi 发现:热门趋势、排行、最新、搜索(走 bgm 请求缓存,失败不缓存)",
query: discover.DiscoverBangumiQuery,
response: discover.DiscoverPage,
}),
discoverMatch: ep({
method: "post",
path: "/discover/tmdb-match",
scope: "read",
summary: "豆瓣 / bgm 条目 → TMDB 作品(名称 + 年份匹配,对照 MP 投影);确定的给 match,否则给候选",
body: search.DiscoverMatchRequest,
response: search.DiscoverMatchResult,
summary: "豆瓣 / bgm 条目 → TMDB 作品(名称 + 年份匹配,对照 MP 投影);确定的给 match 并记住,否则给候选",
body: discover.DiscoverMatchRequest,
response: discover.DiscoverMatchResult,
}),
tmdbSeason: ep({
method: "get",