Files
UHD_Media_Tool/apps/web/app/components/media/external-links.ts
T

24 lines
1.0 KiB
TypeScript

// 外部身份 → 外站链接(媒体详情头部):TMDB / IMDb / TVDB / Wikidata。只拼公开地址,不带任何凭证。
export function externalLinks(ids: {
tmdb?: { type: "movie" | "tv"; id: string } | null;
imdb?: string | null;
tvdb?: string | null;
wikidata?: string | null;
tvdbKind?: "movie" | "series";
}): { label: string; href: string }[] {
const out: { label: string; href: string }[] = [];
if (ids.tmdb && /^\d+$/.test(ids.tmdb.id))
out.push({ label: "TMDB", href: `https://www.themoviedb.org/${ids.tmdb.type}/${ids.tmdb.id}` });
if (ids.imdb && /^tt\d+$/.test(ids.imdb))
out.push({ label: "IMDb", href: `https://www.imdb.com/title/${ids.imdb}/` });
if (ids.tvdb && /^\d+$/.test(ids.tvdb))
out.push({
label: "TVDB",
href: `https://thetvdb.com/dereferrer/${ids.tvdbKind ?? (ids.tmdb?.type === "movie" ? "movie" : "series")}/${ids.tvdb}`,
});
if (ids.wikidata && /^Q\d+$/.test(ids.wikidata))
out.push({ label: "Wikidata", href: `https://www.wikidata.org/wiki/${ids.wikidata}` });
return out;
}