package agentsimport ("context""github.com/Masterminds/squirrel""github.com/navidrome/navidrome/model")const LocalAgentName = "local"type localAgent struct {ds model.DataStore}func localsConstructor(ds model.DataStore) Interface {return &localAgent{ds}}func (p *localAgent) AgentName() string {return LocalAgentName}func (p *localAgent) GetArtistTopSongs(ctx context.Context, id, artistName, mbid string, count int) ([]Song, error) {top, err := p.ds.MediaFile(ctx).GetAll(model.QueryOptions{Sort: "playCount",Order: "desc",Max: count,Filters: squirrel.And{squirrel.Eq{"artist_id": id},squirrel.Or{squirrel.Eq{"starred": true},squirrel.Eq{"rating": 5},},},})if err != nil {return nil, err}var result []Songfor _, s := range top {result = append(result, Song{Name: s.Title,MBID: s.MbzReleaseTrackID,})}return result, nil}func init() {Register(LocalAgentName, localsConstructor)}