like malachite (atproto-lastfm-importer) but in go and bluer
go
spotify
tealfm
lastfm
atproto
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}