fix: renders media exists badge on movie results
This commit is contained in:
@@ -5,6 +5,8 @@ namespace App\Library\Action\Handler;
|
||||
use App\Base\Service\MediaFiles;
|
||||
use App\Library\Action\Command\LibrarySearchCommand;
|
||||
use App\Library\Action\Result\LibrarySearchResult;
|
||||
use App\Library\Dto\MediaFileDto;
|
||||
use Nihilarr\PTN;
|
||||
use OneToMany\RichBundle\Contract\CommandInterface;
|
||||
use OneToMany\RichBundle\Contract\HandlerInterface;
|
||||
use OneToMany\RichBundle\Contract\ResultInterface;
|
||||
@@ -16,6 +18,7 @@ class LibrarySearchHandler implements HandlerInterface
|
||||
{
|
||||
private array $searchTypes = [
|
||||
'episode_by_title' => 'episodeByTitle',
|
||||
'movie_by_title' => 'movieByTitle',
|
||||
];
|
||||
|
||||
public function __construct(
|
||||
@@ -31,6 +34,14 @@ class LibrarySearchHandler implements HandlerInterface
|
||||
|
||||
private function getSearchType(CommandInterface $command): ?string
|
||||
{
|
||||
if (!is_null($command->title) &&
|
||||
is_null($command->imdbId) &&
|
||||
is_null($command->season) &&
|
||||
is_null($command->episode)
|
||||
) {
|
||||
return 'movie_by_title';
|
||||
}
|
||||
|
||||
if ((!is_null($command->title) || is_null($command->imdbId)) &&
|
||||
!is_null($command->season) &&
|
||||
!is_null($command->episode)
|
||||
@@ -47,14 +58,26 @@ class LibrarySearchHandler implements HandlerInterface
|
||||
(int) $command->season,
|
||||
(int) $command->episode,
|
||||
);
|
||||
|
||||
$exists = $result instanceof \SplFileInfo;
|
||||
|
||||
|
||||
return new LibrarySearchResult(
|
||||
input: $command,
|
||||
exists: $exists,
|
||||
file: true === $exists ? $result->getFileInfo() : null,
|
||||
file: true === $exists ? MediaFileDto::fromSplFileInfo($result) : null,
|
||||
ptn: true === $exists ? (object) new PTN()->parse($result->getFilename()) : null,
|
||||
);
|
||||
}
|
||||
|
||||
private function movieByTitle(CommandInterface $command): ?LibrarySearchResult
|
||||
{
|
||||
$result = $this->mediaFiles->movieExists($command->title);
|
||||
$exists = $result instanceof \SplFileInfo;
|
||||
|
||||
return new LibrarySearchResult(
|
||||
input: $command,
|
||||
exists: $exists,
|
||||
file: true === $exists ? MediaFileDto::fromSplFileInfo($result) : null,
|
||||
ptn: true === $exists ? (object) new PTN()->parse($result->getFilename()) : null,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user