summaryrefslogtreecommitdiff
path: root/internal/media/processingmedia.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-07-17 15:26:33 +0000
committerLibravatar GitHub <noreply@github.com>2024-07-17 15:26:33 +0000
commit72ba5666a6ffd06ccdfd2db8dacc47de7f777a4c (patch)
treeac8c71af4f9a57c0233ffd30f8867d02616c46cc /internal/media/processingmedia.go
parent[feature] Allow users to set default interaction policies per status visibili... (diff)
downloadgotosocial-72ba5666a6ffd06ccdfd2db8dacc47de7f777a4c.tar.xz
[chore] media pipeline improvements (#3110)
* don't set emoji / media image paths on failed download, migrate FileType from string to integer * fix incorrect uses of util.PtrOr, fix returned frontend media * fix migration not setting arguments correctly in where clause * fix not providing default with not null column * whoops * ensure a default gets set for media attachment file type * remove the exclusive flag from writing files in disk storage * rename PtrOr -> PtrOrZero, and rename PtrValueOr -> PtrOrValue to match * slight wording changes * use singular / plural word forms (no parentheses), is better for screen readers * update testmodels with unknown media type to have unset file details, update attachment focus handling converting to frontend, update tests * store first instance in ffmpeg wasm pool, fill remaining with closed instances
Diffstat (limited to 'internal/media/processingmedia.go')
-rw-r--r--internal/media/processingmedia.go36
1 files changed, 34 insertions, 2 deletions
diff --git a/internal/media/processingmedia.go b/internal/media/processingmedia.go
index e5af46a2f..393f7d715 100644
--- a/internal/media/processingmedia.go
+++ b/internal/media/processingmedia.go
@@ -248,6 +248,15 @@ func (p *ProcessingMedia) store(ctx context.Context) error {
return gtserror.Newf("error generating thumb blurhash: %w", err)
}
}
+
+ // Calculate final media attachment thumbnail path.
+ p.media.Thumbnail.Path = uris.StoragePathForAttachment(
+ p.media.AccountID,
+ string(TypeAttachment),
+ string(SizeSmall),
+ p.media.ID,
+ "jpeg",
+ )
}
// Calculate final media attachment file path.
@@ -285,8 +294,7 @@ func (p *ProcessingMedia) store(ctx context.Context) error {
p.media.Thumbnail.FileSize = int(thumbsz)
}
- // Fill in correct attachment
- // data now we've parsed it.
+ // Generate a media attachment URL.
p.media.URL = uris.URIForAttachment(
p.media.AccountID,
string(TypeAttachment),
@@ -295,10 +303,22 @@ func (p *ProcessingMedia) store(ctx context.Context) error {
ext,
)
+ // Generate a media attachment thumbnail URL.
+ p.media.Thumbnail.URL = uris.URIForAttachment(
+ p.media.AccountID,
+ string(TypeAttachment),
+ string(SizeSmall),
+ p.media.ID,
+ "jpeg",
+ )
+
// Get mimetype for the file container
// type, falling back to generic data.
p.media.File.ContentType = getMimeType(ext)
+ // Set the known thumbnail content type.
+ p.media.Thumbnail.ContentType = "image/jpeg"
+
// We can now consider this cached.
p.media.Cached = util.Ptr(true)
@@ -329,6 +349,18 @@ func (p *ProcessingMedia) cleanup(ctx context.Context) {
}
}
+ // Unset all processor-calculated media fields.
+ p.media.FileMeta.Original = gtsmodel.Original{}
+ p.media.FileMeta.Small = gtsmodel.Small{}
+ p.media.File.ContentType = ""
+ p.media.File.FileSize = 0
+ p.media.File.Path = ""
+ p.media.Thumbnail.FileSize = 0
+ p.media.Thumbnail.ContentType = ""
+ p.media.Thumbnail.Path = ""
+ p.media.Thumbnail.URL = ""
+ p.media.URL = ""
+
// Also ensure marked as unknown and finished
// processing so gets inserted as placeholder URL.
p.media.Processing = gtsmodel.ProcessingStatusProcessed