pixelfed/app/Console/Commands/CatchUnoptimizedMedia.php
2021-01-17 01:45:56 -07:00

62 lines
1.4 KiB
PHP

<?php
namespace App\Console\Commands;
use DB;
use App\Jobs\ImageOptimizePipeline\ImageOptimize;
use App\Media;
use Illuminate\Console\Command;
class CatchUnoptimizedMedia extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'media:optimize';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Find and optimize media that has not yet been optimized.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct(Media $media)
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
DB::transaction(function() {
Media::whereNull('processed_at')
->where('skip_optimize', '!=', true)
->whereNull('remote_url')
->whereNotNull('status_id')
->whereNotNull('media_path')
->where('created_at', '>', now()->subHours(1))
->whereIn('mime', [
'image/jpeg',
'image/png',
])
->chunk(50, function($medias) {
foreach ($medias as $media) {
ImageOptimize::dispatch($media);
}
});
});
}
}