2019-04-22 14:05:58 +00:00
|
|
|
<?php
|
2019-10-03 19:24:12 +00:00
|
|
|
|
2019-04-22 14:05:58 +00:00
|
|
|
/**
|
|
|
|
* JsonController class.
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Alltube\Controller;
|
|
|
|
|
2020-06-20 23:44:20 +00:00
|
|
|
use Alltube\Library\Exception\AlltubeLibraryException;
|
2019-04-22 14:05:58 +00:00
|
|
|
use Slim\Http\Request;
|
|
|
|
use Slim\Http\Response;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Controller that returns JSON.
|
|
|
|
*/
|
|
|
|
class JsonController extends BaseController
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Return the JSON object generated by youtube-dl.
|
|
|
|
*
|
2020-06-20 23:44:20 +00:00
|
|
|
* @param Request $request PSR-7 request
|
2019-04-22 14:05:58 +00:00
|
|
|
* @param Response $response PSR-7 response
|
|
|
|
*
|
|
|
|
* @return Response HTTP response
|
2020-06-20 23:44:20 +00:00
|
|
|
* @throws AlltubeLibraryException
|
2019-04-22 14:05:58 +00:00
|
|
|
*/
|
|
|
|
public function json(Request $request, Response $response)
|
|
|
|
{
|
|
|
|
$url = $request->getQueryParam('url');
|
|
|
|
|
|
|
|
if (isset($url)) {
|
2020-06-20 23:44:20 +00:00
|
|
|
$this->video = $this->downloader->getVideo(
|
|
|
|
$url,
|
|
|
|
$this->getFormat($request),
|
|
|
|
$this->getPassword($request)
|
|
|
|
);
|
2019-04-22 14:05:58 +00:00
|
|
|
|
2020-06-20 23:44:20 +00:00
|
|
|
return $response->withJson($this->video->getJson());
|
2019-04-22 14:05:58 +00:00
|
|
|
} else {
|
|
|
|
return $response->withJson(['error' => 'You need to provide the url parameter'])
|
|
|
|
->withStatus(400);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|