diff options
Diffstat (limited to 'internal/processing')
-rw-r--r-- | internal/processing/common/media.go | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/internal/processing/common/media.go b/internal/processing/common/media.go index 7baf30345..7957470cd 100644 --- a/internal/processing/common/media.go +++ b/internal/processing/common/media.go @@ -22,6 +22,7 @@ import ( "errors" "fmt" + "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/gtserror" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/media" @@ -51,11 +52,18 @@ func (p *Processor) StoreLocalMedia( // Immediately trigger write to storage. attachment, err := processing.Load(ctx) - if err != nil { - const text = "error processing emoji" + switch { + case gtserror.LimitReached(err): + limit := config.GetMediaLocalMaxSize() + text := fmt.Sprintf("local media size limit reached: %s", limit) + return nil, gtserror.NewErrorUnprocessableEntity(err, text) + + case err != nil: + const text = "error processing media" err := gtserror.Newf("error processing media: %w", err) return nil, gtserror.NewErrorUnprocessableEntity(err, text) - } else if attachment.Type == gtsmodel.FileTypeUnknown { + + case attachment.Type == gtsmodel.FileTypeUnknown: text := fmt.Sprintf("could not process %s type media", attachment.File.ContentType) return nil, gtserror.NewErrorUnprocessableEntity(errors.New(text), text) } @@ -86,9 +94,15 @@ func (p *Processor) StoreLocalEmoji( return nil, gtserror.NewErrorInternalError(err) } - // Immediately write to storage. + // Immediately trigger write to storage. emoji, err := processing.Load(ctx) - if err != nil { + switch { + case gtserror.LimitReached(err): + limit := config.GetMediaEmojiLocalMaxSize() + text := fmt.Sprintf("local emoji size limit reached: %s", limit) + return nil, gtserror.NewErrorUnprocessableEntity(err, text) + + case err != nil: const text = "error processing emoji" err := gtserror.Newf("error processing emoji %s: %w", shortcode, err) return nil, gtserror.NewErrorUnprocessableEntity(err, text) |