mirror of https://github.com/stashapp/stash.git
Tagger match performer by alias (#4182)
This commit is contained in:
parent
409f8fc70c
commit
e5af37efbc
|
@ -5,11 +5,13 @@ import (
|
|||
"strconv"
|
||||
|
||||
"github.com/stashapp/stash/pkg/models"
|
||||
"github.com/stashapp/stash/pkg/performer"
|
||||
"github.com/stashapp/stash/pkg/studio"
|
||||
"github.com/stashapp/stash/pkg/tag"
|
||||
)
|
||||
|
||||
type PerformerFinder interface {
|
||||
models.PerformerQueryer
|
||||
FindByNames(ctx context.Context, names []string, nocase bool) ([]*models.Performer, error)
|
||||
FindByStashID(ctx context.Context, stashID models.StashID) ([]*models.Performer, error)
|
||||
}
|
||||
|
@ -47,9 +49,17 @@ func ScrapedPerformer(ctx context.Context, qb PerformerFinder, p *models.Scraped
|
|||
return err
|
||||
}
|
||||
|
||||
if len(performers) != 1 {
|
||||
// ignore - cannot match
|
||||
return nil
|
||||
if performers == nil || len(performers) != 1 {
|
||||
// try matching a single performer by exact alias
|
||||
performers, err = performer.ByAlias(ctx, qb, *p.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if performers == nil || len(performers) != 1 {
|
||||
// ignore - cannot match
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
id := strconv.Itoa(performers[0].ID)
|
||||
|
|
|
@ -41,3 +41,24 @@ func CountByAppearsWith(ctx context.Context, r models.PerformerQueryer, id int)
|
|||
|
||||
return r.QueryCount(ctx, filter, nil)
|
||||
}
|
||||
|
||||
func ByAlias(ctx context.Context, r models.PerformerQueryer, alias string) ([]*models.Performer, error) {
|
||||
f := &models.PerformerFilterType{
|
||||
Aliases: &models.StringCriterionInput{
|
||||
Value: alias,
|
||||
Modifier: models.CriterionModifierEquals,
|
||||
},
|
||||
}
|
||||
|
||||
ret, count, err := r.Query(ctx, f, nil)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if count > 0 {
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue