diff --git a/internal/import/enrich.go b/internal/import/enrich.go index fcb716d..d79aa42 100644 --- a/internal/import/enrich.go +++ b/internal/import/enrich.go @@ -9,6 +9,7 @@ import ( "git.leaktechnologies.dev/stu/Goondex/internal/db" "git.leaktechnologies.dev/stu/Goondex/internal/model" "git.leaktechnologies.dev/stu/Goondex/internal/scraper/adultemp" + "git.leaktechnologies.dev/stu/Goondex/internal/scraper/merger" ) type Enricher struct { @@ -40,6 +41,7 @@ func (e *Enricher) EnrichPerformer(ctx context.Context, p *model.Performer) { if name == "" { return } + results, err := e.adult.SearchPerformersByName(ctx, name) if err != nil || len(results) == 0 { return @@ -48,12 +50,25 @@ func (e *Enricher) EnrichPerformer(ctx context.Context, p *model.Performer) { if err != nil { return } - merged := e.adult.ConvertPerformerToModel(data) + + // Only merge when names reasonably match + if !merger.ShouldMerge(p.Name, data.Name) { + return + } + + merged := merger.MergePerformerData(p, data) + + // Preserve original source IDs (TPDB format) + merged.Source = p.Source + merged.SourceID = p.SourceID + merged.SourceNumericID = p.SourceNumericID merged.ID = p.ID + store := db.NewPerformerStore(e.db) if err := store.Create(merged); err != nil { log.Printf("enrich: failed to update performer %s: %v", name, err) } + if e.delay > 0 { time.Sleep(e.delay) }