diff --git a/app/Http/Controllers/InternalApiController.php b/app/Http/Controllers/InternalApiController.php index 25a90d8f..9cfff70c 100644 --- a/app/Http/Controllers/InternalApiController.php +++ b/app/Http/Controllers/InternalApiController.php @@ -290,6 +290,12 @@ class InternalApiController extends Controller array_push($mimes, $m->mime); } + $mediaType = StatusController::mimeTypeCheck($mimes); + + if(in_array($mediaType, ['photo', 'video', 'photo:album']) == false) { + abort(400, __('exception.compose.invalid.album')); + } + if($place && is_array($place)) { $status->place_id = $place['id']; } @@ -317,7 +323,7 @@ class InternalApiController extends Controller $status->is_nsfw = $cw; $status->visibility = $visibility; $status->scope = $visibility; - $status->type = StatusController::mimeTypeCheck($mimes); + $status->type = $mediaType; $status->save(); NewStatusPipeline::dispatch($status); diff --git a/resources/assets/js/components/ComposeClassic.vue b/resources/assets/js/components/ComposeClassic.vue index 24f49ea8..f8636382 100644 --- a/resources/assets/js/components/ComposeClassic.vue +++ b/resources/assets/js/components/ComposeClassic.vue @@ -453,12 +453,8 @@ export default { let data = res.data; window.location.href = data; }).catch(err => { - let res = err.response.data; - if(res.message == 'Too Many Attempts.') { - swal('You\'re posting too much!', 'We only allow 50 posts per hour or 100 per day. If you\'ve reached that limit, please try again later. If you think this is an error, please contact an administrator.', 'error'); - return; - } - swal('Oops, something went wrong!', 'An unexpected error occurred.', 'error'); + let msg = err.response.data.message ? err.response.data.message : 'An unexpected error occured.' + swal('Oops, something went wrong!', msg, 'error'); }); return; break; diff --git a/resources/assets/js/components/ComposeModal.vue b/resources/assets/js/components/ComposeModal.vue index d021be28..daced1ef 100644 --- a/resources/assets/js/components/ComposeModal.vue +++ b/resources/assets/js/components/ComposeModal.vue @@ -744,7 +744,8 @@ export default { let data = res.data; window.location.href = data; }).catch(err => { - swal('Oops, something went wrong!', 'An unexpected error occurred.', 'error'); + let msg = err.response.data.message ? err.response.data.message : 'An unexpected error occured.' + swal('Oops, something went wrong!', msg, 'error'); }); return; break; diff --git a/resources/lang/en/exception.php b/resources/lang/en/exception.php new file mode 100644 index 00000000..c4eb63a1 --- /dev/null +++ b/resources/lang/en/exception.php @@ -0,0 +1,11 @@ + [ + 'invalid' => [ + 'album' => 'Must contain a single photo or video or multiple photos.', + ], + ], + +]; \ No newline at end of file