[chore] Refresh origin acct before streaming notif

This commit is contained in:
tobi 2024-07-21 15:02:02 +02:00
parent 027a93facc
commit 73c1fead12
3 changed files with 17 additions and 0 deletions

View file

@ -19,6 +19,7 @@ package workers
import (
"github.com/superseriousbusiness/gotosocial/internal/email"
"github.com/superseriousbusiness/gotosocial/internal/federation"
"github.com/superseriousbusiness/gotosocial/internal/filter/visibility"
"github.com/superseriousbusiness/gotosocial/internal/processing/stream"
"github.com/superseriousbusiness/gotosocial/internal/state"
@ -37,4 +38,5 @@ type Surface struct {
Stream *stream.Processor
Filter *visibility.Filter
EmailSender email.Sender
Federator *federation.Federator
}

View file

@ -468,6 +468,20 @@ func (s *Surface) Notify(
// with the state-y stuff.
unlock()
// Try to bring notif origin account is up to date,
// so receiver of the notif doesn't see an empty
// or out-of-date avatar in the stream.
updatedOrigin, _, err := s.Federator.RefreshAccount(
ctx,
targetAccount.Username,
originAccount,
nil,
nil, // default freshness
)
if err == nil {
notif.OriginAccount = updatedOrigin
}
// Stream notification to the user.
filters, err := s.State.DB.GetFiltersForAccountID(ctx, targetAccount.ID)
if err != nil {

View file

@ -61,6 +61,7 @@ func New(
Stream: stream,
Filter: filter,
EmailSender: emailSender,
Federator: federator,
}
// Init shared util funcs.