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
|
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) {
|
func (c *Client) GetSession(apiKey, secret, token string) (string, error) {
|
||||||
params := url.Values{}
|
params := url.Values{}
|
||||||
params.Add("method", "auth.getSession")
|
params.Add("method", "auth.getSession")
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ type (
|
|||||||
TopTracks TopTracks `xml:"toptracks"`
|
TopTracks TopTracks `xml:"toptracks"`
|
||||||
SimilarTracks SimilarTracks `xml:"similartracks"`
|
SimilarTracks SimilarTracks `xml:"similartracks"`
|
||||||
SimilarArtists SimilarArtists `xml:"similarartists"`
|
SimilarArtists SimilarArtists `xml:"similarartists"`
|
||||||
|
LovedTracks LovedTracks `xml:"lovedtracks"`
|
||||||
}
|
}
|
||||||
|
|
||||||
Session struct {
|
Session struct {
|
||||||
@@ -99,4 +100,14 @@ type (
|
|||||||
URL string `xml:"url"`
|
URL string `xml:"url"`
|
||||||
Image []Image `xml:"image"`
|
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