backend/main.go (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
package main
import (
"fmt"
"log"
"net/http"
"reflect"
)
type PlayingInfo struct {
artistName string
recordingName string
releaseName string
recordingUrl string
coverUrl string
}
func main() {
playingInfo := PlayingInfo{}
playingNow, err := getPlayingNow("confuseddbread")
if err != nil {
panic(err)
}
trackMetadata := playingNow.Payload.Listens[0].TrackMetadata
playingInfo.artistName = trackMetadata.ArtistName
playingInfo.recordingName = trackMetadata.TrackName
playingInfo.releaseName = trackMetadata.ReleaseName
metadata, err := getMetadata(trackMetadata.ArtistName, trackMetadata.TrackName, trackMetadata.ReleaseName)
if err != nil {
log.Fatalf("error: %s\n", err)
}
playingInfo.recordingUrl = fmt.Sprintf("https://musicbrainz.org/recording/%s", metadata.RecordingMbid)
coverArt, err := getCover(metadata.ReleaseMbid)
playingInfo.coverUrl = coverArt.Images[0].Image
v := reflect.ValueOf(playingInfo)
k := v.Type()
for i := range v.NumField() {
log.Printf("%s: %s\n", k.Field(i).Name, v.Field(i))
}
http.HandleFunc("/", playingInfo.handler)
log.Println("http://localhost:8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
|