From 1f1c6f775fabf85112c565f954ff5aea861d82af Mon Sep 17 00:00:00 2001 From: Brock H Caldwell Date: Wed, 5 Nov 2025 23:42:40 -0600 Subject: [PATCH] feat: adds poster to monitors & ical --- .../Action/Handler/MonitorTvEpisodeHandler.php | 13 +++++++++++++ .../Framework/Controller/CalendarController.php | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Monitor/Action/Handler/MonitorTvEpisodeHandler.php b/src/Monitor/Action/Handler/MonitorTvEpisodeHandler.php index d8b4a8f..70304be 100644 --- a/src/Monitor/Action/Handler/MonitorTvEpisodeHandler.php +++ b/src/Monitor/Action/Handler/MonitorTvEpisodeHandler.php @@ -9,6 +9,7 @@ use App\Download\Framework\Repository\DownloadRepository; use App\EventLog\Action\Command\AddEventLogCommand; use App\Monitor\Action\Command\MonitorMovieCommand; use App\Monitor\Action\Result\MonitorTvEpisodeResult; +use App\Monitor\Framework\Entity\Monitor; use App\Monitor\Framework\Repository\MonitorRepository; use App\Monitor\MonitorEvents; use App\Tmdb\TmdbClient; @@ -43,6 +44,7 @@ readonly class MonitorTvEpisodeHandler implements HandlerInterface try { $monitor = $this->monitorRepository->find($command->movieMonitorId); $this->logger->info('> [MonitorTvEpisodeHandler] Executing MonitorTvEpisodeHandler for ' . $monitor->getTitle() . ' season ' . $monitor->getSeason() . ' episode ' . $monitor->getEpisode()); + $this->refreshData($monitor); $this->bus->dispatch(new AddEventLogCommand( $monitor->getUser(), @@ -151,4 +153,15 @@ readonly class MonitorTvEpisodeHandler implements HandlerInterface ] ); } + + private function refreshData(Monitor $monitor) + { + if (null === $monitor->getPoster()) { + $this->logger->info('> [MonitorTvEpisodeHandler] Refreshing poster for "' . $monitor->getTitle() . '"'); + $poster = $monitor->getParent()->getPoster(); + if (null !== $poster && "" !== $poster) { + $monitor->setPoster($poster); + } + } + } } diff --git a/src/Monitor/Framework/Controller/CalendarController.php b/src/Monitor/Framework/Controller/CalendarController.php index 92668e2..188543d 100644 --- a/src/Monitor/Framework/Controller/CalendarController.php +++ b/src/Monitor/Framework/Controller/CalendarController.php @@ -3,6 +3,7 @@ namespace App\Monitor\Framework\Controller; use Aimeos\Map; +use App\Monitor\Framework\Entity\Monitor; use App\Monitor\Framework\Repository\MonitorRepository; use App\User\Framework\Entity\User; use Spatie\IcalendarGenerator\Components\Calendar; @@ -27,9 +28,10 @@ class CalendarController extends AbstractController ->refreshInterval(10); $monitors = $monitorRepository->whereAirDateNotNull(); - $calendar->event(Map::from($monitors)->map(function ($monitor) { + $calendar->event(Map::from($monitors)->map(function (Monitor $monitor) { return new Event($monitor->getTitle()) ->startsAt($monitor->getAirDate()) + ->attachment($monitor->getPoster()) ->fullDay(); })->toArray());