feat(sites): 公开 BT 站详情(简介、文件清单、bgm 条目);修 AniBT 资源 ID 带 - 时判非法

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-10-03 00:43:25 +08:00
1 parent 06ba0711e2
commit c29dbb4376
12 files changed
+464 -9

No files matched your search

@@ -24,6 +24,8 @@ export interface DetailIds {
imdbId?: string;
doubanId?: string;
tmdb?: { type: "movie" | "tv"; id: string };
/** 公开 BT 站简介 / 番组页里的 bgm.tv 条目 */
bangumiId?: string;
}
export async function saveDetailPage(
@@ -42,6 +44,7 @@ export async function saveDetailPage(
...(page.imdbId ? { imdbId: page.imdbId } : {}),
...(page.doubanId ? { doubanId: page.doubanId } : {}),
...(page.tmdb ? { tmdb: page.tmdb } : {}),
...(page.bangumiId ? { bangumiId: page.bangumiId } : {}),
};
await sql`update source_release set raw = raw || jsonb_build_object('_detail', ${JSON.stringify(ids)}::jsonb)
where id = ${srId}`.execute(exec);
@@ -152,6 +155,7 @@ export function siteExplicitIds(
add("imdb", r._site?.imdbId);
add("douban", r._detail?.doubanId);
add("douban", r._site?.doubanId);
add("bangumi", r._detail?.bangumiId);
add("bangumi", r._site?.bangumiId);
if (r._detail?.tmdb) add("tmdb", r._detail.tmdb.id, r._detail.tmdb.type);
return out;
@@ -366,6 +366,13 @@ describe.skipIf(!pg)("ID-3 识别升级链:详情页 ID", () => {
});
await resolveRelease(h.rt, { sourceReleaseId: r2.id, trigger: "manual" });
expect(metaRequests.length).toBe(n);
// 详情里的 bgm 条目(蜜柑番组页 / 简介链接)同样用上
const rd = await release(pub.id, "rel_A9", "[Nix-Raws] Sousou no Frieren S2 - 07 [1080p]", {
_detail: { bangumiId: "515759" },
});
await h.db.updateTable("source_release").set({ detail_fetched_at: new Date() }).where("id", "=", rd.id).execute();
const resd = await resolveRelease(h.rt, { sourceReleaseId: rd.id, trigger: "manual" });
expect(await tmdbIdOf(resd.mediaEntityId!)).toBe("990031");
const r3 = await release(pub.id, "rel_A3", "[SubsPlease] Sousou no Frieren - 03 (1080p)");
const res3 = await resolveRelease(h.rt, { sourceReleaseId: r3.id, trigger: "manual" });