summaryrefslogtreecommitdiff
path: root/internal/processing/workers/fromfediapi.go
diff options
context:
space:
mode:
authorLibravatar tobi <tobi.smethurst@protonmail.com>2025-05-04 09:45:10 +0000
committerLibravatar kim <gruf@noreply.codeberg.org>2025-05-04 09:45:10 +0000
commitf3f185435916165a6dd72f3a1bd67e370a2a783d (patch)
tree766f79d878fbd94cf622944b3cdd8120469ecb55 /internal/processing/workers/fromfediapi.go
parent[chore/cicd] Account for force pushes in conditional runs (#4121) (diff)
downloadgotosocial-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.go21
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