[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>
This commit is contained in:
tobi 2025-05-04 09:45:10 +00:00 committed by kim
commit f3f1854359
13 changed files with 196 additions and 48 deletions

View file

@ -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.

View file

@ -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) {