diff options
author | Franck Cuny <franck@fcuny.net> | 2021-10-09 18:16:15 -0700 |
---|---|---|
committer | Franck Cuny <franck@fcuny.net> | 2022-06-11 14:32:06 -0700 |
commit | 1898caed6aa8205e56517448405d06fd084ed239 (patch) | |
tree | 73413bc1e65b334d6e798360459ef957c6774f04 /tools/mpd-stats/internal/scrobbler/record.go | |
parent | scrobbler: watch for events and print song details (diff) | |
download | world-1898caed6aa8205e56517448405d06fd084ed239.tar.gz |
scrobbler: initial log record type
Define the type for a log record and add an helper function to create a new record.
Diffstat (limited to 'tools/mpd-stats/internal/scrobbler/record.go')
-rw-r--r-- | tools/mpd-stats/internal/scrobbler/record.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tools/mpd-stats/internal/scrobbler/record.go b/tools/mpd-stats/internal/scrobbler/record.go new file mode 100644 index 0000000..927ed27 --- /dev/null +++ b/tools/mpd-stats/internal/scrobbler/record.go @@ -0,0 +1,34 @@ +package scrobbler + +import ( + "strconv" + "time" + + "github.com/fhs/gompd/v2/mpd" + "github.com/google/uuid" +) + +type Record struct { + Id uuid.UUID + Title string + Album string + Artist string + Duration time.Duration +} + +func NewRecord(attrs mpd.Attrs) (*Record, error) { + record := Record{ + Id: uuid.New(), + Title: attrs["Title"], + Album: attrs["Album"], + Artist: attrs["Artist"], + } + + dur, err := strconv.ParseFloat(attrs["duration"], 32) + if err != nil { + return nil, err + } + + record.Duration = time.Second * time.Duration(dur) + return &record, nil +} |