Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

Senither/ShareX-Media-Server

43 stars
2 code files
View Senither/ShareX-Media-Server on GitHub

app/Observers/ImageObserver.php

Open in GitHub
use App\Jobs\CalculateUsedDiskSpace;
use App\Jobs\GenerateImageThumbnail;
use App\Models\Image;
use Illuminate\Support\Facades\Bus;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Storage;
 
class ImageObserver
{
public function created(Image $image)
{
$queue = [new GenerateImageThumbnail($image)];
 
if (request()->user()) {
$queue[] = new CalculateUsedDiskSpace(request()->user());
}
 
Bus::chain($queue)->dispatch();
}
 
public function deleted(Image $image)
{
Storage::delete('images/' . $image->getResourceName());
 
foreach (Image::$supportedSizes as $size) {
Storage::delete('images/' . $image->getResourceName($size . 'x' . $size));
}
 
if (request()->user()) {
CalculateUsedDiskSpace::dispatch(request()->user());
}
}
}

app/Providers/AppServiceProvider.php

Open in GitHub
use App\Models\Image;
use App\Observers\ImageObserver;
use Illuminate\Support\ServiceProvider;
 
class AppServiceProvider extends ServiceProvider
{
//
public function boot()
{
//
Image::observe(ImageObserver::class);
//
}
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.