summaryrefslogtreecommitdiff
path: root/internal/processing/account/rss.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/processing/account/rss.go')
-rw-r--r--internal/processing/account/rss.go14
1 files changed, 9 insertions, 5 deletions
diff --git a/internal/processing/account/rss.go b/internal/processing/account/rss.go
index f2c6cba5e..cbbb4875b 100644
--- a/internal/processing/account/rss.go
+++ b/internal/processing/account/rss.go
@@ -69,14 +69,18 @@ func (p *Processor) GetRSSFeedForUsername(ctx context.Context, username string)
return nil, never, gtserror.NewErrorNotFound(err)
}
+ // Ensure account stats populated.
+ if account.Stats == nil {
+ if err := p.state.DB.PopulateAccountStats(ctx, account); err != nil {
+ err = gtserror.Newf("db error getting account stats %s: %w", username, err)
+ return nil, never, gtserror.NewErrorInternalError(err)
+ }
+ }
+
// LastModified time is needed by callers to check freshness for cacheing.
// This might be a zero time.Time if account has never posted a status that's
// eligible to appear in the RSS feed; that's fine.
- lastPostAt, err := p.state.DB.GetAccountLastPosted(ctx, account.ID, true)
- if err != nil && !errors.Is(err, db.ErrNoEntries) {
- err = gtserror.Newf("db error getting account %s last posted: %w", username, err)
- return nil, never, gtserror.NewErrorInternalError(err)
- }
+ lastPostAt := account.Stats.LastStatusAt
return func() (string, gtserror.WithCode) {
// Assemble author namestring once only.