this repo has no description
0
fork

Configure Feed

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

add a check to ensure feed pagination is correct (#185)

authored by

Whyrusleeping and committed by
GitHub
8162bdb6 cc5f4522

+34 -1
+34 -1
cmd/gosky/debug.go
··· 344 344 345 345 if len(skel.Feed) == 0 { 346 346 return fmt.Errorf("feedgen response is empty (might be expected since we aren't authed)") 347 + } 347 348 349 + fmt.Println("Feed response looks good!") 350 + 351 + seen := make(map[string]bool) 352 + for _, p := range skel.Feed { 353 + seen[p.Post] = true 348 354 } 349 355 350 - fmt.Println("Feed response looks good!") 356 + curs := skel.Cursor 357 + for i := 0; i < 10 && curs != nil; i++ { 358 + fmt.Println("Response had cursor: ", *curs) 359 + nresp, err := bsky.FeedGetFeedSkeleton(ctx, fgclient, *curs, uri, 10) 360 + if err != nil { 361 + return fmt.Errorf("fetching paginated feed failed: %w", err) 362 + } 363 + 364 + fmt.Printf("Got %d posts from cursored query\n", len(nresp.Feed)) 365 + 366 + if len(nresp.Feed) > 10 { 367 + return fmt.Errorf("got more posts than we requested") 368 + } 369 + 370 + for _, p := range nresp.Feed { 371 + if seen[p.Post] { 372 + return fmt.Errorf("duplicate post in response: %s", p.Post) 373 + } 374 + 375 + seen[p.Post] = true 376 + } 377 + 378 + if len(nresp.Feed) == 0 || nresp.Cursor == nil { 379 + break 380 + } 381 + 382 + curs = nresp.Cursor 383 + } 351 384 352 385 return nil 353 386 },