diff --git a/app/Console/Commands/FetchMissingMediaMimeType.php b/app/Console/Commands/FetchMissingMediaMimeType.php new file mode 100644 index 000000000..16aeb5f59 --- /dev/null +++ b/app/Console/Commands/FetchMissingMediaMimeType.php @@ -0,0 +1,56 @@ +whereNull('mime')->lazyByIdDesc(50, 'id') as $media) { + $res = Http::retry(2, 100, throw: false)->head($media->remote_url); + + if(!$res->successful()) { + continue; + } + + if(!in_array($res->header('content-type'), explode(',',config('pixelfed.media_types')))) { + continue; + } + + $media->mime = $res->header('content-type'); + + if($res->hasHeader('content-length')) { + $media->size = $res->header('content-length'); + } + + $media->save(); + + MediaService::del($media->status_id); + StatusService::del($media->status_id); + $this->info('mid:'.$media->id . ' (' . $res->header('content-type') . ':' . $res->header('content-length') . ' bytes)'); + } + } +}