diff --git a/app/Jobs/ImageOptimizePipeline/ImageOptimize.php b/app/Jobs/ImageOptimizePipeline/ImageOptimize.php new file mode 100644 index 000000000..c609debd1 --- /dev/null +++ b/app/Jobs/ImageOptimizePipeline/ImageOptimize.php @@ -0,0 +1,45 @@ +media = $media; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $media = $this->media; + $path = storage_path('app/'. $media->media_path); + if(!is_file($path)) { + return; + } + + ImageResize::dispatch($media); + } +} diff --git a/app/Jobs/ImageOptimizePipeline/ImageResize.php b/app/Jobs/ImageOptimizePipeline/ImageResize.php new file mode 100644 index 000000000..065ed4a41 --- /dev/null +++ b/app/Jobs/ImageOptimizePipeline/ImageResize.php @@ -0,0 +1,53 @@ +media = $media; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $media = $this->media; + $path = storage_path('app/'. $media->media_path); + if(!is_file($path)) { + return; + } + + try { + $img = new Image; + $img->resizeImage($media); + } catch (Exception $e) { + + } + + ImageThumbnail::dispatch($media); + } +} diff --git a/app/Jobs/ImageOptimizePipeline/ImageThumbnail.php b/app/Jobs/ImageOptimizePipeline/ImageThumbnail.php new file mode 100644 index 000000000..b771c39a3 --- /dev/null +++ b/app/Jobs/ImageOptimizePipeline/ImageThumbnail.php @@ -0,0 +1,55 @@ +media = $media; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $media = $this->media; + $path = storage_path('app/'. $media->media_path); + if(!is_file($path)) { + return; + } + + try { + $img = new Image; + $img->resizeThumbnail($media); + } catch (Exception $e) { + + } + + $media->processed_at = Carbon::now(); + $media->save(); + + ImageUpdate::dispatch($media); + } +} diff --git a/app/Jobs/ImageOptimizePipeline/ImageUpdate.php b/app/Jobs/ImageOptimizePipeline/ImageUpdate.php new file mode 100644 index 000000000..fab0975ba --- /dev/null +++ b/app/Jobs/ImageOptimizePipeline/ImageUpdate.php @@ -0,0 +1,54 @@ +media = $media; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $media = $this->media; + $path = storage_path('app/'. $media->media_path); + $thumb = storage_path('app/'. $media->thumbnail_path); + try { + ImageOptimizer::optimize($thumb); + ImageOptimizer::optimize($path); + } catch (Exception $e) { + return; + } + if(!is_file($path) || !is_file($thumb)) { + return; + } + $photo_size = filesize($path); + $thumb_size = filesize($thumb); + $total = ($photo_size + $thumb_size); + $media->size = $total; + $media->save(); + } +}