first commit
Some checks failed
Build / run (push) Has been cancelled

This commit is contained in:
maher
2025-10-29 11:42:25 +01:00
commit 703f50a09d
4595 changed files with 385164 additions and 0 deletions

59
app/Loaders/EpisodeLoader.php Executable file
View File

@@ -0,0 +1,59 @@
<?php
namespace App\Loaders;
use App\Actions\Titles\TitleCredits;
use App\Models\Title;
class EpisodeLoader
{
public function loadData(?string $loader): array
{
$pageName = request()->route('pageName');
$title = Title::with('genres')->findOrFail(request()->route('titleId'));
$season = $title->findSeason(request()->route('seasonNumber'));
$episode = $season->findEpisode(request()->route('episodeNumber'));
if (!$loader) {
$loader =
$pageName === 'full-credits'
? 'episodeCreditsPage'
: 'episodePage';
}
if (
($loader === 'episodePage' || $loader === 'episodeCreditsPage') &&
requestIsFromFrontend()
) {
$season = $season->maybeUpdateFromExternal($title);
if (!$season) {
abort(404);
}
}
$response = [
'title' => $title,
'episode' => $episode,
'loader' => $loader,
];
if ($loader === 'episodePage') {
$episode->load(['videos', 'primaryVideo']);
$response['credits'] = app(TitleCredits::class)->loadCompact(
$title,
$season,
$episode,
);
}
if ($loader === 'episodeCreditsPage') {
$response['credits'] = app(TitleCredits::class)->loadFull(
$title,
$season,
$episode,
);
}
return $response;
}
}