From a88720fe7e5aef4132a9d864d5ccdd37c6ee38f1 Mon Sep 17 00:00:00 2001 From: Brock H Caldwell Date: Tue, 8 Jul 2025 16:26:07 -0500 Subject: [PATCH] fix: monitor not increasing count after error --- .../Action/Handler/MonitorTvEpisodeHandler.php | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/Monitor/Action/Handler/MonitorTvEpisodeHandler.php b/src/Monitor/Action/Handler/MonitorTvEpisodeHandler.php index 1b46df1..c83dbd6 100644 --- a/src/Monitor/Action/Handler/MonitorTvEpisodeHandler.php +++ b/src/Monitor/Action/Handler/MonitorTvEpisodeHandler.php @@ -3,10 +3,10 @@ namespace App\Monitor\Action\Handler; use App\Download\Action\Command\DownloadMediaCommand; +use App\Download\DownloadOptionEvaluator; use App\Monitor\Action\Command\MonitorMovieCommand; use App\Monitor\Action\Result\MonitorTvEpisodeResult; use App\Monitor\Framework\Repository\MonitorRepository; -use App\Monitor\Service\MonitorOptionEvaluator; use App\Tmdb\Tmdb; use App\Torrentio\Action\Command\GetTvShowOptionsCommand; use App\Torrentio\Action\Handler\GetTvShowOptionsHandler; @@ -25,7 +25,7 @@ readonly class MonitorTvEpisodeHandler implements HandlerInterface { public function __construct( private GetTvShowOptionsHandler $getTvShowOptionsHandler, - private MonitorOptionEvaluator $monitorOptionEvaluator, + private DownloadOptionEvaluator $downloadOptionEvaluator, private EntityManagerInterface $entityManager, private MessageBusInterface $bus, private LoggerInterface $logger, @@ -65,10 +65,10 @@ readonly class MonitorTvEpisodeHandler implements HandlerInterface $this->logger->info('> [MonitorTvEpisodeHandler] ...Found ' . count($results->results) . ' total download options, beginning evaluation'); - $result = $this->monitorOptionEvaluator->evaluateOptions($monitor, $results->results); + $result = $this->downloadOptionEvaluator->evaluateOptions($results->results, UserPreferencesFactory::createFromUser($monitor->getUser())); if (null !== $result) { - $this->logger->info('> [MonitorTvEpisodeHandler] ...Found 1 matching result found: dispatching DownloadMediaCommand for "' . $result->title . '"', ['filter' => UserPreferencesFactory::createFromUser($monitor->getUser())]); + $this->logger->info('> [MonitorTvEpisodeHandler] ...Found 1 matching result found: dispatching DownloadMediaCommand for "' . $result->title . '"'); $this->bus->dispatch(new DownloadMediaCommand( $result->url, $monitor->getTitle(), @@ -83,17 +83,16 @@ readonly class MonitorTvEpisodeHandler implements HandlerInterface $this->logger->info('> [MonitorTvEpisodeHandler] ...Found 0 matching results found, monitor will run at next interval'); $monitor->setStatus('Active'); } - - $monitor->setLastSearch(new DateTimeImmutable()); - $monitor->setSearchCount($monitor->getSearchCount() + 1); - $this->entityManager->flush(); } catch (\Throwable $exception) { $this->logger->error('> [MonitorTvEpisodeHandler] ...Exception thrown: ' . $exception->getMessage()); $this->logger->error($exception->getMessage()); $monitor->setStatus('Active'); - $this->monitorRepository->getEntityManager()->flush(); } + $monitor->setLastSearch(new DateTimeImmutable()); + $monitor->setSearchCount($monitor->getSearchCount() + 1); + $this->monitorRepository->getEntityManager()->flush(); + return new MonitorTvEpisodeResult( status: 'OK', result: [