Fix the way failed releases are counted

This commit is contained in:
DariusIII
2015-10-22 23:11:50 +02:00
parent 85d188c8c7
commit fa262bdf90
2 changed files with 32 additions and 18 deletions
+1
View File
@@ -1,4 +1,5 @@
2015-10-22 DariusIII
Upd: Way how failed releases are counted
Fix: covgroup and failed notices
Fix: List of releases for specific show in myshows
Fix: Occurence of rageid
+31 -18
View File
@@ -200,36 +200,41 @@ class Releases
public function getBrowseRange($cat, $start, $num, $orderBy, $maxAge = -1, $excludedCats = [], $groupName = '')
{
$orderBy = $this->getBrowseOrder($orderBy);
return $this->pdo->query(
sprintf(
"SELECT r.*,
$qry = sprintf(
"SELECT r.*,
CONCAT(cp.title, ' > ', c.title) AS category_name,
CONCAT(cp.id, ',', c.id) AS category_ids,
(SELECT COUNT(userid) FROM dnzb_failures WHERE guid = r.guid) AS failed,
COUNT(df.id) AS failed,
g.name AS group_name,
rn.id AS nfoid,
re.releaseid AS reid
re.releaseid AS reid,
tve.title, tve.firstaired
FROM releases r
STRAIGHT_JOIN groups g ON g.id = r.groupid
STRAIGHT_JOIN category c ON c.id = r.categoryid
INNER JOIN category cp ON cp.id = c.parentid
LEFT OUTER JOIN tv_episodes tve ON r.tv_episodes_id = tve.id
LEFT OUTER JOIN releasevideo re ON re.releaseid = r.id
LEFT OUTER JOIN releasenfo rn ON rn.releaseid = r.id
LEFT OUTER JOIN dnzb_failures df ON df.guid = r.guid
WHERE r.nzbstatus = %d
AND r.passwordstatus %s
%s %s %s %s
GROUP BY r.id
ORDER BY %s %s %s",
NZB::NZB_ADDED,
$this->showPasswords,
$this->categorySQL($cat),
($maxAge > 0 ? (" AND postdate > NOW() - INTERVAL " . $maxAge . ' DAY ') : ''),
(count($excludedCats) ? (' AND r.categoryid NOT IN (' . implode(',', $excludedCats) . ')') : ''),
($groupName != '' ? sprintf(' AND g.name = %s ', $this->pdo->escapeString($groupName)) : ''),
$orderBy[0],
$orderBy[1],
($start === false ? '' : ' LIMIT ' . $num . ' OFFSET ' . $start)
), true, NN_CACHE_EXPIRY_MEDIUM
NZB::NZB_ADDED,
$this->showPasswords,
$this->categorySQL($cat),
($maxAge > 0 ? (" AND postdate > NOW() - INTERVAL " . $maxAge . ' DAY ') : ''),
(count($excludedCats) ? (' AND r.categoryid NOT IN (' . implode(',', $excludedCats) . ')') : ''),
($groupName != '' ? sprintf(' AND g.name = %s ', $this->pdo->escapeString($groupName)) : ''),
$orderBy[0],
$orderBy[1],
($start === false ? '' : ' LIMIT ' . $num . ' OFFSET ' . $start)
);
$sql = $this->pdo->query($qry, true, NN_CACHE_EXPIRY_MEDIUM);
return $sql;
}
/**
@@ -470,18 +475,23 @@ class Releases
CONCAT(cp.title, '-', c.title) AS category_name,
%s AS category_ids,
groups.name AS group_name,
rn.id AS nfoid, re.releaseid AS reid
rn.id AS nfoid, re.releaseid AS reid,
tve.firstaired,
COUNT(df.id) AS failed
FROM releases r
LEFT OUTER JOIN releasevideo re ON re.releaseid = r.id
INNER JOIN groups ON groups.id = r.groupid
LEFT OUTER JOIN releasenfo rn ON rn.releaseid = r.id
LEFT OUTER JOIN tv_episodes tve ON tve.videos_id = r.videos_id
INNER JOIN category c ON c.id = r.categoryid
INNER JOIN category cp ON cp.id = c.parentid
LEFT OUTER JOIN dnzb_failures df ON df.guid = r.guid
WHERE %s %s
AND r.nzbstatus = %d
AND r.categoryid BETWEEN 5000 AND 5999
AND r.passwordstatus %s
%s
GROUP BY r.id
ORDER BY %s %s %s",
$this->getConcatenatedCategoryIDs(),
$this->uSQL($userShows, 'videos_id'),
@@ -869,17 +879,20 @@ class Releases
"SELECT r.*,
CONCAT(cp.title, ' > ', c.title) AS category_name,
%s AS category_ids,
(SELECT COUNT(userid) FROM dnzb_failures WHERE guid = r.guid) AS failed,
groups.name AS group_name,
rn.id AS nfoid,
re.releaseid AS reid,
cp.id AS categoryparentid
cp.id AS categoryparentid,
tve.firstaired,
COUNT(df.id) AS failed
FROM releases r
LEFT OUTER JOIN releasevideo re ON re.releaseid = r.id
LEFT OUTER JOIN tv_episodes tve ON r.tv_episodes_id = tve.id
LEFT OUTER JOIN releasenfo rn ON rn.releaseid = r.id
INNER JOIN groups ON groups.id = r.groupid
INNER JOIN category c ON c.id = r.categoryid
INNER JOIN category cp ON cp.id = c.parentid
LEFT OUTER JOIN dnzb_failures df ON df.guid = r.guid
%s",
$this->getConcatenatedCategoryIDs(),
$whereSql