^_^
commit
c9e20526f2
|
@ -0,0 +1,45 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
// api key тут https://www.last.fm/api/accounts
|
||||||
|
const apiKey = "API KEY" // Замените на ваш API-ключ
|
||||||
|
const username = "NAME" // Замените на ваше имя пользователя Last.fm
|
||||||
|
|
||||||
|
type LastFMResponse struct {
|
||||||
|
RecentTracks struct {
|
||||||
|
Track []struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Artist struct {
|
||||||
|
Name string `json:"#text"`
|
||||||
|
} `json:"artist"`
|
||||||
|
Album struct {
|
||||||
|
Name string `json:"#text"`
|
||||||
|
} `json:"album"`
|
||||||
|
Date struct {
|
||||||
|
Unix string `json:"#text"`
|
||||||
|
} `json:"date"`
|
||||||
|
} `json:"track"`
|
||||||
|
} `json:"recenttracks"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func getRecentTracks() {
|
||||||
|
url := fmt.Sprintf("https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=%s&api_key=%s&format=json", username, apiKey)
|
||||||
|
resp, _ := http.Get(url)
|
||||||
|
body, _ := io.ReadAll(resp.Body)
|
||||||
|
var lastFMResponse LastFMResponse
|
||||||
|
json.Unmarshal(body, &lastFMResponse)
|
||||||
|
for _, track := range lastFMResponse.RecentTracks.Track {
|
||||||
|
fmt.Printf("Track: %s, Artist: %s, Album: %s, Date: %s\n", track.Name, track.Artist.Name, track.Album.Name, track.Date.Unix)
|
||||||
|
}
|
||||||
|
resp.Body.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
getRecentTracks()
|
||||||
|
}
|
Loading…
Reference in New Issue