like malachite (atproto-lastfm-importer) but in go and bluer
go spotify tealfm lastfm atproto
at main 39 lines 658 B view raw
1package sync 2 3import ( 4 "log/slog" 5 "time" 6 7 "tangled.org/karitham.dev/lazuli/atproto" 8) 9 10type TrackInfo struct { 11 Name string 12 Artist string 13 PlayedAt time.Time 14} 15 16func trackAttr(rec PlayRecord) slog.Attr { 17 return slog.Group( 18 "track", 19 slog.String("name", rec.TrackName), 20 slog.String("artist", rec.ArtistName()), 21 slog.Time("played_at", rec.PlayedTime.Time), 22 ) 23} 24 25func DIDAttr(did string) slog.Attr { 26 return slog.String("did", did) 27} 28 29func ErrorAttr(err error) slog.Attr { 30 if err == nil { 31 return slog.Attr{} 32 } 33 34 if atproto.IsTransientError(err) { 35 return slog.String("error", err.Error()) 36 } 37 38 return slog.String("error", err.Error()) 39}