Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
1.1 kB · 47 lines
Go
at spaces
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package main
import ( "bytes" "encoding/json" "fmt"
"tangled.org/bnewbold.net/cobalt/cmd/labelmaker/store"
comatproto "github.com/bluesky-social/indigo/api/atproto" "github.com/bluesky-social/indigo/atproto/labeling" "github.com/bluesky-social/indigo/events" cbg "github.com/whyrusleeping/cbor-gen")
func rowToMessage(row store.Label) (*LabelsMessage, error) {
var lbl labeling.Label if err := json.Unmarshal(row.Data, &lbl); err != nil { return nil, err }
def := lbl.ToLexicon() lsl := comatproto.LabelSubscribeLabels_Labels{ Labels: []*comatproto.LabelDefs_Label{&def}, Seq: int64(row.ID), }
header := events.EventHeader{ Op: events.EvtKindMessage, MsgType: "#labels", } var buf bytes.Buffer cborWriter := cbg.NewCborWriter(&buf) if err := header.MarshalCBOR(cborWriter); err != nil { return nil, fmt.Errorf("failed to write CBOR header: %w", err) } if err := lsl.MarshalCBOR(cborWriter); err != nil { return nil, fmt.Errorf("failed to write CBOR frame: %w", err) }
msg := LabelsMessage{ Seq: int64(row.ID), Frame: buf.Bytes(), } return &msg, nil}