1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace App\Console\Commands;
- use Illuminate\Console\Command;
- use App\Media;
- use Illuminate\Support\Facades\Http;
- use App\Services\MediaService;
- use App\Services\StatusService;
- class FetchMissingMediaMimeType extends Command
- {
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'app:fetch-missing-media-mime-type';
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = 'Command description';
- /**
- * Execute the console command.
- */
- public function handle()
- {
- foreach(Media::whereNotNull(['remote_url', 'status_id'])->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)');
- }
- }
- }
|