mirror of
https://github.com/truewhile/MeBox.git
synced 2026-10-06 13:26:38 +08:00
fix(scrape): 单集名不再覆盖整剧 original_name 修复合集被拆集 + 媒体库页新增单库修复重刮
- 根因: 单集刮削把 TMDB episode.Name 写入 original_name(应为整剧原名), 导致同剧每集 original_name 不同, 合集分组键回退到标题时被拆成多集无法合并。 移除该覆盖, 保留单集 overview/剧照/评分/时长回填(不影响合集键)。 - 新增 RepairAndRescrapeLibrary 服务方法 + POST /admin/libraries/:id/repair-rescrape 路由 + 媒体库页「修复+重刮本库」按钮, 可按库单独触发修复(回填占位符外部 ID)并重刮, 既修空 ID 又借重刮覆盖此前被单集名污染的 original_name。
This commit is contained in:
@@ -489,8 +489,9 @@ func TestEnrichOneWritesTMDbEpisodeMetadata(t *testing.T) {
|
||||
if err := repos.DB.First(&got, "id = ?", media.ID).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got.OriginalName != "任务代号: 猫" || got.Overview != "单集剧情" {
|
||||
t.Fatalf("episode metadata not saved: original=%q overview=%q", got.OriginalName, got.Overview)
|
||||
// 单集专属信息(简介/剧照/评分/时长)应回填到该集行。
|
||||
if got.Overview != "单集剧情" {
|
||||
t.Fatalf("episode overview not saved: overview=%q", got.Overview)
|
||||
}
|
||||
if !strings.HasSuffix(got.BackdropURL, "/images/w500/still.jpg") || got.DurationSec != 24*60 {
|
||||
t.Fatalf("episode still/runtime not saved: backdrop=%q duration=%d", got.BackdropURL, got.DurationSec)
|
||||
@@ -498,6 +499,11 @@ func TestEnrichOneWritesTMDbEpisodeMetadata(t *testing.T) {
|
||||
if got.Rating < 9.09 || got.Rating > 9.11 {
|
||||
t.Fatalf("episode rating = %v, want 9.1", got.Rating)
|
||||
}
|
||||
// original_name 必须保持「整剧原名」,绝不能被单集名(任务代号: 猫)覆盖,
|
||||
// 否则同剧每集 original_name 不同会导致合集被拆成多集无法合并。
|
||||
if got.OriginalName != "SPY×FAMILY" {
|
||||
t.Fatalf("original_name should stay series-level, got %q (episode name must not overwrite it)", got.OriginalName)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnrichOneRejectsWrongYearMatchFromSeriesFolder(t *testing.T) {
|
||||
@@ -701,6 +707,7 @@ func newTestScraper(t *testing.T) (*ScraperService, *repository.Container, func(
|
||||
"results": []map[string]any{{
|
||||
"id": 12345,
|
||||
"name": "间谍过家家",
|
||||
"original_name": "SPY×FAMILY",
|
||||
"overview": "测试简介",
|
||||
"poster_path": "/poster.jpg",
|
||||
"backdrop_path": "/backdrop.jpg",
|
||||
|
||||
Reference in New Issue
Block a user