aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2021-10-10 11:47:52 -0700
committerFranck Cuny <franck@fcuny.net>2021-10-10 11:47:52 -0700
commitb5c00edf16716e4398c5ce0827164648f203e8d6 (patch)
treeeecd8e607d0cf753e892981c418866c26c108ee0
parentscrobbler: add functions to create and run it (diff)
downloadx-b5c00edf16716e4398c5ce0827164648f203e8d6.tar.gz
mpd-stats: create and run the scrobbler
-rw-r--r--cmd/mpd-scrobbler/main.go43
1 files changed, 4 insertions, 39 deletions
diff --git a/cmd/mpd-scrobbler/main.go b/cmd/mpd-scrobbler/main.go
index ba7bb05..3540807 100644
--- a/cmd/mpd-scrobbler/main.go
+++ b/cmd/mpd-scrobbler/main.go
@@ -3,7 +3,6 @@ package main
import (
"log"
- "golang.fcuny.net/mpd-stats/internal/mpd"
"golang.fcuny.net/mpd-stats/internal/scrobbler"
)
@@ -11,50 +10,16 @@ func main() {
net := "tcp"
addr := "localhost:6600"
- c, err := mpd.NewPlayer(net, addr)
+ s, err := scrobbler.NewScrobbler(net, addr)
if err != nil {
log.Fatalf("failed to create a client: %v", err)
}
defer func() {
- if err := c.Close(); err != nil {
- log.Fatalf("failed to close the player: %v", err)
+ if err := s.Close(); err != nil {
+ log.Fatalf("failed to close the scrobbler: %v", err)
}
}()
- var (
- currentRecord *scrobbler.Record
- previousRecord *scrobbler.Record
- )
- for {
- e := <-c.Watcher.Event
- if e != "" {
- attrs, err := c.Client.CurrentSong()
- if err != nil {
- log.Fatalf("could not get current song: %v", err)
- }
-
- if currentRecord == nil {
- currentRecord, err = scrobbler.NewRecord(attrs)
- if err != nil {
- log.Fatalf("could not create a log: %v", err)
- }
- log.Printf("we're playing %s/%s/%s [%s]\n", currentRecord.Artist, currentRecord.Album, currentRecord.Title, currentRecord.Duration)
- previousRecord = currentRecord
- continue
- }
-
- if currentRecord.Title != attrs["Title"] || currentRecord.Artist != attrs["Artist"] || currentRecord.Album != attrs["Album"] {
- currentRecord, err = scrobbler.NewRecord(attrs)
- if err != nil {
- log.Fatalf("could not create a log: %v", err)
- }
- }
-
- if currentRecord.Id != previousRecord.Id {
- log.Printf("we're playing %s/%s/%s [%s]\n", currentRecord.Artist, currentRecord.Album, currentRecord.Title, currentRecord.Duration)
- previousRecord = currentRecord
- }
- }
- }
+ s.Run()
}