mirror of
				https://github.com/superseriousbusiness/gotosocial
				synced 2025-06-05 21:59:39 +02:00 
			
		
		
		
	[chore] Refresh origin acct before streaming notif
This commit is contained in:
		| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -61,6 +61,7 @@ func New( | ||||
| 		Stream:      stream, | ||||
| 		Filter:      filter, | ||||
| 		EmailSender: emailSender, | ||||
| 		Federator:   federator, | ||||
| 	} | ||||
|  | ||||
| 	// Init shared util funcs. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user