From f3f185435916165a6dd72f3a1bd67e370a2a783d Mon Sep 17 00:00:00 2001 From: tobi Date: Sun, 4 May 2025 09:45:10 +0000 Subject: [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 Co-committed-by: tobi --- internal/gtsmodel/mention.go | 6 ++++++ internal/gtsmodel/status.go | 10 ++++++++++ 2 files changed, 16 insertions(+) (limited to 'internal/gtsmodel') diff --git a/internal/gtsmodel/mention.go b/internal/gtsmodel/mention.go index 180193f0f..85b59899d 100644 --- a/internal/gtsmodel/mention.go +++ b/internal/gtsmodel/mention.go @@ -49,6 +49,12 @@ type Mention struct { // This will not be put in the database, it's just for convenience. NameString string `bun:"-"` + // IsNew indicates whether this mention is "new" in the sense + // that it has not previously been inserted into the database. + // + // This will not be put in the database, it's just for convenience. + IsNew bool `bun:"-"` + // TargetAccountURI is the AP ID (uri) of the user mentioned. // // This will not be put in the database, it's just for convenience. diff --git a/internal/gtsmodel/status.go b/internal/gtsmodel/status.go index a7d917f78..eca50416e 100644 --- a/internal/gtsmodel/status.go +++ b/internal/gtsmodel/status.go @@ -210,6 +210,16 @@ func (s *Status) GetMentionByTargetURI(uri string) (*Mention, bool) { return nil, false } +// GetMentionByTargetID searches status for Mention{} with target ID. +func (s *Status) GetMentionByTargetID(id string) (*Mention, bool) { + for _, mention := range s.Mentions { + if mention.TargetAccountID == id { + return mention, true + } + } + return nil, false +} + // GetMentionByUsernameDomain fetches the Mention associated with given // username and domains, typically extracted from a mention Namestring. func (s *Status) GetMentionByUsernameDomain(username, domain string) (*Mention, bool) { -- cgit v1.3