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 Timestamp time.Time } func NewRecord(attrs mpd.Attrs) (*Record, error) { record := Record{ Id: uuid.New(), Title: attrs["Title"], Album: attrs["Album"], Artist: attrs["Artist"], Timestamp: time.Now(), } dur, err := strconv.ParseFloat(attrs["duration"], 32) if err != nil { return nil, err } record.Duration = time.Second * time.Duration(dur) return &record, nil } func (r *Record) EqualAttrs(attrs mpd.Attrs) bool { return r.Title == attrs["Title"] && r.Album == attrs["Album"] && r.Artist == attrs["Artist"] }