diff options
author | 2024-07-17 15:26:33 +0000 | |
---|---|---|
committer | 2024-07-17 15:26:33 +0000 | |
commit | 72ba5666a6ffd06ccdfd2db8dacc47de7f777a4c (patch) | |
tree | ac8c71af4f9a57c0233ffd30f8867d02616c46cc /internal/media/processingmedia.go | |
parent | [feature] Allow users to set default interaction policies per status visibili... (diff) | |
download | gotosocial-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.go | 36 |
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 |