fix: reset cache for devices with different dimensions

This commit is contained in:
Benjamin Nussbaum 2025-05-13 14:05:12 +02:00
parent ad5ff5d2c9
commit aa1e02d184
2 changed files with 21 additions and 0 deletions

View file

@ -115,4 +115,21 @@ class ImageGenerationService
}
}
}
public static function resetIfNotCacheable(?Plugin $plugin): void
{
if ($plugin?->id) {
if (
Device::query()
->where('width', '!=', 800)
->orWhere('height', '!=', 480)
->orWhere('rotate', '!=', 0)
->exists()
) {
// TODO cache image per device
$plugin->update(['current_image' => null]);
\Log::debug('Skip cache as devices with other dimensions exist');
}
}
}
}

View file

@ -3,6 +3,7 @@
use App\Jobs\GenerateScreenJob;
use App\Models\Device;
use App\Models\User;
use App\Services\ImageGenerationService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\Facades\Route;
@ -53,6 +54,9 @@ Route::get('/display', function (Request $request) {
$refreshTimeOverride = $playlistItem->playlist()->first()->refresh_time;
$plugin = $playlistItem->plugin;
// Reset cache if Devices with different dimensions exist
ImageGenerationService::resetIfNotCacheable($plugin);
// Check and update stale data if needed
if ($plugin->isDataStale() || $plugin->current_image == null) {
$plugin->updateDataPayload();