summaryrefslogtreecommitdiff
path: root/internal/processing/fromfederator.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/processing/fromfederator.go')
-rw-r--r--internal/processing/fromfederator.go39
1 files changed, 13 insertions, 26 deletions
diff --git a/internal/processing/fromfederator.go b/internal/processing/fromfederator.go
index 94a4e5af8..949a734c7 100644
--- a/internal/processing/fromfederator.go
+++ b/internal/processing/fromfederator.go
@@ -21,6 +21,7 @@ package processing
import (
"errors"
"fmt"
+ "net/url"
"github.com/sirupsen/logrus"
"github.com/superseriousbusiness/gotosocial/internal/db"
@@ -47,36 +48,21 @@ func (p *processor) processFromFederator(federatorMsg gtsmodel.FromFederator) er
return errors.New("note was not parseable as *gtsmodel.Status")
}
- l.Trace("will now derefence incoming status")
- if err := p.federator.DereferenceStatusFields(incomingStatus, federatorMsg.ReceivingAccount.Username); err != nil {
- return fmt.Errorf("error dereferencing status from federator: %s", err)
- }
- if err := p.db.UpdateByID(incomingStatus.ID, incomingStatus); err != nil {
- return fmt.Errorf("error updating dereferenced status in the db: %s", err)
+ status, err := p.federator.EnrichRemoteStatus(federatorMsg.ReceivingAccount.Username, incomingStatus)
+ if err != nil {
+ return err
}
- if err := p.timelineStatus(incomingStatus); err != nil {
+ if err := p.timelineStatus(status); err != nil {
return err
}
- if err := p.notifyStatus(incomingStatus); err != nil {
+ if err := p.notifyStatus(status); err != nil {
return err
}
-
case gtsmodel.ActivityStreamsProfile:
// CREATE AN ACCOUNT
- incomingAccount, ok := federatorMsg.GTSModel.(*gtsmodel.Account)
- if !ok {
- return errors.New("profile was not parseable as *gtsmodel.Account")
- }
-
- l.Trace("will now derefence incoming account")
- if err := p.federator.DereferenceAccountFields(incomingAccount, "", false); err != nil {
- return fmt.Errorf("error dereferencing account from federator: %s", err)
- }
- if err := p.db.UpdateByID(incomingAccount.ID, incomingAccount); err != nil {
- return fmt.Errorf("error updating dereferenced account in the db: %s", err)
- }
+ // nothing to do here
case gtsmodel.ActivityStreamsLike:
// CREATE A FAVE
incomingFave, ok := federatorMsg.GTSModel.(*gtsmodel.StatusFave)
@@ -154,12 +140,13 @@ func (p *processor) processFromFederator(federatorMsg gtsmodel.FromFederator) er
return errors.New("profile was not parseable as *gtsmodel.Account")
}
- l.Trace("will now derefence incoming account")
- if err := p.federator.DereferenceAccountFields(incomingAccount, federatorMsg.ReceivingAccount.Username, true); err != nil {
- return fmt.Errorf("error dereferencing account from federator: %s", err)
+ incomingAccountURI, err := url.Parse(incomingAccount.URI)
+ if err != nil {
+ return err
}
- if err := p.db.UpdateByID(incomingAccount.ID, incomingAccount); err != nil {
- return fmt.Errorf("error updating dereferenced account in the db: %s", err)
+
+ if _, _, err := p.federator.GetRemoteAccount(federatorMsg.ReceivingAccount.Username, incomingAccountURI, true); err != nil {
+ return fmt.Errorf("error dereferencing account from federator: %s", err)
}
}
case gtsmodel.ActivityStreamsDelete: