diff --git a/Blacklight/Releases.php b/Blacklight/Releases.php index 24bc599c5..7e56b9e31 100644 --- a/Blacklight/Releases.php +++ b/Blacklight/Releases.php @@ -50,7 +50,7 @@ class Releases extends Release * * @return Collection|mixed */ - public function getBrowseRange($page, $cat, $start, $num, $orderBy, int $maxAge = -1, array $excludedCats = [], int|string $groupName = -1, int $minSize = 0, array $tags = []): mixed + public function getBrowseRange($page, $cat, $start, $num, $orderBy, int $maxAge = -1, array $excludedCats = [], int|string $groupName = -1, int $minSize = 0): mixed { $orderBy = $this->getBrowseOrder($orderBy); @@ -70,7 +70,7 @@ class Releases extends Release LEFT JOIN usenet_groups g ON g.id = r.groups_id WHERE r.nzbstatus = %d AND r.passwordstatus %s - %s %s %s %s %s %s + %s %s %s %s %s ORDER BY %s %s %s ) r LEFT JOIN categories c ON c.id = r.categories_id @@ -84,7 +84,6 @@ class Releases extends Release ORDER BY %10\$s %11\$s", NZB::NZB_ADDED, $this->showPasswords(), - ! empty($tags) ? " AND tt.tag_name IN ('".implode("','", $tags)."')" : '', Category::getCategorySearch($cat), ($maxAge > 0 ? (' AND postdate > NOW() - INTERVAL '.$maxAge.' DAY ') : ''), (\count($excludedCats) ? (' AND r.categories_id NOT IN ('.implode(',', $excludedCats).')') : ''), @@ -101,7 +100,7 @@ class Releases extends Release } $sql = self::fromQuery($qry); if (\count($sql) > 0) { - $possibleRows = $this->getBrowseCount($cat, $maxAge, $excludedCats, $groupName, $tags); + $possibleRows = $this->getBrowseCount($cat, $maxAge, $excludedCats, $groupName); $sql[0]->_totalcount = $sql[0]->_totalrows = $possibleRows; } $expiresAt = now()->addMinutes(config('nntmux.cache_expiry_medium')); @@ -113,22 +112,20 @@ class Releases extends Release /** * Used for pager on browse page. */ - public function getBrowseCount(array $cat, int $maxAge = -1, array $excludedCats = [], int|string $groupName = '', array $tags = []): int + public function getBrowseCount(array $cat, int $maxAge = -1, array $excludedCats = [], int|string $groupName = ''): int { return $this->getPagerCount(sprintf( 'SELECT COUNT(r.id) AS count FROM releases r - %s %s + %s WHERE r.nzbstatus = %d AND r.passwordstatus %s %s - %s %s %s %s ', + %s %s %s ', ($groupName !== -1 ? 'LEFT JOIN usenet_groups g ON g.id = r.groups_id' : ''), - ! empty($tags) ? ' LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id' : '', NZB::NZB_ADDED, $this->showPasswords(), ($groupName !== -1 ? sprintf(' AND g.name = %s', escapeString($groupName)) : ''), - ! empty($tags) ? ' AND tt.tag_name IN ('.escapeString(implode(',', $tags)).')' : '', Category::getCategorySearch($cat), ($maxAge > 0 ? (' AND r.postdate > NOW() - INTERVAL '.$maxAge.' DAY ') : ''), (\count($excludedCats) ? (' AND r.categories_id NOT IN ('.implode(',', $excludedCats).')') : '') @@ -437,7 +434,7 @@ class Releases extends Release * * @return array|Collection|mixed */ - public function search(array $searchArr, $groupName, $sizeFrom, $sizeTo, $daysNew, $daysOld, int $offset = 0, int $limit = 1000, array|string $orderBy = '', int $maxAge = -1, array $excludedCats = [], string $type = 'basic', array $cat = [-1], int $minSize = 0, array $tags = []): mixed + public function search(array $searchArr, $groupName, $sizeFrom, $sizeTo, $daysNew, $daysOld, int $offset = 0, int $limit = 1000, array|string $orderBy = '', int $maxAge = -1, array $excludedCats = [], string $type = 'basic', array $cat = [-1], int $minSize = 0): mixed { $sizeRange = [ 1 => 1, @@ -483,10 +480,9 @@ class Releases extends Release $catQuery = sprintf('AND r.categories_id = %d', $cat[0]); } $whereSql = sprintf( - 'WHERE r.passwordstatus %s AND r.nzbstatus = %d %s %s %s %s %s %s %s %s %s %s %s', + 'WHERE r.passwordstatus %s AND r.nzbstatus = %d %s %s %s %s %s %s %s %s %s %s', $this->showPasswords(), NZB::NZB_ADDED, - ! empty($tags) ? " AND tt.tag_name IN ('".implode("','", $tags)."')" : '', ($maxAge > 0 ? sprintf(' AND r.postdate > (NOW() - INTERVAL %d DAY) ', $maxAge) : ''), ((int) $groupName !== -1 ? sprintf(' AND r.groups_id = %d ', UsenetGroup::getIDByName($groupName)) : ''), (array_key_exists($sizeFrom, $sizeRange) ? ' AND r.size > '.(104857600 * (int) $sizeRange[$sizeFrom]).' ' : ''), @@ -517,8 +513,7 @@ class Releases extends Release LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN root_categories cp ON cp.id = c.root_categories_id LEFT OUTER JOIN dnzb_failures df ON df.release_id = r.id - %s %s", - ! empty($tags) ? ' LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id' : '', + %s", $whereSql ); $sql = sprintf( @@ -553,7 +548,7 @@ class Releases extends Release * * @return Collection|mixed */ - public function apiSearch($searchName, $groupName, int $offset = 0, int $limit = 1000, int $maxAge = -1, array $excludedCats = [], array $cat = [-1], int $minSize = 0, array $tags = []): mixed + public function apiSearch($searchName, $groupName, int $offset = 0, int $limit = 1000, int $maxAge = -1, array $excludedCats = [], array $cat = [-1], int $minSize = 0): mixed { if ($searchName !== -1) { if (config('nntmux.elasticsearch_enabled') === true) { @@ -566,10 +561,9 @@ class Releases extends Release $catQuery = Category::getCategorySearch($cat); $whereSql = sprintf( - 'WHERE r.passwordstatus %s AND r.nzbstatus = %d %s %s %s %s %s %s %s', + 'WHERE r.passwordstatus %s AND r.nzbstatus = %d %s %s %s %s %s %s', $this->showPasswords(), NZB::NZB_ADDED, - ! empty($tags) ? " AND tt.tag_name IN ('".implode("','", $tags)."')" : '', ($maxAge > 0 ? sprintf(' AND r.postdate > (NOW() - INTERVAL %d DAY) ', $maxAge) : ''), ((int) $groupName !== -1 ? sprintf(' AND r.groups_id = %d ', UsenetGroup::getIDByName($groupName)) : ''), $catQuery, @@ -591,8 +585,7 @@ class Releases extends Release LEFT JOIN usenet_groups g ON g.id = r.groups_id LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN root_categories cp ON cp.id = c.root_categories_id - %s %s", - ! empty($tags) ? ' LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id' : '', + %s", $whereSql ); $sql = sprintf( @@ -632,7 +625,7 @@ class Releases extends Release * * @return array|\Illuminate\Cache\|\Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection|mixed */ - public function tvSearch(array $siteIdArr = [], string $series = '', string $episode = '', string $airDate = '', int $offset = 0, int $limit = 100, string $name = '', array $cat = [-1], int $maxAge = -1, int $minSize = 0, array $excludedCategories = [], array $tags = []): mixed + public function tvSearch(array $siteIdArr = [], string $series = '', string $episode = '', string $airDate = '', int $offset = 0, int $limit = 100, string $name = '', array $cat = [-1], int $maxAge = -1, int $minSize = 0, array $excludedCategories = []): mixed { $siteSQL = []; $showSql = ''; @@ -702,10 +695,9 @@ class Releases extends Release $whereSql = sprintf( 'WHERE r.nzbstatus = %d AND r.passwordstatus %s - %s %s %s %s %s %s %s', + %s %s %s %s %s %s', NZB::NZB_ADDED, $this->showPasswords(), - ! empty($tags) ? " AND tt.tag_name IN ('".implode("','", $tags)."')" : '', $showSql, (! empty($name) && ! empty($searchResult)) ? 'AND r.id IN ('.implode(',', $searchResult).')' : '', (empty($searchResult)) ? Category::getCategorySearch($cat) : '', @@ -732,8 +724,7 @@ class Releases extends Release LEFT JOIN usenet_groups g ON g.id = r.groups_id LEFT OUTER JOIN video_data re ON re.releases_id = r.id LEFT OUTER JOIN release_nfos rn ON rn.releases_id = r.id - %s %s", - ! empty($tags) ? ' LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id' : '', + %s", $whereSql ); $sql = sprintf( @@ -766,7 +757,7 @@ class Releases extends Release * * @return Collection|mixed */ - public function apiTvSearch(array $siteIdArr = [], string $series = '', string $episode = '', string $airDate = '', int $offset = 0, int $limit = 100, string $name = '', array $cat = [-1], int $maxAge = -1, int $minSize = 0, array $excludedCategories = [], array $tags = []): mixed + public function apiTvSearch(array $siteIdArr = [], string $series = '', string $episode = '', string $airDate = '', int $offset = 0, int $limit = 100, string $name = '', array $cat = [-1], int $maxAge = -1, int $minSize = 0, array $excludedCategories = []): mixed { $siteSQL = []; $showSql = ''; @@ -836,10 +827,9 @@ class Releases extends Release $whereSql = sprintf( 'WHERE r.nzbstatus = %d AND r.passwordstatus %s - %s %s %s %s %s %s %s', + %s %s %s %s %s %s', NZB::NZB_ADDED, $this->showPasswords(), - ! empty($tags) ? " AND tt.tag_name IN ('".implode("','", $tags)."')" : '', $showSql, (! empty($searchResult) ? 'AND r.id IN ('.implode(',', $searchResult).')' : ''), Category::getCategorySearch($cat), @@ -860,8 +850,7 @@ class Releases extends Release LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN root_categories cp ON cp.id = c.root_categories_id LEFT JOIN usenet_groups g ON g.id = r.groups_id - %s %s", - ! empty($tags) ? ' LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id' : '', + %s", $whereSql ); $sql = sprintf( @@ -963,7 +952,7 @@ class Releases extends Release * * @return Collection|mixed */ - public function moviesSearch(int $imDbId = -1, int $tmDbId = -1, int $traktId = -1, int $offset = 0, int $limit = 100, string $name = '', array $cat = [-1], int $maxAge = -1, int $minSize = 0, array $excludedCategories = [], array $tags = []): mixed + public function moviesSearch(int $imDbId = -1, int $tmDbId = -1, int $traktId = -1, int $offset = 0, int $limit = 100, string $name = '', array $cat = [-1], int $maxAge = -1, int $minSize = 0, array $excludedCategories = []): mixed { if (! empty($name)) { if (config('nntmux.elasticsearch_enabled') === true) { @@ -981,11 +970,10 @@ class Releases extends Release 'WHERE r.categories_id BETWEEN '.Category::MOVIE_ROOT.' AND '.Category::MOVIE_OTHER.' AND r.nzbstatus = %d AND r.passwordstatus %s - %s %s %s %s %s %s %s %s', + %s %s %s %s %s %s %s', NZB::NZB_ADDED, $this->showPasswords(), (! empty($searchResult) ? 'AND r.id IN ('.implode(',', $searchResult).')' : ''), - ! empty($tags) ? " AND tt.tag_name IN ('".implode("','", $tags)."')" : '', ($imDbId !== -1 && is_numeric($imDbId)) ? sprintf(' AND m.imdbid = %d ', $imDbId) : '', ($tmDbId !== -1 && is_numeric($tmDbId)) ? sprintf(' AND m.tmdbid = %d ', $tmDbId) : '', ($traktId !== -1 && is_numeric($traktId)) ? sprintf(' AND m.traktid = %d ', $traktId) : '', @@ -1005,8 +993,7 @@ class Releases extends Release LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN root_categories cp ON cp.id = c.root_categories_id LEFT OUTER JOIN release_nfos rn ON rn.releases_id = r.id - %s %s", - ! empty($tags) ? ' LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id' : '', + %s", $whereSql ); $sql = sprintf( diff --git a/app/Http/Controllers/Api/ApiV2Controller.php b/app/Http/Controllers/Api/ApiV2Controller.php index 2fd782882..a9583bfad 100644 --- a/app/Http/Controllers/Api/ApiV2Controller.php +++ b/app/Http/Controllers/Api/ApiV2Controller.php @@ -69,7 +69,6 @@ class ApiV2Controller extends BasePageController $imdbId = $request->has('imdbid') && ! empty($request->input('imdbid')) ? $request->input('imdbid') : -1; $tmdbId = $request->has('tmdbid') && ! empty($request->input('tmdbid')) ? $request->input('tmdbid') : -1; $traktId = $request->has('traktid') && ! empty($request->input('traktid')) ? $request->input('traktid') : -1; - $tags = $request->has('tags') && ! empty($request->input('tags')) ? explode(',', $request->input('tags')) : []; $relData = $releases->moviesSearch( $imdbId, @@ -81,8 +80,7 @@ class ApiV2Controller extends BasePageController $api->categoryID(), $maxAge, $minSize, - $catExclusions, - $tags + $catExclusions ); $time = UserRequest::whereUsersId($user->id)->min('timestamp'); @@ -116,7 +114,6 @@ class ApiV2Controller extends BasePageController $offset = $api->offset(); $catExclusions = User::getCategoryExclusionForApi($request); $minSize = $request->has('minsize') && $request->input('minsize') > 0 ? $request->input('minsize') : 0; - $tags = $request->has('tags') && ! empty($request->input('tags')) ? explode(',', $request->input('tags')) : []; $maxAge = $api->maxAge(); $groupName = $api->group(); UserRequest::addApiRequest($request->input('api_token'), $request->getRequestUri()); @@ -133,8 +130,7 @@ class ApiV2Controller extends BasePageController $maxAge, $catExclusions, $categoryID, - $minSize, - $tags + $minSize ); } else { $relData = $releases->getBrowseRange( @@ -146,8 +142,7 @@ class ApiV2Controller extends BasePageController $maxAge, $catExclusions, $groupName, - $minSize, - $tags + $minSize ); } @@ -181,7 +176,6 @@ class ApiV2Controller extends BasePageController $user = User::query()->where('api_token', $request->input('api_token'))->first(); $catExclusions = User::getCategoryExclusionForApi($request); $minSize = $request->has('minsize') && $request->input('minsize') > 0 ? $request->input('minsize') : 0; - $tags = $request->has('tags') && ! empty($request->input('tags')) ? explode(',', $request->input('tags')) : []; $api->verifyEmptyParameter('id'); $api->verifyEmptyParameter('vid'); $api->verifyEmptyParameter('tvdbid'); @@ -226,8 +220,7 @@ class ApiV2Controller extends BasePageController $api->categoryID(), $maxAge, $minSize, - $catExclusions, - $tags + $catExclusions ); $time = UserRequest::whereUsersId($user->id)->min('timestamp'); diff --git a/app/Http/Controllers/BrowseController.php b/app/Http/Controllers/BrowseController.php index 1528fee01..0193ae48a 100644 --- a/app/Http/Controllers/BrowseController.php +++ b/app/Http/Controllers/BrowseController.php @@ -188,42 +188,4 @@ class BrowseController extends BasePageController $this->pagerender(); } } - - /** - * @throws \Exception - */ - public function tags(Request $request): void - { - $this->setPreferences(); - $releases = new Releases(); - if ($request->has('tags')) { - $tags = explode(',', $request->input('tags')); - $page = request()->has('page') && is_numeric(request()->input('page')) ? request()->input('page') : 1; - $offset = ($page - 1) * config('nntmux.items_per_page'); - $rslt = $releases->getBrowseRange($page, [-1], $offset, config('nntmux.items_per_page'), '', -1, $this->userdata->categoryexclusions, -1, 0, $tags); - $results = $this->paginate($rslt ?? [], $rslt[0]->_totalcount ?? 0, config('nntmux.items_per_page'), $page, request()->url(), request()->query()); - - $browse = []; - - foreach ($results as $result) { - $browse[] = $result; - } - - $this->smarty->assign( - [ - 'results' => $results, - 'resultsadd' => $browse, - 'catname' => 'all', - ] - ); - $meta_title = 'Browse Groups'; - $meta_keywords = 'browse,nzb,description,details'; - $meta_description = 'Browse Groups'; - $content = $this->smarty->fetch('browse.tpl'); - - $this->smarty->assign(compact('content', 'meta_title', 'meta_keywords', 'meta_description')); - - $this->pagerender(); - } - } } diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index e8187c25b..f493f49da 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -66,11 +66,6 @@ class SearchController extends BasePageController url('/search?id='.htmlentities($searchString['searchname'], ENT_QUOTES | ENT_HTML5).'&t='.implode(',', $categoryID).'&ob='.$orderType)); } - $tags = []; - if ($request->has('tags')) { - $tags = explode(',', $request->input('tags')); - } - $rslt = $releases->search( $searchString, -1, @@ -84,10 +79,7 @@ class SearchController extends BasePageController -1, $this->userdata->categoryexclusions ?? [], 'basic', - $categoryID, - 0, - $tags ?? [] - ); + $categoryID); $results = $this->paginate($rslt ?? [], $rslt[0]->_totalrows ?? 0, config('nntmux.items_per_page'), $page, request()->url(), request()->query());