mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[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
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user