MediaFix.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Console\Commands;
  3. use Illuminate\Console\Command;
  4. use App\Util\Media\Filter;
  5. use App\Media;
  6. class MediaFix extends Command
  7. {
  8. /**
  9. * The name and signature of the console command.
  10. *
  11. * @var string
  12. */
  13. protected $signature = 'media:fix';
  14. /**
  15. * The console command description.
  16. *
  17. * @var string
  18. */
  19. protected $description = 'Fix media on v0.10.8+';
  20. /**
  21. * Create a new command instance.
  22. *
  23. * @return void
  24. */
  25. public function __construct()
  26. {
  27. parent::__construct();
  28. }
  29. /**
  30. * Execute the console command.
  31. *
  32. * @return mixed
  33. */
  34. public function handle()
  35. {
  36. if(!version_compare(config('pixelfed.version'),'0.10.8','ge')) {
  37. $this->error('Please update to version 0.10.8 or newer.');
  38. exit;
  39. }
  40. $classes = Filter::classes();
  41. Media::whereNotNull('filter_class')
  42. ->chunk(50, function($filters) use($classes) {
  43. foreach($filters as $filter) {
  44. $match = $filter->filter_class ? in_array($filter->filter_class, $classes) : true;
  45. if(!$match) {
  46. $filter->filter_class = null;
  47. $filter->filter_name = null;
  48. $filter->save();
  49. }
  50. }
  51. });
  52. }
  53. }