diff options
| author | 2025-05-04 09:45:10 +0000 | |
|---|---|---|
| committer | 2025-05-04 09:45:10 +0000 | |
| commit | f3f185435916165a6dd72f3a1bd67e370a2a783d (patch) | |
| tree | 766f79d878fbd94cf622944b3cdd8120469ecb55 /internal/processing/workers/fromfediapi.go | |
| parent | [chore/cicd] Account for force pushes in conditional runs (#4121) (diff) | |
| download | gotosocial-f3f185435916165a6dd72f3a1bd67e370a2a783d.tar.xz | |
[bugfix] Fix no notification if mention edited into status (#4102)
This pull request adds mention notifications if a mention was edited into a status after its initial publication.
Closes https://codeberg.org/superseriousbusiness/gotosocial/issues/3869
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4102
Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Co-committed-by: tobi <tobi.smethurst@protonmail.com>
Diffstat (limited to 'internal/processing/workers/fromfediapi.go')
| -rw-r--r-- | internal/processing/workers/fromfediapi.go | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/internal/processing/workers/fromfediapi.go b/internal/processing/workers/fromfediapi.go index 93dd5b00e..93b12d89c 100644 --- a/internal/processing/workers/fromfediapi.go +++ b/internal/processing/workers/fromfediapi.go @@ -996,7 +996,26 @@ func (p *fediAPI) UpdateStatus(ctx context.Context, fMsg *messages.FromFediAPI) log.Errorf(ctx, "error streaming status edit: %v", err) } - // Status representation was refetched, uncache from timelines. + // Notify any *new* mentions added + // to this status by the editor. + for _, mention := range status.Mentions { + // Check if we've seen + // this mention already. + if !mention.IsNew { + // Already seen + // it, skip. + continue + } + + // Haven't seen this mention + // yet, notify it if necessary. + mention.Status = status + if err := p.surface.notifyMention(ctx, mention); err != nil { + log.Errorf(ctx, "error notifying mention: %v", err) + } + } + + // Status representation changed, uncache from timelines. p.surface.invalidateStatusFromTimelines(status.ID) return nil |
