collection of golang services under the Red Dwarf umbrella server.reddwarf.app
bluesky reddwarf microcosm appview
15
fork

Configure Feed

Select the types of activity you want to include in your feed.

PostView_Embed nest adjust

+44 -17
+2 -2
main.go
··· 408 408 go func(i int, raw string) { 409 409 defer wg.Done() 410 410 411 - post, _, _ := appbskyfeeddefs.PostView(ctx, raw, sl, cs, BSKYIMAGECDN_URL, viewer, false) 411 + post, _, _ := appbskyfeeddefs.PostView(ctx, raw, sl, cs, BSKYIMAGECDN_URL, viewer, 2) 412 412 413 413 results[i].view = post 414 414 }(i, raw) ··· 537 537 skeletonposts, 538 538 20, 539 539 func(ctx context.Context, raw *appbsky.FeedDefs_SkeletonFeedPost) (*appbsky.FeedDefs_FeedViewPost, error) { 540 - post, _, err := appbskyfeeddefs.PostView(ctx, raw.Post, sl, cs, BSKYIMAGECDN_URL, viewer, false) 540 + post, _, err := appbskyfeeddefs.PostView(ctx, raw.Post, sl, cs, BSKYIMAGECDN_URL, viewer, 2) 541 541 if err != nil { 542 542 return nil, err 543 543 }
+33 -9
shims/lex/app/bsky/feed/defs/embed.go
··· 2 2 3 3 import ( 4 4 "context" 5 + "fmt" 5 6 "log" 6 7 7 8 "github.com/bluesky-social/indigo/api/atproto" ··· 24 25 }} 25 26 } 26 27 27 - func PostView_Embed(ctx context.Context, postaturi string, feedPost *appbsky.FeedPost, sl *microcosm.MicrocosmClient, cs *microcosm.MicrocosmClient, imgcdn string, viewer *utils.DID) (*appbsky.FeedDefs_PostView_Embed, error) { 28 + func PostView_Embed(ctx context.Context, postaturi string, feedPost *appbsky.FeedPost, sl *microcosm.MicrocosmClient, cs *microcosm.MicrocosmClient, imgcdn string, viewer *utils.DID, disableTripleNestedRecord int) (*appbsky.FeedDefs_PostView_Embed, error) { 29 + log.Println("(PostView_Embed) hey its: " + postaturi + " at depth: " + fmt.Sprint(disableTripleNestedRecord)) 28 30 if feedPost.Embed == nil { 29 31 return nil, nil 30 32 } ··· 62 64 embedExternal := EmbedExternalViewExtractor(ctx, aturi, feedPost.Embed.EmbedExternal, sl, cs, imgcdn, viewer) 63 65 return embedExternal, nil 64 66 } 65 - if feedPost.Embed.EmbedRecord != nil { 67 + if feedPost.Embed.EmbedRecord != nil && disableTripleNestedRecord > 0 { 66 68 //return nil, nil 67 69 // sigh this is a big one 68 70 //embedType = "EmbedRecord" ··· 91 93 }); 92 94 */ 93 95 94 - var record *appbsky.EmbedRecord_View_Record = EmbedRecordViewExtractor(ctx, feedPost.Embed.EmbedRecord.Record, sl, cs, imgcdn, viewer) 96 + var record *appbsky.EmbedRecord_View_Record = EmbedRecordViewExtractor(ctx, feedPost.Embed.EmbedRecord.Record, sl, cs, imgcdn, viewer, disableTripleNestedRecord) 95 97 if record == nil { 96 98 return nil, nil 97 99 } ··· 120 122 // EmbedRecordWithMedia_View *EmbedRecordWithMedia_View 121 123 }, nil 122 124 } 123 - if feedPost.Embed.EmbedRecordWithMedia != nil { 125 + if feedPost.Embed.EmbedRecordWithMedia != nil && disableTripleNestedRecord > 0 { 124 126 //return nil, nil 125 127 //embedType = "EmbedRecordWithMedia" 126 128 127 - var record *appbsky.EmbedRecord_View_Record = EmbedRecordViewExtractor(ctx, feedPost.Embed.EmbedRecordWithMedia.Record.Record, sl, cs, imgcdn, viewer) 129 + var record *appbsky.EmbedRecord_View_Record = EmbedRecordViewExtractor(ctx, feedPost.Embed.EmbedRecordWithMedia.Record.Record, sl, cs, imgcdn, viewer, disableTripleNestedRecord) 128 130 if record == nil { 129 131 return nil, nil 130 132 } ··· 163 165 // } 164 166 } 165 167 if feedPost.Embed.EmbedRecordWithMedia.Media.EmbedExternal != nil { 166 - embedExternal := EmbedExternalViewExtractor(ctx, aturi, feedPost.Embed.EmbedExternal, sl, cs, imgcdn, viewer) 168 + embedExternal := EmbedExternalViewExtractor(ctx, aturi, feedPost.Embed.EmbedRecordWithMedia.Media.EmbedExternal, sl, cs, imgcdn, viewer) 167 169 embedmediaview = &appbsky.EmbedRecordWithMedia_View_Media{ 168 170 // EmbedImages_View *EmbedImages_View 169 171 // EmbedVideo_View *EmbedVideo_View ··· 275 277 } 276 278 } 277 279 278 - func EmbedRecordViewExtractor(ctx context.Context, record *atproto.RepoStrongRef, sl *microcosm.MicrocosmClient, cs *microcosm.MicrocosmClient, imgcdn string, viewer *utils.DID) *appbsky.EmbedRecord_View_Record { 280 + func EmbedRecordViewExtractor(ctx context.Context, record *atproto.RepoStrongRef, sl *microcosm.MicrocosmClient, cs *microcosm.MicrocosmClient, imgcdn string, viewer *utils.DID, disableTripleNestedRecord int) *appbsky.EmbedRecord_View_Record { 279 281 if record == nil { 280 282 log.Println("[EmbedRecord_View_Record] no record *(????)") 281 283 return nil ··· 296 298 return notFoundRecordEmbed(aturi.String()) 297 299 } 298 300 299 - postView, _, err := PostView(ctx, aturi.String(), sl, cs, imgcdn, viewer, true) 301 + postView, _, err := PostView(ctx, aturi.String(), sl, cs, imgcdn, viewer, disableTripleNestedRecord-1) 300 302 if err != nil { 301 303 log.Println("[EmbedRecord_View_Record] postview failed") 302 304 return notFoundRecordEmbed(aturi.String()) ··· 312 314 // } 313 315 314 316 // lexicontypedecoder := &util.LexiconTypeDecoder{Val: &postRecord} 317 + //var has string /*image | video | external*/ 318 + 319 + var embeds []*appbsky.EmbedRecord_ViewRecord_Embeds_Elem 320 + if postView.Embed != nil { 321 + if postView.Embed.EmbedImages_View != nil { 322 + embeds = []*appbsky.EmbedRecord_ViewRecord_Embeds_Elem{ 323 + { 324 + EmbedImages_View: postView.Embed.EmbedImages_View, 325 + }, 326 + } 327 + } 328 + if postView.Embed.EmbedVideo_View != nil { 329 + //has = "video" 330 + } 331 + if postView.Embed.EmbedExternal_View != nil { 332 + embeds = []*appbsky.EmbedRecord_ViewRecord_Embeds_Elem{ 333 + { 334 + EmbedExternal_View: postView.Embed.EmbedExternal_View, 335 + }, 336 + } 337 + } 338 + } 315 339 316 340 return &appbsky.EmbedRecord_View_Record{ 317 341 // EmbedRecord_ViewRecord *EmbedRecord_ViewRecord ··· 323 347 // Cid string `json:"cid" cborgen:"cid"` 324 348 Cid: postView.Cid, 325 349 // Embeds []*EmbedRecord_ViewRecord_Embeds_Elem `json:"embeds,omitempty" cborgen:"embeds,omitempty"` 326 - Embeds: nil, 350 + Embeds: embeds, 327 351 // IndexedAt string `json:"indexedAt" cborgen:"indexedAt"` 328 352 IndexedAt: postView.IndexedAt, 329 353 // Labels []*comatproto.LabelDefs_Label `json:"labels,omitempty" cborgen:"labels,omitempty"`
+9 -6
shims/lex/app/bsky/feed/defs/postview.go
··· 3 3 import ( 4 4 "context" 5 5 "encoding/json" 6 + "fmt" 7 + "log" 6 8 7 9 "github.com/bluesky-social/indigo/api/agnostic" 8 10 comatproto "github.com/bluesky-social/indigo/api/atproto" ··· 18 20 "tangled.org/whey.party/red-dwarf-server/shims/utils" 19 21 ) 20 22 21 - func PostView(ctx context.Context, postaturi string, sl *microcosm.MicrocosmClient, cs *microcosm.MicrocosmClient, imgcdn string, viewer *utils.DID, disableEmbed bool) (*appbsky.FeedDefs_PostView, *appbsky.FeedPost, error) { 23 + func PostView(ctx context.Context, postaturi string, sl *microcosm.MicrocosmClient, cs *microcosm.MicrocosmClient, imgcdn string, viewer *utils.DID, disableTripleNestedRecord int) (*appbsky.FeedDefs_PostView, *appbsky.FeedPost, error) { 24 + log.Println("(PostView) hey its: " + postaturi + " at depth: " + fmt.Sprint(disableTripleNestedRecord)) 22 25 aturi, err := syntax.ParseATURI(postaturi) 23 26 if err != nil { 24 27 return nil, nil, err ··· 41 44 return nil, nil, err 42 45 } 43 46 var postView_Embed *appbsky.FeedDefs_PostView_Embed 44 - if !disableEmbed { 45 - postView_Embed, err = PostView_Embed(ctx, postaturi, &postRecord, sl, cs, imgcdn, viewer) 46 - if err != nil { 47 - postView_Embed = nil 48 - } 47 + //if !disableTripleNestedRecord { 48 + postView_Embed, err = PostView_Embed(ctx, postaturi, &postRecord, sl, cs, imgcdn, viewer, disableTripleNestedRecord) 49 + if err != nil { 50 + postView_Embed = nil 49 51 } 52 + //} 50 53 51 54 profile, _, _ := appbskyactordefs.ProfileViewBasic(ctx, repoDID, sl, imgcdn) 52 55