mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-29 01:08:56 +00:00
85 lines
2.7 KiB
PHP
85 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Models\Category;
|
|
use App\Models\Settings;
|
|
use App\Extensions\util\Versions;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\UserRequest;
|
|
use App\Transformers\CategoryTransformer;
|
|
use App\Transformers\MoviesTransformer;
|
|
use Blacklight\http\API;
|
|
use Blacklight\Releases;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ApiV2Controller extends Controller
|
|
{
|
|
/**
|
|
* @throws \Exception
|
|
*/
|
|
public function capabilities()
|
|
{
|
|
$serverroot = url('/');
|
|
$category = Category::getForApi();
|
|
|
|
$capabilities = [
|
|
'server' => [
|
|
'appversion' => (new Versions())->getGitTagInFile(),
|
|
'version' => (new Versions())->getGitTagInRepo(),
|
|
'title' => Settings::settingValue('site.main.title'),
|
|
'strapline' => Settings::settingValue('site.main.strapline'),
|
|
'email' => Settings::settingValue('site.main.email'),
|
|
'url' => $serverroot,
|
|
],
|
|
'limits' => [
|
|
'max' => 100,
|
|
'default' => 100,
|
|
],
|
|
'registration' => [
|
|
'available' => 'no',
|
|
'open' => (int) Settings::settingValue('..registerstatus') === 0 ? 'yes' : 'no',
|
|
],
|
|
'searching' => [
|
|
'search' => ['available' => 'yes', 'supportedParams' => 'id'],
|
|
'tv-search' => ['available' => 'yes', 'supportedParams' => 'id,vid,tvdbid,traktid,rid,tvmazeid,imdbid,tmdbid,season,ep'],
|
|
'movie-search' => ['available' => 'yes', 'supportedParams' => 'id, imdbid'],
|
|
'audio-search' => ['available' => 'no', 'supportedParams' => ''],
|
|
],
|
|
'categories' => fractal($category, new CategoryTransformer()),
|
|
];
|
|
|
|
return response()->json($capabilities);
|
|
}
|
|
|
|
/**
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\JsonResponse
|
|
* @throws \Exception
|
|
*/
|
|
public function movie(Request $request)
|
|
{
|
|
$api = new API();
|
|
$releases = new Releases();
|
|
$minSize = $request->has('minsize') && $request->input('minsize') > 0 ? $request->input('minsize') : 0;
|
|
$maxAge = $api->maxAge();
|
|
UserRequest::addApiRequest(\Auth::id(), $request->getRequestUri());
|
|
|
|
$imdbId = $request->input('imdbid') ?? -1;
|
|
|
|
$relData = $releases->moviesSearch(
|
|
$imdbId,
|
|
$api->offset(),
|
|
$api->limit(),
|
|
$request->input('id') ?? '',
|
|
$api->categoryID(),
|
|
$maxAge,
|
|
$minSize
|
|
);
|
|
|
|
$relData = fractal($relData, new MoviesTransformer());
|
|
|
|
return response()->json($relData);
|
|
}
|
|
}
|