summaryrefslogtreecommitdiff
path: root/internal/federation
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2025-03-03 16:14:27 +0000
committerLibravatar GitHub <noreply@github.com>2025-03-03 16:14:27 +0000
commit24da574684b965e2f98a04eae795cc70eff22c39 (patch)
tree3e620a3555986019655256099d67dc03ebfb9edb /internal/federation
parent[feature] Refactor tokens, allow multiple app redirect_uris (#3849) (diff)
downloadgotosocial-24da574684b965e2f98a04eae795cc70eff22c39.tar.xz
[bugfix] fix refreshed additional media info being ignored (#3867)
* fix refreshed additional media info being ignored when force flag already set * also update to always iterate through all additional info fields * make similar changes for emoji, even if not necessary, just to keep in-sync
Diffstat (limited to 'internal/federation')
-rw-r--r--internal/federation/dereferencing/emoji.go22
-rw-r--r--internal/federation/dereferencing/media.go29
2 files changed, 29 insertions, 22 deletions
diff --git a/internal/federation/dereferencing/emoji.go b/internal/federation/dereferencing/emoji.go
index 1ac27f2b2..0a117f762 100644
--- a/internal/federation/dereferencing/emoji.go
+++ b/internal/federation/dereferencing/emoji.go
@@ -134,19 +134,23 @@ func (d *Dereferencer) RefreshEmoji(
*gtsmodel.Emoji,
error,
) {
- // Check emoji is up-to-date
- // with provided extra info.
- switch {
- case info.URI != nil &&
- *info.URI != emoji.URI:
+ // Check uri up-to-date.
+ if info.URI != nil &&
+ *info.URI != emoji.URI {
emoji.URI = *info.URI
force = true
- case info.ImageRemoteURL != nil &&
- *info.ImageRemoteURL != emoji.ImageRemoteURL:
+ }
+
+ // Check image remote URL up-to-date.
+ if info.ImageRemoteURL != nil &&
+ *info.ImageRemoteURL != emoji.ImageRemoteURL {
emoji.ImageRemoteURL = *info.ImageRemoteURL
force = true
- case info.ImageStaticRemoteURL != nil &&
- *info.ImageStaticRemoteURL != emoji.ImageStaticRemoteURL:
+ }
+
+ // Check image static remote URL up-to-date.
+ if info.ImageStaticRemoteURL != nil &&
+ *info.ImageStaticRemoteURL != emoji.ImageStaticRemoteURL {
emoji.ImageStaticRemoteURL = *info.ImageStaticRemoteURL
force = true
}
diff --git a/internal/federation/dereferencing/media.go b/internal/federation/dereferencing/media.go
index d22eeb237..7fc9f9aef 100644
--- a/internal/federation/dereferencing/media.go
+++ b/internal/federation/dereferencing/media.go
@@ -125,20 +125,23 @@ func (d *Dereferencer) RefreshMedia(
return attach, nil
}
- // Check emoji is up-to-date
- // with provided extra info.
- switch {
- case force:
- case info.Blurhash != nil &&
- *info.Blurhash != attach.Blurhash:
+ // Check blurhash up-to-date.
+ if info.Blurhash != nil &&
+ *info.Blurhash != attach.Blurhash {
attach.Blurhash = *info.Blurhash
force = true
- case info.Description != nil &&
- *info.Description != attach.Description:
+ }
+
+ // Check description up-to-date.
+ if info.Description != nil &&
+ *info.Description != attach.Description {
attach.Description = *info.Description
force = true
- case info.RemoteURL != nil &&
- *info.RemoteURL != attach.RemoteURL:
+ }
+
+ // Check remote URL up-to-date.
+ if info.RemoteURL != nil &&
+ *info.RemoteURL != attach.RemoteURL {
attach.RemoteURL = *info.RemoteURL
force = true
}
@@ -214,10 +217,10 @@ func (d *Dereferencer) updateAttachment(
)
}
-// processingEmojiSafely provides concurrency-safe processing of
-// an emoji with given shortcode+domain. if a copy of the emoji is
+// processingMediaSafely provides concurrency-safe processing of
+// a media with given remote URL string. if a copy of the media is
// not already being processed, the given 'process' callback will
-// be used to generate new *media.ProcessingEmoji{} instance.
+// be used to generate new *media.ProcessingMedia{} instance.
func (d *Dereferencer) processMediaSafeley(
ctx context.Context,
remoteURL string,