From dc7382f16288e99bdffe2577638f129db6cc9f56 Mon Sep 17 00:00:00 2001 From: astravexton Date: Sat, 13 Sep 2025 17:45:28 +0100 Subject: [PATCH 1/2] Update parse.go --- bsky/parse.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/bsky/parse.go b/bsky/parse.go index c600af9..a06f131 100644 --- a/bsky/parse.go +++ b/bsky/parse.go @@ -18,42 +18,50 @@ type Post struct { Facets *[]Facets `json:"facets,omitempty"` CreatedAt time.Time `json:"createdAt"` } + type Ref struct { Link string `json:"$link,omitempty"` } + type Thumb struct { Type string `json:"$type,omitempty"` Ref *Ref `json:"ref,omitempty"` MimeType string `json:"mimeType,omitempty"` Size int `json:"size,omitempty"` } + type External struct { URI string `json:"uri,omitempty"` Thumb *Thumb `json:"thumb,omitempty"` Title string `json:"title,omitempty"` Description string `json:"description,omitempty"` } + type Video struct { Type string `json:"$type,omitempty"` Ref *Ref `json:"ref,omitempty"` MimeType string `json:"mimeType,omitempty"` Size int `json:"size,omitempty"` } + type Image struct { Type string `json:"$type,omitempty"` Ref *Ref `json:"ref,omitempty"` MimeType string `json:"mimeType,omitempty"` Size int `json:"size,omitempty"` } + type AspectRatio struct { Width int `json:"width,omitempty"` Height int `json:"height,omitempty"` } + type Images struct { Alt string `json:"alt,omitempty"` Image *Image `json:"image,omitempty"` AspectRatio *AspectRatio `json:"aspectRatio,omitempty"` } + type Media struct { Type string `json:"$type,omitempty"` External *External `json:"external,omitempty"` @@ -61,16 +69,19 @@ type Media struct { Images *[]Images `json:"images,omitempty"` AspectRatio *AspectRatio `json:"aspectRatio,omitempty"` } + type Record struct { Cid string `json:"cid,omitempty"` URI string `json:"uri,omitempty"` } + type PostRecord struct { Type string `json:"$type,omitempty"` Cid string `json:"cid,omitempty"` URI string `json:"uri,omitempty"` Record *Record `json:"record,omitempty"` } + type Embed struct { Type string `json:"$type,omitempty"` Media *Media `json:"media,omitempty"` @@ -79,35 +90,59 @@ type Embed struct { Record *PostRecord `json:"record,omitempty"` External *External `json:"external,omitempty"` } + type Values struct { Val string `json:"val,omitempty"` } + type Labels struct { Type string `json:"$type,omitempty"` Values *[]Values `json:"values,omitempty"` } + type Root struct { Cid string `json:"cid,omitempty"` URI string `json:"uri,omitempty"` } + +func (r *Root) GetDID() string { + return strings.Split(r.URI, "/")[2] +} + +func (r *Root) GetRKey() string { + return strings.Split(r.URI, "/")[4] +} + type Parent struct { Cid string `json:"cid,omitempty"` URI string `json:"uri,omitempty"` } + +func (p *Parent) GetDID() string { + return strings.Split(p.URI, "/")[2] +} + +func (p *Parent) GetRKey() string { + return strings.Split(p.URI, "/")[4] +} + type Reply struct { Root *Root `json:"root,omitempty"` Parent *Parent `json:"parent,omitempty"` } + type Index struct { ByteEnd int `json:"byteEnd,omitempty"` ByteStart int `json:"byteStart,omitempty"` } + type Features struct { Did string `json:"did,omitempty"` URI string `json:"uri,omitempty"` Tag string `json:"tag,omitempty"` Type string `json:"$type,omitempty"` } + type Facets struct { Type string `json:"$type"` Index *Index `json:"index,omitempty"` @@ -118,6 +153,7 @@ type ParsedEmbeds struct { Type string MimeType string Ref string + Cid string URI string Width int64 Height int64 From 5ff08f5acc7f5669e872551fe7407630f2b05677 Mon Sep 17 00:00:00 2001 From: astravexton Date: Sat, 13 Sep 2025 17:46:14 +0100 Subject: [PATCH 2/2] Change quote post to use deer.social for embeds --- main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 433fcd0..f7ada17 100644 --- a/main.go +++ b/main.go @@ -32,7 +32,7 @@ const ( serverAddr = "wss://jetstream2.us-west.bsky.network/subscribe" // serverAddr = "wss://stream.zio.blue/subscribe" postFormat = "%s\n—\nšŸ¦‹ @%s" - quotePostFormat = "
%s
\nāž”ļø @%s\n—\nšŸ¦‹ @%s" + quotePostFormat = "
%s
\nāž”ļø @%s\n—\nšŸ¦‹ @%s" ) type handler struct { @@ -327,7 +327,7 @@ func (h *handler) ProcessPost(event *models.Event) error { } func buildBlobURL(server string, did string, cid string) string { - return server + "/xrpc/com.atproto.sync.getBlob?did=" + url.QueryEscape(did) + "&cid=" + url.QueryEscape(cid) + return server + "/xrpc/com.atproto.sync.getBlob?did=" + url.QueryEscape(did) + "&cid=" + cid } func getLink(event *models.Event) (string, string) {