summaryrefslogtreecommitdiff
path: root/internal/federation/dereferencing/account.go
diff options
context:
space:
mode:
authorLibravatar tsmethurst <tobi.smethurst@protonmail.com>2022-01-08 17:17:01 +0100
committerLibravatar tsmethurst <tobi.smethurst@protonmail.com>2022-01-08 17:17:01 +0100
commitf61c3ddcf72ff689b9d253546c58d499b6fe6ac8 (patch)
treeb418d5a833f0e3b92b255e73efa98007eb8127ac /internal/federation/dereferencing/account.go
parentfurther refinements (diff)
downloadgotosocial-f61c3ddcf72ff689b9d253546c58d499b6fe6ac8.tar.xz
compiling now
Diffstat (limited to 'internal/federation/dereferencing/account.go')
-rw-r--r--internal/federation/dereferencing/account.go48
1 files changed, 36 insertions, 12 deletions
diff --git a/internal/federation/dereferencing/account.go b/internal/federation/dereferencing/account.go
index 19c98e203..5912ff29a 100644
--- a/internal/federation/dereferencing/account.go
+++ b/internal/federation/dereferencing/account.go
@@ -246,25 +246,49 @@ func (d *deref) fetchHeaderAndAviForAccount(ctx context.Context, targetAccount *
}
if targetAccount.AvatarRemoteURL != "" && (targetAccount.AvatarMediaAttachmentID == "" || refresh) {
- a, err := d.mediaManager.ProcessRemoteHeaderOrAvatar(ctx, t, &gtsmodel.MediaAttachment{
- RemoteURL: targetAccount.AvatarRemoteURL,
- Avatar: true,
- }, targetAccount.ID)
+ avatarIRI, err := url.Parse(targetAccount.AvatarRemoteURL)
if err != nil {
- return fmt.Errorf("error processing avatar for user: %s", err)
+ return err
}
- targetAccount.AvatarMediaAttachmentID = a.ID
+
+ data, err := t.DereferenceMedia(ctx, avatarIRI)
+ if err != nil {
+ return err
+ }
+
+ media, err := d.mediaManager.ProcessMedia(ctx, data, targetAccount.ID, targetAccount.AvatarRemoteURL)
+ if err != nil {
+ return err
+ }
+
+ if err := media.SetAsAvatar(ctx); err != nil {
+ return err
+ }
+
+ targetAccount.AvatarMediaAttachmentID = media.AttachmentID()
}
if targetAccount.HeaderRemoteURL != "" && (targetAccount.HeaderMediaAttachmentID == "" || refresh) {
- a, err := d.mediaManager.ProcessRemoteHeaderOrAvatar(ctx, t, &gtsmodel.MediaAttachment{
- RemoteURL: targetAccount.HeaderRemoteURL,
- Header: true,
- }, targetAccount.ID)
+ headerIRI, err := url.Parse(targetAccount.HeaderRemoteURL)
if err != nil {
- return fmt.Errorf("error processing header for user: %s", err)
+ return err
}
- targetAccount.HeaderMediaAttachmentID = a.ID
+
+ data, err := t.DereferenceMedia(ctx, headerIRI)
+ if err != nil {
+ return err
+ }
+
+ media, err := d.mediaManager.ProcessMedia(ctx, data, targetAccount.ID, targetAccount.HeaderRemoteURL)
+ if err != nil {
+ return err
+ }
+
+ if err := media.SetAsHeader(ctx); err != nil {
+ return err
+ }
+
+ targetAccount.HeaderMediaAttachmentID = media.AttachmentID()
}
return nil
}