diff --git a/Blacklight/Releases.php b/Blacklight/Releases.php index 3c12de257..774a8f60e 100644 --- a/Blacklight/Releases.php +++ b/Blacklight/Releases.php @@ -55,42 +55,44 @@ class Releases extends Release $orderBy = $this->getBrowseOrder($orderBy); - $qry = sprintf( - "SELECT r.id, r.searchname, r.groups_id, r.guid, r.postdate, r.categories_id, r.size, r.totalpart, r.fromname, r.passwordstatus, r.grabs, r.comments, r.adddate, r.videos_id, r.tv_episodes_id, r.haspreview, r.jpgstatus, cp.title AS parent_category, c.title AS sub_category, g.name as group_name, - CONCAT(cp.title, ' > ', c.title) AS category_name, - CONCAT(cp.id, ',', c.id) AS category_ids, - df.failed AS failed, - rn.releases_id AS nfoid, - re.releases_id AS reid, - v.tvdb, v.trakt, v.tvrage, v.tvmaze, v.imdb, v.tmdb, - tve.title, tve.firstaired - FROM releases r - 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 - LEFT OUTER JOIN videos v ON r.videos_id = v.id - LEFT OUTER JOIN tv_episodes tve ON r.tv_episodes_id = tve.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 - LEFT OUTER JOIN dnzb_failures df ON df.release_id = r.id - WHERE r.nzbstatus = %d - AND r.passwordstatus %s - %s %s %s %s %s - GROUP BY r.id - ORDER BY %s %s - LIMIT %d OFFSET %d", - NZB::NZB_ADDED, - $this->showPasswords(), - Category::getCategorySearch($cat), - ($maxAge > 0 ? (' AND r.postdate > NOW() - INTERVAL '.$maxAge.' DAY ') : ''), - (\count($excludedCats) ? (' AND r.categories_id NOT IN ('.implode(',', $excludedCats).')') : ''), - ((int) $groupName !== -1 ? sprintf(' AND g.name = %s ', escapeString($groupName)) : ''), - ($minSize > 0 ? sprintf('AND r.size >= %d', $minSize) : ''), - $orderBy[0], - $orderBy[1], - $num, - $start - ); + $qry = sprintf( + "SELECT DISTINCT r.id, r.searchname, r.groups_id, r.guid, r.postdate, r.categories_id, + r.size, r.totalpart, r.fromname, r.passwordstatus, r.grabs, r.comments, + r.adddate, r.videos_id, r.tv_episodes_id, r.haspreview, r.jpgstatus, + cp.title AS parent_category, c.title AS sub_category, g.name as group_name, + CONCAT(cp.title, ' > ', c.title) AS category_name, + CONCAT(cp.id, ',', c.id) AS category_ids, + df.failed AS failed, + rn.releases_id AS nfoid, + re.releases_id AS reid, + v.tvdb, v.trakt, v.tvrage, v.tvmaze, v.imdb, v.tmdb, + tve.title, tve.firstaired + FROM releases r + 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 + LEFT JOIN videos v ON r.videos_id = v.id + LEFT JOIN tv_episodes tve ON r.tv_episodes_id = tve.id + LEFT JOIN video_data re ON re.releases_id = r.id + LEFT JOIN release_nfos rn ON rn.releases_id = r.id + LEFT JOIN dnzb_failures df ON df.release_id = r.id + WHERE r.nzbstatus = %d + AND r.passwordstatus %s + %s %s %s %s %s + ORDER BY %s %s + LIMIT %d OFFSET %d", + NZB::NZB_ADDED, + $this->showPasswords(), + Category::getCategorySearch($cat), + ($maxAge > 0 ? (' AND r.postdate > NOW() - INTERVAL '.$maxAge.' DAY ') : ''), + (\count($excludedCats) ? (' AND r.categories_id NOT IN ('.implode(',', $excludedCats).')') : ''), + ((int) $groupName !== -1 ? sprintf(' AND g.name = %s ', escapeString($groupName)) : ''), + ($minSize > 0 ? sprintf('AND r.size >= %d', $minSize) : ''), + $orderBy[0], + $orderBy[1], + $num, + $start + ); $releases = Cache::get(md5($qry.$page)); if ($releases !== null) {