summaryrefslogtreecommitdiff
path: root/internal/typeutils/internaltoas.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2022-02-12 18:27:58 +0000
committerLibravatar GitHub <noreply@github.com>2022-02-12 18:27:58 +0000
commit31935ee206107f077878d3cdb6a26b82436b6893 (patch)
tree2d522bf98013dc5a4539133561b645fd7457eb06 /internal/typeutils/internaltoas.go
parent[chore] Add nightly mirror to Codeberg.org (#392) (diff)
parentGo mod tidy (diff)
downloadgotosocial-31935ee206107f077878d3cdb6a26b82436b6893.tar.xz
Merge pull request #361 from superseriousbusiness/media_refactorv0.2.0
Refactor media handler to allow async media resolution
Diffstat (limited to 'internal/typeutils/internaltoas.go')
-rw-r--r--internal/typeutils/internaltoas.go79
1 files changed, 43 insertions, 36 deletions
diff --git a/internal/typeutils/internaltoas.go b/internal/typeutils/internaltoas.go
index 3adf406cf..f154398ce 100644
--- a/internal/typeutils/internaltoas.go
+++ b/internal/typeutils/internaltoas.go
@@ -25,6 +25,7 @@ import (
"fmt"
"net/url"
+ "github.com/sirupsen/logrus"
"github.com/spf13/viper"
"github.com/superseriousbusiness/activity/pub"
"github.com/superseriousbusiness/activity/streams"
@@ -215,62 +216,68 @@ func (c *converter) AccountToAS(ctx context.Context, a *gtsmodel.Account) (vocab
// Used as profile avatar.
if a.AvatarMediaAttachmentID != "" {
if a.AvatarMediaAttachment == nil {
- avatar := &gtsmodel.MediaAttachment{}
- if err := c.db.GetByID(ctx, a.AvatarMediaAttachmentID, avatar); err != nil {
- return nil, err
+ avatar, err := c.db.GetAttachmentByID(ctx, a.AvatarMediaAttachmentID)
+ if err == nil {
+ a.AvatarMediaAttachment = avatar
+ } else {
+ logrus.Errorf("AccountToAS: error getting Avatar with id %s: %s", a.AvatarMediaAttachmentID, err)
}
- a.AvatarMediaAttachment = avatar
}
- iconProperty := streams.NewActivityStreamsIconProperty()
+ if a.AvatarMediaAttachment != nil {
+ iconProperty := streams.NewActivityStreamsIconProperty()
- iconImage := streams.NewActivityStreamsImage()
+ iconImage := streams.NewActivityStreamsImage()
- mediaType := streams.NewActivityStreamsMediaTypeProperty()
- mediaType.Set(a.AvatarMediaAttachment.File.ContentType)
- iconImage.SetActivityStreamsMediaType(mediaType)
+ mediaType := streams.NewActivityStreamsMediaTypeProperty()
+ mediaType.Set(a.AvatarMediaAttachment.File.ContentType)
+ iconImage.SetActivityStreamsMediaType(mediaType)
- avatarURLProperty := streams.NewActivityStreamsUrlProperty()
- avatarURL, err := url.Parse(a.AvatarMediaAttachment.URL)
- if err != nil {
- return nil, err
- }
- avatarURLProperty.AppendIRI(avatarURL)
- iconImage.SetActivityStreamsUrl(avatarURLProperty)
+ avatarURLProperty := streams.NewActivityStreamsUrlProperty()
+ avatarURL, err := url.Parse(a.AvatarMediaAttachment.URL)
+ if err != nil {
+ return nil, err
+ }
+ avatarURLProperty.AppendIRI(avatarURL)
+ iconImage.SetActivityStreamsUrl(avatarURLProperty)
- iconProperty.AppendActivityStreamsImage(iconImage)
- person.SetActivityStreamsIcon(iconProperty)
+ iconProperty.AppendActivityStreamsImage(iconImage)
+ person.SetActivityStreamsIcon(iconProperty)
+ }
}
// image
// Used as profile header.
if a.HeaderMediaAttachmentID != "" {
if a.HeaderMediaAttachment == nil {
- header := &gtsmodel.MediaAttachment{}
- if err := c.db.GetByID(ctx, a.HeaderMediaAttachmentID, header); err != nil {
- return nil, err
+ header, err := c.db.GetAttachmentByID(ctx, a.HeaderMediaAttachmentID)
+ if err == nil {
+ a.HeaderMediaAttachment = header
+ } else {
+ logrus.Errorf("AccountToAS: error getting Header with id %s: %s", a.HeaderMediaAttachmentID, err)
}
- a.HeaderMediaAttachment = header
}
- headerProperty := streams.NewActivityStreamsImageProperty()
+ if a.HeaderMediaAttachment != nil {
+ headerProperty := streams.NewActivityStreamsImageProperty()
- headerImage := streams.NewActivityStreamsImage()
+ headerImage := streams.NewActivityStreamsImage()
- mediaType := streams.NewActivityStreamsMediaTypeProperty()
- mediaType.Set(a.HeaderMediaAttachment.File.ContentType)
- headerImage.SetActivityStreamsMediaType(mediaType)
+ mediaType := streams.NewActivityStreamsMediaTypeProperty()
+ mediaType.Set(a.HeaderMediaAttachment.File.ContentType)
+ headerImage.SetActivityStreamsMediaType(mediaType)
- headerURLProperty := streams.NewActivityStreamsUrlProperty()
- headerURL, err := url.Parse(a.HeaderMediaAttachment.URL)
- if err != nil {
- return nil, err
- }
- headerURLProperty.AppendIRI(headerURL)
- headerImage.SetActivityStreamsUrl(headerURLProperty)
+ headerURLProperty := streams.NewActivityStreamsUrlProperty()
+ headerURL, err := url.Parse(a.HeaderMediaAttachment.URL)
+ if err != nil {
+ return nil, err
+ }
+ headerURLProperty.AppendIRI(headerURL)
+ headerImage.SetActivityStreamsUrl(headerURLProperty)
- headerProperty.AppendActivityStreamsImage(headerImage)
- person.SetActivityStreamsImage(headerProperty)
+ headerProperty.AppendActivityStreamsImage(headerImage)
+ person.SetActivityStreamsImage(headerProperty)
+ }
}
return person, nil