diff --git a/src/Monitor/Action/Handler/MonitorTvShowHandler.php b/src/Monitor/Action/Handler/MonitorTvShowHandler.php index 3ef8176..29934bb 100644 --- a/src/Monitor/Action/Handler/MonitorTvShowHandler.php +++ b/src/Monitor/Action/Handler/MonitorTvShowHandler.php @@ -61,10 +61,10 @@ readonly class MonitorTvShowHandler implements HandlerInterface // Dispatch Episode commands for each missing Episode foreach ($episodesInShow as $episode) { // Only monitor future episodes - $episodeInFuture = $this->episodeInFuture($episode); - $this->logger->info('> [MonitorTvShowHandler] Episode is in future for season ' . $episode['season_number'] . ' episode ' . $episode['episode_number'] . ' for title: ' . $monitor->getTitle() . ' ? ' . (true === $episodeInFuture ? 'YES' : 'NO')); + $episodeInFuture = $this->episodeReleasedAfterMonitorCreated($monitor->getCreatedAt(), $episode); + $this->logger->info('> [MonitorTvShowHandler] Episode released after monitor started for season ' . $episode['season_number'] . ' episode ' . $episode['episode_number'] . ' for title: ' . $monitor->getTitle() . ' ? ' . (true === $episodeInFuture ? 'YES' : 'NO')); if (false === $episodeInFuture) { - $this->logger->info('> [MonitorTvShowHandler] Episode not in future for title: ' . 'for season ' . $episode['season_number'] . ' episode ' . $episode['episode_number'] . ', skipping'); + $this->logger->info('> [MonitorTvShowHandler] Episode released after monitor started for title: ' . 'for season ' . $episode['season_number'] . ' episode ' . $episode['episode_number'] . ', skipping'); continue; } @@ -125,11 +125,11 @@ readonly class MonitorTvShowHandler implements HandlerInterface ); } - private function episodeInFuture(array $episodeInShow): bool + private function episodeReleasedAfterMonitorCreated(string|DateTimeImmutable $monitorStartDate, array $episodeInShow): bool { - static $today = Carbon::today(); + $monitorStartDate = Carbon::parse($monitorStartDate); $episodeAirDate = Carbon::parse($episodeInShow['air_date']); - return $episodeAirDate >= $today; + return $episodeAirDate >= $monitorStartDate; } private function episodeExists(array $episodeInShow, Map $downloadedEpisodes): bool