Change hash16k and srr name fixing queries and support in groupfixrelnames and NameFixer

This commit is contained in:
DariusIII
2017-05-09 13:53:28 +02:00
parent 0fe6e0529e
commit f314618a0d
6 changed files with 84 additions and 26 deletions
+2
View File
@@ -1,3 +1,5 @@
2017-05-09 DariusIII
* Chg: Change hash16k and srr name fixing queries and support in groupfixrelnames and NameFixer
2017-05-08 DariusIII
* Chg: Use reset function in NameFixer
* Chg: Update AniDb queries and handling
+2 -2
View File
@@ -16,8 +16,8 @@
</last>
</scripts>
<sql>
<db>306</db>
<file>306</file>
<db>307</db>
<file>307</file>
</sql>
</versions>
</nntmux>
+31 -6
View File
@@ -27,7 +27,7 @@ $thread = $pieces[3];
switch (true) {
case $pieces[0] === 'standard' && isset($guidChar) && isset($maxperrun) && is_numeric($maxperrun):
case $pieces[0] === 'standard' && $guidChar !== null && $maxperrun !== null && is_numeric($maxperrun):
// Allow for larger filename return sets
$pdo->queryExec('SET SESSION group_concat_max_len = 32768');
@@ -38,7 +38,8 @@ switch (true) {
sprintf("
SELECT
r.id AS releases_id, r.guid, r.groups_id, r.categories_id, r.name, r.searchname, r.proc_nfo,
r.proc_uid, r.proc_files, r.proc_par2, r.proc_sorter, r.ishashed, r.dehashstatus, r.nfostatus,
r.proc_uid, r.proc_files, r.proc_par2, r.proc_srr, r.proc_hash16k, r.proc_sorter, r.ishashed, r
.dehashstatus, r.nfostatus,
r.size AS relsize, r.predb_id,
IFNULL(rf.releases_id, 0) AS fileid, IF(rf.ishashed = 1, rf.name, 0) AS filehash,
IFNULL(GROUP_CONCAT(rf.name ORDER BY rf.name ASC SEPARATOR '|'), '') AS filestring,
@@ -65,6 +66,8 @@ switch (true) {
OR r.proc_files = %d
OR r.proc_uid = %d
OR r.proc_par2 = %d
OR r.proc_srr = %d
OR r.proc_hash16k = %d
OR
(
r.nfostatus = %5\$d
@@ -89,6 +92,8 @@ switch (true) {
NameFixer::PROC_FILES_NONE,
NameFixer::PROC_UID_NONE,
NameFixer::PROC_PAR2_NONE,
NameFixer::PROC_SRR_NONE,
NameFixer::PROC_HASH16K_NONE,
MiscSorter::PROC_SORTER_NONE,
Category::getCategoryOthersGroup(),
$maxperrun
@@ -132,6 +137,30 @@ switch (true) {
}
$namefixer->reset();
if ($release['proc_srr'] == NameFixer::PROC_SRR_NONE) {
echo ColorCLI::primaryOver('sr');
$namefixer->srrNameCheck($release, true, 'SRR, ', 1, 1);
}
// Not all gate requirements in query always set column status as PP Add check is in query
$namefixer->_updateSingleColumn('proc_srr', NameFixer::PROC_SRR_DONE, $release['releases_id']);
if ($namefixer->matched) {
continue;
}
$namefixer->reset();
if ($release['proc_hash16k'] == NameFixer::PROC_HASH16K_NONE && !empty($release['hash'])) {
echo ColorCLI::primaryOver('U');
$namefixer->hashCheck($release, true, 'PAR2 hash, ', 1, 1);
}
// Not all gate requirements in query always set column status as PP Add check is in query
$namefixer->_updateSingleColumn('proc_hash16k', NameFixer::PROC_HASH16K_DONE, $release['releases_id']);
if ($namefixer->matched) {
continue;
}
$namefixer->reset();
if ($release['nfostatus'] == Nfo::NFO_FOUND && $release['proc_nfo'] == NameFixer::PROC_NFO_NONE) {
if (!empty($release['textstring']) && !preg_match('/^=newz\[NZB\]=\w+/', $release['textstring'])) {
echo ColorCLI::primaryOver('n');
@@ -160,10 +189,6 @@ switch (true) {
if ($namefixer->matched === false) {
echo ColorCLI::primaryOver('xf');
$namefixer->xxxNameCheck($releaseFile, true, 'Filenames, ', 1, 1);
if ($namefixer->matched === false) {
echo ColorCLI::primaryOver('e');
$namefixer->srrNameCheck($releaseFile, true, 'Filenames, ', 1, 1);
}
}
}
}
+36 -18
View File
@@ -21,8 +21,10 @@ class NameFixer
const PROC_PAR2_DONE = 1;
const PROC_UID_NONE = 0;
const PROC_UID_DONE = 1;
const PROC_HASH_NONE = 0;
const PROC_HASH_DONE = 1;
const PROC_HASH16K_NONE = 0;
const PROC_HASH16K_DONE = 1;
const PROC_SRR_NONE = 0;
const PROC_SRR_DONE = 1;
// Constants for overall rename status
const IS_RENAMED_NONE = 0;
@@ -388,8 +390,8 @@ class NameFixer
*/
public function fixNamesWithSrr($time, $echo, $cats, $nameStatus, $show): void
{
$this->_echoStartMessage($time, 'file names');
$type = 'Filenames, ';
$this->_echoStartMessage($time, 'SRR file names');
$type = 'SRR, ';
if ($cats === 3) {
$query = sprintf('
@@ -409,11 +411,13 @@ class NameFixer
FROM releases rel
INNER JOIN release_files rf ON (rf.releases_id = rel.id)
WHERE (rel.isrenamed = %d OR rel.categories_id IN (%d, %d))
AND rf.name %s',
AND rf.name %s
AND rel.proc_srr = %d',
self::IS_RENAMED_NONE,
Category::OTHER_MISC,
Category::OTHER_HASHED,
$this->pdo->likeString('.srr', true, false)
$this->pdo->likeString('.srr', true, false),
self::PROC_SRR_NONE
);
}
@@ -616,21 +620,21 @@ class NameFixer
rel.name, rel.name AS textstring, rel.predb_id, rel.searchname,
ph.hash AS hash
FROM releases rel
LEFT JOIN par_hashes ph ON ph.releases_id = rel.id
WHERE ph.releases_id IS NOT NULL
STRAIGHT_JOIN par_hashes ph ON ph.releases_id = rel.id
AND rel.nzbstatus = %d
AND rel.isrenamed = %d
AND rel.categories_id IN (%d, %d)
AND rel.proc_par2 = %d',
AND rel.proc_hash16k = %d',
NZB::NZB_ADDED,
self::IS_RENAMED_NONE,
Category::OTHER_MISC,
Category::OTHER_HASHED,
self::PROC_PAR2_NONE
self::PROC_HASH16K_NONE
);
}
$releases = $this->_getReleases($time, $cats, $query);
if ($releases instanceof \Traversable) {
$total = $releases->rowCount();
if ($total > 0) {
@@ -667,15 +671,15 @@ class NameFixer
echo ColorCLI::header($query . $this->timeother . $queryLimit . ";\n");
$releases = $this->pdo->queryDirect($query . $this->timeother . $queryLimit);
} // 24 hours, all cats
else if ($time === 1 && $cats === 2) {
if ($time === 1 && $cats === 2) {
echo ColorCLI::header($query . $this->timeall . $queryLimit . ";\n");
$releases = $this->pdo->queryDirect($query . $this->timeall . $queryLimit);
} //other cats
else if ($time === 2 && $cats === 1) {
if ($time === 2 && $cats === 1) {
echo ColorCLI::header($query . $this->fullother . $queryLimit . ";\n");
$releases = $this->pdo->queryDirect($query . $this->fullother . $queryLimit);
} // all cats
else if ($time === 2 && $cats === 2) {
if ($time === 2 && $cats === 2) {
echo ColorCLI::header($query . $this->fullall . $queryLimit . ";\n");
$releases = $this->pdo->queryDirect($query . $this->fullall . $queryLimit);
}
@@ -850,6 +854,12 @@ class NameFixer
case 'UID, ':
$status = 'isrenamed = 1, iscategorized = 1, proc_uid = 1,';
break;
case 'PAR2 hash, ':
$status = 'isrenamed = 1, iscategorized = 1, proc_hash16k = 1,';
break;
case 'SRR, ':
$status = 'isrenamed = 1, iscategorized = 1, proc_srr = 1,';
break;
}
$this->pdo->queryExec(
sprintf('
@@ -1291,6 +1301,9 @@ class NameFixer
case 'UID, ':
$this->uidCheck($release, $echo, $type, $namestatus, $show);
break;
case 'SRR, ':
$this->srrNameCheck($release, $echo, $type, $namestatus, $show);
break;
case 'NFO, ':
$this->nfoCheckTV($release, $echo, $type, $namestatus, $show);
$this->nfoCheckMov($release, $echo, $type, $namestatus, $show);
@@ -1318,8 +1331,13 @@ class NameFixer
$this->_updateSingleColumn('proc_files', self::PROC_FILES_DONE, $release['releases_id']);
break;
case 'PAR2, ':
$this->_updateSingleColumn('proc_par2', self::PROC_PAR2_DONE, $release['releases_id']);
break;
case 'PAR2 hash, ':
$this->_updateSingleColumn('proc_par2', self::PROC_FILES_DONE, $release['releases_id']);
$this->_updateSingleColumn('proc_hash16k', self::PROC_HASH16K_DONE, $release['releases_id']);
break;
case 'SRR, ':
$this->_updateSingleColumn('proc_srr', self::PROC_SRR_DONE, $release['releases_id']);
break;
case 'UID, ':
$this->_updateSingleColumn('proc_uid', self::PROC_UID_DONE, $release['releases_id']);
@@ -2030,7 +2048,7 @@ class NameFixer
}
}
}
$this->_updateSingleColumn('proc_files', self::PROC_FILES_DONE, $release['releases_id']);
$this->_updateSingleColumn('proc_srr', self::PROC_SRR_DONE, $release['releases_id']);
return false;
}
@@ -2050,8 +2068,8 @@ class NameFixer
if ($this->done === false && $this->relid !== (int)$release['releases_id']) {
$result = $this->pdo->queryDirect("
SELECT r.id AS releases_id, r.size AS relsize, r.name AS textstring, r.searchname, r.fromname, r.predb_id
FROM par_hashes ph
STRAIGHT_JOIN releases r ON ph.releases_id = r.id
FROM releases r
STRAIGHT_JOIN par_hashes ph ON ph.releases_id = r.id
WHERE ph.hash = {$this->pdo->escapeString($release['hash'])}
AND ph.releases_id != {$release['releases_id']}
AND (r.predb_id > 0 OR r.anidbid > 0)"
@@ -2076,7 +2094,7 @@ class NameFixer
}
}
}
$this->_updateSingleColumn('proc_par2', self::PROC_PAR2_DONE, $release['releases_id']);
$this->_updateSingleColumn('proc_hash16k', self::PROC_HASH16K_DONE, $release['releases_id']);
return false;
}
@@ -0,0 +1,9 @@
# Add proc_srr column to releases table
ALTER TABLE releases ADD COLUMN proc_srr TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Has the release been srr
processed';
# Add proc_hash16k column to releases table
ALTER TABLE releases ADD COLUMN proc_hash16k TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Has the release been
hash16k processed';
+4
View File
@@ -749,6 +749,10 @@ CREATE TABLE releases (
proc_nfo TINYINT(1) NOT NULL DEFAULT '0',
proc_files TINYINT(1) NOT NULL DEFAULT '0',
proc_uid TINYINT(1) NOT NULL DEFAULT '0',
proc_srr TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Has the release been srr
processed',
proc_hash16k TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Has the release been hash16k
processed',
PRIMARY KEY (id, categories_id),
INDEX ix_releases_name (name),
INDEX ix_releases_groupsid (groups_id,passwordstatus),