mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-29 01:01:24 +00:00
99 lines
4.1 KiB
PHP
99 lines
4.1 KiB
PHP
<?php
|
|
|
|
namespace App\Transformers;
|
|
|
|
use App\Models\Category;
|
|
use Illuminate\Support\Carbon;
|
|
use League\Fractal\TransformerAbstract;
|
|
|
|
class ApiTransformer extends TransformerAbstract
|
|
{
|
|
protected $user;
|
|
|
|
/**
|
|
* ApiTransformer constructor.
|
|
*
|
|
* @param $user
|
|
*/
|
|
public function __construct($user)
|
|
{
|
|
$this->user = $user;
|
|
}
|
|
|
|
/**
|
|
* @param \stdClass $releases
|
|
*
|
|
* @return array
|
|
*/
|
|
public function transform(\stdClass $releases): array
|
|
{
|
|
if (\in_array($releases->categories_id, Category::MOVIES_GROUP, false)) {
|
|
return [
|
|
'title' => $releases->searchname,
|
|
'details' => url('/').'/details/'.$releases->guid,
|
|
'url' => url('/').'/getnzb?id='.$releases->guid.'.nzb'.'&i='.$this->user->id.'&r='.$this->user->api_token,
|
|
'category' => $releases->categories_id,
|
|
'category_name' => $releases->category_name,
|
|
'added' => Carbon::parse($releases->adddate)->toRssString(),
|
|
'size' => $releases->size,
|
|
'files' => $releases->totalpart,
|
|
'poster' => $releases->fromname,
|
|
'imdbid' => $releases->imdbid,
|
|
'tmdbid' => $releases->tmdbid,
|
|
'traktid' => $releases->traktid !== 0 ? $releases->traktid : $this->null(),
|
|
'grabs' => $releases->grabs !== 0 ? $releases->grabs : $this->null(),
|
|
'comments' => $releases->comments !== 0 ? $releases->comments : $this->null(),
|
|
'password' => $releases->passwordstatus,
|
|
'usenetdate' => Carbon::parse($releases->postdate)->toRssString(),
|
|
'group' => $releases->group_name,
|
|
];
|
|
}
|
|
|
|
if (\in_array($releases->categories_id, Category::TV_GROUP, false)) {
|
|
return [
|
|
'title' => $releases->searchname,
|
|
'details' => url('/').'/details/'.$releases->guid,
|
|
'url' => url('/').'/getnzb?id='.$releases->guid.'.nzb'.'&i='.$this->user->id.'&r='.$this->user->api_token,
|
|
'category' => $releases->categories_id,
|
|
'category_name' => $releases->category_name,
|
|
'added' => Carbon::parse($releases->adddate)->toRssString(),
|
|
'size' => $releases->size,
|
|
'files' => $releases->totalpart,
|
|
'poster' => $releases->fromname,
|
|
'episode_title' => $releases->title,
|
|
'season' =>$releases->series,
|
|
'episode' =>$releases->episode,
|
|
'tvairdate' => $releases->firstaired,
|
|
'tvdbid' => $releases->tvdb,
|
|
'traktid' => $releases->trakt,
|
|
'tvrageid' => $releases->tvrage,
|
|
'tvmazeid' => $releases->tvmaze,
|
|
'imdbid' => $releases->imdb,
|
|
'tmdbid' => $releases->tmdb,
|
|
'grabs' => $releases->grabs !== 0 ? $releases->grabs : $this->null(),
|
|
'comments' => $releases->comments !== 0 ? $releases->comments : $this->null(),
|
|
'password' => $releases->passwordstatus,
|
|
'usenetdate' => Carbon::parse($releases->postdate)->toRssString(),
|
|
'group' => $releases->group_name,
|
|
];
|
|
}
|
|
|
|
return [
|
|
'title' => $releases->searchname,
|
|
'details' => url('/').'/details/'.$releases->guid,
|
|
'url' => url('/').'/getnzb?id='.$releases->guid.'.nzb'.'&i='.$this->user->id.'&r='.$this->user->api_token,
|
|
'category' => $releases->categories_id,
|
|
'category_name' => $releases->category_name,
|
|
'added' => Carbon::parse($releases->adddate)->toRssString(),
|
|
'size' => $releases->size,
|
|
'files' => $releases->totalpart,
|
|
'poster' => $releases->fromname,
|
|
'grabs' => $releases->grabs !== 0 ? $releases->grabs : $this->null(),
|
|
'comments' => $releases->comments !== 0 ? $releases->comments : $this->null(),
|
|
'password' => $releases->passwordstatus,
|
|
'usenetdate' => Carbon::parse($releases->postdate)->toRssString(),
|
|
'group' => $releases->group_name,
|
|
];
|
|
}
|
|
}
|