summaryrefslogtreecommitdiff
path: root/internal/gtsmodel
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/gtsmodel
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/gtsmodel')
-rw-r--r--internal/gtsmodel/mention.go6
-rw-r--r--internal/gtsmodel/status.go10
2 files changed, 16 insertions, 0 deletions
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) {