A vibe coded tangled fork which supports pijul.
at sl/spindle-adapters 71 lines 1.3 kB view raw
1package models 2 3import ( 4 "time" 5 6 "github.com/bluesky-social/indigo/atproto/syntax" 7 "tangled.org/core/api/tangled" 8) 9 10type ReactionKind string 11 12const ( 13 Like ReactionKind = "👍" 14 Unlike ReactionKind = "👎" 15 Laugh ReactionKind = "😆" 16 Celebration ReactionKind = "🎉" 17 Confused ReactionKind = "🫤" 18 Heart ReactionKind = "❤️" 19 Rocket ReactionKind = "🚀" 20 Eyes ReactionKind = "👀" 21) 22 23func (rk ReactionKind) String() string { 24 return string(rk) 25} 26 27var OrderedReactionKinds = []ReactionKind{ 28 Like, 29 Unlike, 30 Laugh, 31 Celebration, 32 Confused, 33 Heart, 34 Rocket, 35 Eyes, 36} 37 38func ParseReactionKind(raw string) (ReactionKind, bool) { 39 k, ok := (map[string]ReactionKind{ 40 "👍": Like, 41 "👎": Unlike, 42 "😆": Laugh, 43 "🎉": Celebration, 44 "🫤": Confused, 45 "❤️": Heart, 46 "🚀": Rocket, 47 "👀": Eyes, 48 })[raw] 49 return k, ok 50} 51 52type Reaction struct { 53 ReactedByDid string 54 ThreadAt syntax.ATURI 55 Created time.Time 56 Rkey string 57 Kind ReactionKind 58} 59 60func (r *Reaction) AsRecord() tangled.FeedReaction { 61 return tangled.FeedReaction{ 62 Subject: r.ThreadAt.String(), 63 Reaction: r.Kind.String(), 64 CreatedAt: r.Created.Format(time.RFC3339), 65 } 66} 67 68type ReactionDisplayData struct { 69 Count int 70 Users []string 71}