From b6aa6d1a4f53b6be4ba4012ba216e66a6585cbb6 Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 26 Mar 2024 20:09:08 -0700 Subject: [PATCH] Add pinned-tweet quoted tweet info if needed --- internal/webserver/handler_user_feed.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/internal/webserver/handler_user_feed.go b/internal/webserver/handler_user_feed.go index 1401260..1e4f9e5 100644 --- a/internal/webserver/handler_user_feed.go +++ b/internal/webserver/handler_user_feed.go @@ -105,11 +105,22 @@ func (app *Application) UserFeed(w http.ResponseWriter, r *http.Request) { // Also, only show pinned tweets on default tab (tweets+replies) or "without_replies" tab if user.PinnedTweetID != scraper.TweetID(0) && (len(parts) <= 1 || parts[1] == "without_replies") { data.PinnedTweet, err = app.Profile.GetTweetById(user.PinnedTweetID) - if err == nil { - feed.TweetTrove.Tweets[data.PinnedTweet.ID] = data.PinnedTweet - } else if !errors.Is(err, persistence.ErrNotInDB) { + if err != nil && !errors.Is(err, persistence.ErrNotInDB) { panic(err) } + feed.TweetTrove.Tweets[data.PinnedTweet.ID] = data.PinnedTweet + + // Fetch quoted tweet if necessary + if data.PinnedTweet.QuotedTweetID != scraper.TweetID(0) { + feed.TweetTrove.Tweets[data.PinnedTweet.QuotedTweetID], err = app.Profile.GetTweetById(data.PinnedTweet.QuotedTweetID) + if err != nil && !errors.Is(err, persistence.ErrNotInDB) { + panic(err) + } + // And the user + qt_user_id := feed.TweetTrove.Tweets[data.PinnedTweet.QuotedTweetID].UserID + feed.TweetTrove.Users[qt_user_id], err = app.Profile.GetUserByID(qt_user_id) + panic_if(err) + } } if r.Header.Get("HX-Request") == "true" && c.CursorPosition == persistence.CURSOR_MIDDLE {