feat: adds torrentio api endpoint
This commit is contained in:
@@ -32,7 +32,7 @@ class Torrentio
|
||||
]);
|
||||
}
|
||||
|
||||
public function search(string $imdbCode, string $type, array $filter = []): array
|
||||
public function search(string $imdbCode, string $type, bool $parseResults = true): array
|
||||
{
|
||||
$cacheKey = "torrentio.{$imdbCode}";
|
||||
|
||||
@@ -56,10 +56,14 @@ class Torrentio
|
||||
return [];
|
||||
});
|
||||
|
||||
return $this->parse($results, $filter);
|
||||
if (true === $parseResults) {
|
||||
return $this->parse($results);
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
public function fetchEpisodeResults(string $imdbId, int $season, int $episode): array
|
||||
public function fetchEpisodeResults(string $imdbId, int $season, int $episode, bool $parseResults = true): array
|
||||
{
|
||||
$cacheKey = "torrentio.$imdbId.$season.$episode";
|
||||
$results = $this->cache->get($cacheKey, function (ItemInterface $item) use ($imdbId, $season, $episode) {
|
||||
@@ -86,18 +90,15 @@ class Torrentio
|
||||
throw new TorrentioRateLimitException();
|
||||
}
|
||||
|
||||
return $this->parse($results, []);
|
||||
}
|
||||
|
||||
public function parse(array $data, array $filter): array
|
||||
{
|
||||
$ruleEngine = new RuleEngine();
|
||||
foreach ($filter as $rule => $value) {
|
||||
if ('resolution' === $rule) {
|
||||
$ruleEngine->addRule(new Resolution($value));
|
||||
}
|
||||
if (true === $parseResults) {
|
||||
return $this->parse($results);
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
public function parse(array $data): array
|
||||
{
|
||||
$results = [];
|
||||
foreach ($data['streams'] as $stream) {
|
||||
if (!str_starts_with($stream['url'], "https")) {
|
||||
@@ -119,9 +120,7 @@ class Torrentio
|
||||
$bingeGroup
|
||||
);
|
||||
|
||||
if ($ruleEngine->validateAll($result)) {
|
||||
$results[] = $result;
|
||||
}
|
||||
$results[] = $result;
|
||||
}
|
||||
|
||||
return $results;
|
||||
|
||||
Reference in New Issue
Block a user