feat(lastfm): add user get loved tracks method
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -12,6 +12,7 @@ type (
|
||||
TopTracks TopTracks `xml:"toptracks"`
|
||||
SimilarTracks SimilarTracks `xml:"similartracks"`
|
||||
SimilarArtists SimilarArtists `xml:"similarartists"`
|
||||
LovedTracks LovedTracks `xml:"lovedtracks"`
|
||||
}
|
||||
|
||||
Session struct {
|
||||
@@ -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"`
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user