From 41b2943dba9993bd4b8c5a6e4546d8e23dce7662 Mon Sep 17 00:00:00 2001 From: Guillermo Serrahima Date: Sat, 21 Mar 2026 02:21:37 +0100 Subject: Changed parents string array to Note array + rendering threads in frontend --- backend/fetchers/app.bsky.feed.go | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'backend/fetchers') diff --git a/backend/fetchers/app.bsky.feed.go b/backend/fetchers/app.bsky.feed.go index 5d87cca..4c6b92f 100644 --- a/backend/fetchers/app.bsky.feed.go +++ b/backend/fetchers/app.bsky.feed.go @@ -136,24 +136,18 @@ func parseAppBskyFeedPostCollection(logger *slog.Logger, slingshotURL string, se return notes.DeduplicateThreads(posts), nil } -func FetchParents(logger *slog.Logger, replyToURI string, slingshotURL string, session *auth.OAuthState, cache *Cache, maxDepth int) ([]string, error) { - parents := []string{} - seen := make(map[string]bool) +func FetchParents(logger *slog.Logger, replyToURI string, slingshotURL string, session *auth.OAuthState, cache *Cache, maxDepth int) ([]notes.Note, error) { + parents := []notes.Note{} currentURI := replyToURI for currentURI != "" { - // check for circular reference - if seen[currentURI] { - logger.Warn("circular reference detected in thread", "uri", currentURI) - break - } - seen[currentURI] = true - note, err := GetAppBskyFeedPostByURI(logger, currentURI, slingshotURL, session, cache) if err != nil { logger.Warn("failed to fetch parent", "uri", currentURI, "error", err) - cache.Set(currentURI, notes.MissingNote(currentURI)) - parents = append(parents, currentURI) + note = notes.MissingNote(currentURI) + + cache.Set(currentURI, note) + parents = append(parents, *note) break } @@ -168,7 +162,7 @@ func FetchParents(logger *slog.Logger, replyToURI string, slingshotURL string, s go FetchAppBskyFeedPosts(logger, note.AuthorDID, authorPDS, slingshotURL, session, cache) } - parents = append(parents, currentURI) + parents = append(parents, *note) if note.ReplyTo == nil { break -- cgit v1.2.3