From 83a0816f8cc90f3f00d2c4918d959c37da915347 Mon Sep 17 00:00:00 2001 From: AKP Date: Mon, 10 Feb 2025 22:19:24 +0000 Subject: Do not update feed item index when sending test emails Previously this caused items to be missed from the main, scheduled emails. --- CHANGELOG.md | 1 + walrss/internal/http/testEmail.go | 2 +- walrss/internal/rss/processor.go | 9 +++++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 565b90b..aab606a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Changed * When no feed items are stored in the database for a particular feed, fall back to using the old time-based detection method * Do not index feed items at addition time +* Do not update feed item index when sending a test email to prevent items being missed from the main scheduled emails ## 0.4.2 - 2025-02-09 ### Fixed diff --git a/walrss/internal/http/testEmail.go b/walrss/internal/http/testEmail.go index 86c3e60..9e8a676 100644 --- a/walrss/internal/http/testEmail.go +++ b/walrss/internal/http/testEmail.go @@ -33,7 +33,7 @@ func (s *Server) sendTestEmail(ctx *fiber.Ctx) error { var err error go func() { - err = rss.ProcessUserFeed(s.state, user, status) + err = rss.ProcessUserFeed(s.state, user, status, true) }() for statusAddition := range status { diff --git a/walrss/internal/rss/processor.go b/walrss/internal/rss/processor.go index 7d1258a..9dc7ff7 100644 --- a/walrss/internal/rss/processor.go +++ b/walrss/internal/rss/processor.go @@ -67,7 +67,7 @@ func ProcessFeeds(st *state.State, day db.SendDay, hour int) error { } for _, ur := range u { - if err := ProcessUserFeed(st, ur, nil); err != nil { + if err := ProcessUserFeed(st, ur, nil, false); err != nil { log.Warn().Err(err).Str("user", ur.ID).Msg("could not process feeds for user") } } @@ -82,7 +82,7 @@ func reportProgress(channel chan string, msg string) { channel <- msg } -func ProcessUserFeed(st *state.State, user *db.User, progressChannel chan string) error { +func ProcessUserFeed(st *state.State, user *db.User, progressChannel chan string, isTest bool) error { defer func() { if progressChannel == nil { return @@ -132,8 +132,9 @@ func ProcessUserFeed(st *state.State, user *db.User, progressChannel chan string pf.Items = ffcRes.filtered - // add new items to DB cache - { + // add new items to DB cache when we're not testing. if we're testing, adding known items to the cache will + // stop them from appearing in any scheduled emails later on. + if !isTest { var newItems []*db.FeedItem for _, i := range ffcRes.new { newItems = append(newItems, &db.FeedItem{ -- cgit v1.2.3-70-g09d2