fix(media): 详情页标语只显示简体中文,简中没有时不显示
- adapters 新增 simplifiedChineseTagline:取值语言为繁中 / 非中文、或文字是繁体特有字时不显示;原语言为中文(zh / cn)的作品按简中处理 - TMDB 富详情带回 taglineLanguage;发现页详情的 tagline 按上述口径给出 - 媒体库作品详情新增 displayTagline(存储的标语语言为 null,只能按文字判断);metadata.tagline 存储不变 - 补 adapters 单测与作品详情接口测试 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
1 parent
895c039a40
commit
6549ab92c3
9 files changed
+124
-2
No files matched your search
@@ -1,4 +1,5 @@
|
||||
import { join } from "node:path";
|
||||
import { simplifiedChineseTagline } from "@umt/adapters";
|
||||
import {
|
||||
type AcquisitionPlan,
|
||||
type AcquisitionSlot,
|
||||
@@ -405,6 +406,7 @@ export function registerLibraryRoutes(app: ModuleApp, d: AoDeps) {
|
||||
finishedAt: r.finished_at ? new Date(r.finished_at).toISOString() : null,
|
||||
})),
|
||||
scrape: await latestEntityScrape(d, id),
|
||||
displayTagline: heroTagline(e!.metadata),
|
||||
};
|
||||
return detail;
|
||||
},
|
||||
@@ -642,3 +644,11 @@ export function registerLibraryRoutes(app: ModuleApp, d: AoDeps) {
|
||||
{ tag: TAG },
|
||||
);
|
||||
}
|
||||
|
||||
/** 详情页头部的标语:只显示简体中文(见 simplifiedChineseTagline);存储的标语与语言不变 */
|
||||
function heroTagline(metadata: unknown): string | null {
|
||||
const m = (metadata ?? {}) as Record<string, { value?: unknown; language?: string | null } | undefined>;
|
||||
const text = typeof m.tagline?.value === "string" ? m.tagline.value : null;
|
||||
const orig = typeof m.originalLanguage?.value === "string" ? m.originalLanguage.value : null;
|
||||
return simplifiedChineseTagline(text, m.tagline?.language ?? null, orig);
|
||||
}
|
||||
@@ -3,6 +3,7 @@ import {
|
||||
fetchRichDetail,
|
||||
fetchRichSeason,
|
||||
type MetadataCandidate,
|
||||
simplifiedChineseTagline,
|
||||
TmdbError,
|
||||
type TmdbRichDetail,
|
||||
} from "@umt/adapters";
|
||||
@@ -453,7 +454,7 @@ export function registerSearchRoutes(app: ModuleApp, ctx: ServerContext, d: Sear
|
||||
out.title = rich.title || out.title;
|
||||
out.overview = rich.overview ?? out.overview;
|
||||
out.titleZh = rich.titleZh;
|
||||
out.tagline = rich.tagline;
|
||||
out.tagline = simplifiedChineseTagline(rich.tagline, rich.taglineLanguage, rich.originalLanguage);
|
||||
out.genres = rich.genres;
|
||||
out.voteAverage = rich.voteAverage;
|
||||
out.voteCount = rich.voteCount;
|
||||
|
||||
Reference in new issue
Block a user