feat(Download): adds streaming and local download options
This commit is contained in:
@@ -68,4 +68,10 @@ class Torrentio
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
public function getDestinationUrl(string $url)
|
||||
{
|
||||
$request = get_headers($url)[8];
|
||||
return explode(' ', $request)[1];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ use App\Torrentio\Action\Handler\GetMovieOptionsHandler;
|
||||
use App\Torrentio\Action\Handler\GetTvShowOptionsHandler;
|
||||
use App\Torrentio\Action\Input\GetMovieOptionsInput;
|
||||
use App\Torrentio\Action\Input\GetTvShowOptionsInput;
|
||||
use App\Torrentio\Client\Torrentio;
|
||||
use App\Torrentio\Exception\TorrentioRateLimitException;
|
||||
use Carbon\Carbon;
|
||||
use OneToMany\RichBundle\Contract\ResultInterface;
|
||||
@@ -21,6 +22,8 @@ use Symfony\UX\Turbo\TurboBundle;
|
||||
|
||||
final class WebController extends AbstractController
|
||||
{
|
||||
const REAL_DEBRID_STREAM_URL = 'https://real-debrid.com/streaming-%s';
|
||||
|
||||
public function __construct(
|
||||
private readonly GetMovieOptionsHandler $getMovieOptionsHandler,
|
||||
private readonly GetTvShowOptionsHandler $getTvShowOptionsHandler,
|
||||
@@ -99,4 +102,14 @@ final class WebController extends AbstractController
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
#[Route('/torrentio/stream/{url}', name: 'app.torrentio.stream')]
|
||||
public function streamVideo(string $url, Torrentio $torrentio): Response
|
||||
{
|
||||
$destinationUrl = $torrentio->getDestinationUrl(\base64_decode($url));
|
||||
$urlPathParts = explode('/', parse_url($destinationUrl)['path']);
|
||||
$videoId = $urlPathParts[2];
|
||||
$url = sprintf(self::REAL_DEBRID_STREAM_URL, $videoId);
|
||||
return $this->redirect($url);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,4 +120,10 @@ class UtilExtension
|
||||
return $sentryConfig['javascript_url'] !== null &&
|
||||
$sentryConfig['javascript_url'] !== '';
|
||||
}
|
||||
|
||||
#[AsTwigFilter('base64_encode')]
|
||||
public function base64_encode(string $data): string
|
||||
{
|
||||
return \base64_encode($data);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user