use nzedb\processing\ProcessReleases; $pdo = new Settings(); if (isset($argv[2]) && $argv[2] === 'true') { // Create the connection here and pass $nntp = new NNTP(['Settings' => $pdo]); if ($nntp->doConnect() !== true) { exit($pdo->log->error("Unable to connect to usenet.")); } } if ($pdo->getSetting('tablepergroup') === 1) { exit($pdo->log->error("You are using 'tablepergroup', you must use .../misc/update/nix/multiprocessing/releases.php")); } $groupName = isset($argv[3]) ? $argv[3] : ''; if (isset($argv[1]) && isset($argv[2])) { $consoletools = new ConsoleTools(['ColorCLI' => $pdo->log]); $releases = new ProcessReleases(['Settings' => $pdo, 'ConsoleTools' => $consoletools]); if ($argv[1] == 1 && $argv[2] == 'true') { $releases->processReleases(1, 1, $groupName, $nntp, true); } else { if ($argv[1] == 1 && $argv[2] == 'false') { $releases->processReleases(1, 2, $groupName, $nntp, true); } else { if ($argv[1] == 2 && $argv[2] == 'true') { $releases->processReleases(2, 1, $groupName, $nntp, true); } else { if ($argv[1] == 2 && $argv[2] == 'false') { $releases->processReleases(2, 2, $groupName, $nntp, true); } else { if ($argv[1] == 4 && ($argv[2] == 'true' || $argv[2] == 'false')) { echo $pdo->log->header("Moving all releases to other -> misc, this can take a while, be patient."); $releases->resetCategorize();
/** * Create / process releases for a groupID. * * @param Settings $pdo * @param ProcessReleases $releases * @param int $groupID */ function processReleases($pdo, $releases, $groupID) { $releaseCreationLimit = $pdo->getSetting('maxnzbsprocessed') != '' ? (int) $pdo->getSetting('maxnzbsprocessed') : 1000; $releases->processIncompleteCollections($groupID); $releases->processCollectionSizes($groupID); $releases->deleteUnwantedCollections($groupID); do { $releasesCount = $releases->createReleases($groupID); $nzbFilesAdded = $releases->createNZBs($groupID); // This loops as long as the number of releases or nzbs added was >= the limit (meaning there are more waiting to be created) } while ($releasesCount['added'] + $releasesCount['dupes'] >= $releaseCreationLimit || $nzbFilesAdded >= $releaseCreationLimit); $releases->deleteCollections($groupID); }
$consoletools = new ConsoleTools(['ColorCLI' => $pdo->log]); $rc = new ReleaseCleaning($pdo); foreach ($res as $row) { $newname = $rc->releaseCleaner($row['name'], $row['fromname'], $row['size'], $row['gname']); if (is_array($newname)) { $newname = $newname['cleansubject']; } $newname = $pdo->escapeString($newname); $pdo->queryExec(sprintf("UPDATE releases SET searchname = %s WHERE id = %d", $newname, $row['id'])); $sphinx->updateRelease($row['id']); $done++; $consoletools->overWritePrimary("Renaming:" . $consoletools->percentString($done, count($res))); } $timenc = $consoletools->convertTime(time() - $timestart); echo $pdo->log->header($done . " releases renamed in " . $timenc . ".\nNow the releases will be recategorized."); $releases = new ProcessReleases(['Settings' => $pdo, 'ConsoleTools' => $consoletools, 'ReleaseCleaning' => $rc]); $releases->resetCategorize("WHERE isrenamed = 0"); $categorized = $releases->categorizeRelease("name", "WHERE isrenamed = 0"); $timecat = $consoletools->convertTime(time() - $timestart); echo $pdo->log->header("Finished categorizing " . $categorized . " releases in " . $timecat . ".\nFinally, the releases will be fixed using the NFO/filenames."); $namefixer = new NameFixer(['Settings' => $pdo, 'ConsoleTools' => $consoletools]); $namefixer->fixNamesWithNfo(2, 1, 1, 1, $show); $namefixer->fixNamesWithFiles(2, 1, 1, 1, $show); $timetotal = $consoletools->convertTime(time() - $timestart); echo $pdo->log->header("Finished recreating search names / recategorizing / refixing names in " . $timetotal); } else { exit($pdo->log->info("You have no releases in the DB.")); } } else { if (isset($argv[1]) && $argv[1] == "reset") { $pdo = new Settings();