all repos — breadsite @ e2a4208da37b8e81e7033f183b6a381a28665134

Unnamed repository; edit this file 'description' to name the repository.

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))
}