*/ public static function toArrayFromRelease( Release|\stdClass $release, User $user, ?string $detailsBaseUrl = null, ?string $getNzbBaseUrl = null ): array { $get = static fn (string $key, mixed $default = null): mixed => $release->{$key} ?? $default; $categoriesId = (int) $get('categories_id', 0); $guid = (string) $get('guid', ''); $detailsBaseUrl ??= url('/details').'/'; $getNzbBaseUrl ??= url('/getnzb'); $base = [ 'title' => (string) $get('searchname', ''), 'details' => $detailsBaseUrl.$guid, 'link' => $getNzbBaseUrl.'?id='.$guid.'.nzb&r='.$user->api_token, 'category' => $categoriesId, 'category_name' => $get('category_name'), 'added' => Carbon::parse($get('adddate'))->toRssString(), 'size' => $get('size'), 'files' => $get('totalpart'), 'grabs' => $get('grabs'), 'comments' => $get('comments'), 'password' => $get('passwordstatus'), 'usenetdate' => Carbon::parse($get('postdate'))->toRssString(), ]; if (in_array($categoriesId, Category::MOVIES_GROUP, true)) { return $base + [ 'imdbid' => $get('imdbid'), ]; } if (in_array($categoriesId, Category::TV_GROUP, true)) { return $base + [ 'imdbid' => $get('imdb'), 'tmdbid' => $get('tmdb'), 'traktid' => $get('trakt'), 'tvairdate' => $get('firstaired'), 'tvdbid' => $get('tvdb'), 'tvrageid' => $get('tvrage'), 'tvmazeid' => $get('tvmaze'), ]; } return $base; } }