all repos — breadsite @ b460d4815b1c523bfbd453ca9d9fe542d5cdc6cb

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
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
package main

import (
	"fmt"
	"log"
	"net/http"
)

type PlayingInfo struct {
	playing bool
	artistName string
	recordingName string
	releaseName string
	recordingUrl string
	coverUrl string
}

func getInfo() PlayingInfo {
	playingInfo := PlayingInfo{}

	playingNow, err := getPlayingNow("confuseddbread")
	if err != nil {
		panic(err)
	}

	if len(playingNow.Payload.Listens) == 0 {
		playingInfo.playing = false
		return playingInfo
	} else {
		playingInfo.playing = true
	}

	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)
	}
	if metadata.RecordingMbid == "" {
		log.Println("no song metadata found")
		return playingInfo
	}
	playingInfo.recordingUrl = fmt.Sprintf("https://musicbrainz.org/recording/%s", metadata.RecordingMbid)

	coverArt, err := getCover(metadata.ReleaseMbid)
	playingInfo.coverUrl = coverArt

	return playingInfo
}

func main() {
	http.HandleFunc("/api/now-playing", nowPlayingHandler)
	http.HandleFunc("/api/boop", boopHandler)
	log.Println("http://localhost:5050")
    log.Fatal(http.ListenAndServe(":5050", nil))
}