Skip to content

Commit

Permalink
feat(lastfm): add user get loved tracks method
Browse files Browse the repository at this point in the history
  • Loading branch information
sentriz committed Sep 25, 2023
1 parent d203cc2 commit 9026c9e
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
13 changes: 13 additions & 0 deletions scrobble/lastfm/client.go
Expand Up @@ -122,6 +122,19 @@ func (c *Client) ArtistGetSimilar(apiKey string, artistName string) (SimilarArti
return resp.SimilarArtists, nil
}

func (c *Client) UserGetLovedTracks(apiKey string, userName string) (LovedTracks, error) {
params := url.Values{}
params.Add("method", "user.getLovedTracks")
params.Add("api_key", apiKey)
params.Add("user", userName)
params.Add("limit", "1000") // TODO: paginate
resp, err := c.makeRequest("GET", params)
if err != nil {
return LovedTracks{}, fmt.Errorf("making lovedTracks users GET: %w", err)
}
return resp.LovedTracks, nil
}

func (c *Client) GetSession(apiKey, secret, token string) (string, error) {
params := url.Values{}
params.Add("method", "auth.getSession")
Expand Down
11 changes: 11 additions & 0 deletions scrobble/lastfm/model.go
Expand Up @@ -12,6 +12,7 @@ type (
TopTracks TopTracks `xml:"toptracks"`
SimilarTracks SimilarTracks `xml:"similartracks"`
SimilarArtists SimilarArtists `xml:"similarartists"`
LovedTracks LovedTracks `xml:"lovedtracks"`
}

Session struct {
Expand Down Expand Up @@ -99,4 +100,14 @@ type (
URL string `xml:"url"`
Image []Image `xml:"image"`
}

TrackWithArtist struct {
Track
Artist Artist `xml:"artist"`
}

LovedTracks struct {
XMLName xml.Name `xml:"lovedtracks"`
Tracks []TrackWithArtist `xml:"track"`
}
)

0 comments on commit 9026c9e

Please sign in to comment.