diff --git a/app/Http/Controllers/CoverController.php b/app/Http/Controllers/CoverController.php index 3ca9a5f48..b70218a80 100644 --- a/app/Http/Controllers/CoverController.php +++ b/app/Http/Controllers/CoverController.php @@ -18,7 +18,7 @@ class CoverController extends Controller public function show(string $type, string $filename) { // Validate cover type - $validTypes = ['anime', 'audio', 'audiosample', 'book', 'console', 'games', 'movies', 'music', 'preview', 'sample', 'tvrage', 'video', 'xxx']; + $validTypes = ['anime', 'audio', 'audiosample', 'book', 'console', 'games', 'movies', 'music', 'preview', 'sample', 'tvrage', 'video', 'xxx', 'tvshows']; if (! in_array($type, $validTypes)) { abort(404); @@ -27,6 +27,18 @@ class CoverController extends Controller // Build the file path $filePath = storage_path("covers/{$type}/{$filename}"); + // For preview and sample images, try with _thumb suffix if original doesn't exist + if (! file_exists($filePath) && in_array($type, ['preview', 'sample'])) { + // Try with _thumb suffix + $pathInfo = pathinfo($filename); + $thumbFilename = $pathInfo['filename'].'_thumb.'.($pathInfo['extension'] ?? 'jpg'); + $thumbPath = storage_path("covers/{$type}/{$thumbFilename}"); + + if (file_exists($thumbPath)) { + $filePath = $thumbPath; + } + } + // Check if file exists if (! file_exists($filePath)) { // Return placeholder image @@ -37,9 +49,19 @@ class CoverController extends Controller abort(404); } + // Determine content type + $extension = strtolower(pathinfo($filePath, PATHINFO_EXTENSION)); + $contentType = match ($extension) { + 'jpg', 'jpeg' => 'image/jpeg', + 'png' => 'image/png', + 'gif' => 'image/gif', + 'webp' => 'image/webp', + default => 'image/jpeg', + }; + // Serve the file with proper headers return response()->file($filePath, [ - 'Content-Type' => 'image/jpeg', + 'Content-Type' => $contentType, 'Cache-Control' => 'public, max-age=31536000', // Cache for 1 year ]); } diff --git a/app/Http/Controllers/DetailsController.php b/app/Http/Controllers/DetailsController.php index d8e457a4c..634a9d33c 100644 --- a/app/Http/Controllers/DetailsController.php +++ b/app/Http/Controllers/DetailsController.php @@ -46,7 +46,8 @@ class DetailsController extends BasePageController ReleaseComment::addComment($data['id'], $data['gid'], $request->input('txtAddComment'), $this->userdata->id, $request->ip()); } - $nfo = ReleaseNfo::getReleaseNfo($data['id']); + $nfoData = ReleaseNfo::getReleaseNfo($data['id']); + $nfo = $nfoData ? $nfoData->nfo : null; $reVideo = $re->getVideo($data['id']); $reAudio = $re->getAudio($data['id']); $reSubs = $re->getSubs($data['id']); diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 2a4de8f1d..c2aa6e755 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -17,7 +17,7 @@ class AppServiceProvider extends ServiceProvider */ public function boot(): void { - Paginator::useBootstrapFive(); + Paginator::useTailwind(); $smarty = app('smarty.view'); view()->share('smarty', $smarty); Gate::define('viewPulse', function (User $user) { diff --git a/resources/views/browse/index.blade.php b/resources/views/browse/index.blade.php index 8b3624e22..f28f72938 100644 --- a/resources/views/browse/index.blade.php +++ b/resources/views/browse/index.blade.php @@ -104,6 +104,11 @@ + +