summaryrefslogtreecommitdiff
path: root/internal/processing/account
diff options
context:
space:
mode:
Diffstat (limited to 'internal/processing/account')
-rw-r--r--internal/processing/account/account.go4
-rw-r--r--internal/processing/account/account_test.go3
-rw-r--r--internal/processing/account/update.go12
3 files changed, 13 insertions, 6 deletions
diff --git a/internal/processing/account/account.go b/internal/processing/account/account.go
index c670ee24a..1ef92cf85 100644
--- a/internal/processing/account/account.go
+++ b/internal/processing/account/account.go
@@ -87,10 +87,11 @@ type processor struct {
formatter text.Formatter
db db.DB
federator federation.Federator
+ parseMention gtsmodel.ParseMentionFunc
}
// New returns a new account processor.
-func New(db db.DB, tc typeutils.TypeConverter, mediaManager media.Manager, oauthServer oauth.Server, fromClientAPI chan messages.FromClientAPI, federator federation.Federator) Processor {
+func New(db db.DB, tc typeutils.TypeConverter, mediaManager media.Manager, oauthServer oauth.Server, fromClientAPI chan messages.FromClientAPI, federator federation.Federator, parseMention gtsmodel.ParseMentionFunc) Processor {
return &processor{
tc: tc,
mediaManager: mediaManager,
@@ -100,5 +101,6 @@ func New(db db.DB, tc typeutils.TypeConverter, mediaManager media.Manager, oauth
formatter: text.NewFormatter(db),
db: db,
federator: federator,
+ parseMention: parseMention,
}
}
diff --git a/internal/processing/account/account_test.go b/internal/processing/account/account_test.go
index 5a9382ed6..aff4f02aa 100644
--- a/internal/processing/account/account_test.go
+++ b/internal/processing/account/account_test.go
@@ -29,6 +29,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/media"
"github.com/superseriousbusiness/gotosocial/internal/messages"
"github.com/superseriousbusiness/gotosocial/internal/oauth"
+ "github.com/superseriousbusiness/gotosocial/internal/processing"
"github.com/superseriousbusiness/gotosocial/internal/processing/account"
"github.com/superseriousbusiness/gotosocial/internal/transport"
"github.com/superseriousbusiness/gotosocial/internal/typeutils"
@@ -88,7 +89,7 @@ func (suite *AccountStandardTestSuite) SetupTest() {
suite.federator = testrig.NewTestFederator(suite.db, suite.transportController, suite.storage, suite.mediaManager)
suite.sentEmails = make(map[string]string)
suite.emailSender = testrig.NewEmailSender("../../../web/template/", suite.sentEmails)
- suite.accountProcessor = account.New(suite.db, suite.tc, suite.mediaManager, suite.oauthServer, suite.fromClientAPIChan, suite.federator)
+ suite.accountProcessor = account.New(suite.db, suite.tc, suite.mediaManager, suite.oauthServer, suite.fromClientAPIChan, suite.federator, processing.GetParseMentionFunc(suite.db, suite.federator))
testrig.StandardDBSetup(suite.db, nil)
testrig.StandardStorageSetup(suite.storage, "../../../testrig/media")
}
diff --git a/internal/processing/account/update.go b/internal/processing/account/update.go
index a96b44bef..a0056563b 100644
--- a/internal/processing/account/update.go
+++ b/internal/processing/account/update.go
@@ -199,10 +199,14 @@ func (p *processor) processNote(ctx context.Context, note string, accountID stri
return "", err
}
- mentionStrings := util.DeriveMentionsFromText(note)
- mentions, err := p.db.MentionStringsToMentions(ctx, mentionStrings, accountID, "")
- if err != nil {
- return "", err
+ mentionStrings := util.DeriveMentionNamesFromText(note)
+ mentions := []*gtsmodel.Mention{}
+ for _, mentionString := range mentionStrings {
+ mention, err := p.parseMention(ctx, mentionString, accountID, "")
+ if err != nil {
+ continue
+ }
+ mentions = append(mentions, mention)
}
// TODO: support emojis in account notes