Beispiel #1
0
    /**
     * Attempts to fix release names using the Par2 File.
     *
     * @param int $time   1: 24 hours, 2: no time limit
     * @param int $echo   1: change the name, anything else: preview of what could have been changed.
     * @param int $cats   1: other categories, 2: all categories
     * @param $nameStatus
     * @param $show
     * @param NNTP $nntp
     */
    public function fixNamesWithPar2($time, $echo, $cats, $nameStatus, $show, $nntp)
    {
        $this->_echoStartMessage($time, 'par2 files');
        if ($cats === 3) {
            $query = sprintf('
					SELECT rel.id AS releaseid, rel.guid, rel.group_id
					FROM releases rel
					WHERE nzbstatus = %d
					AND preid = 0', NZB::NZB_ADDED);
            $cats = 2;
        } else {
            $query = sprintf('
					SELECT rel.id AS releaseid, rel.guid, rel.group_id
					FROM releases rel
					WHERE (rel.isrenamed = %d OR rel.categoryid = %d)
					AND proc_par2 = %d', self::IS_RENAMED_NONE, Category::CAT_OTHER_MISC, self::PROC_PAR2_NONE);
        }
        $releases = $this->_getReleases($time, $cats, $query);
        if ($releases instanceof \Traversable && $releases !== false) {
            $total = $releases->rowCount();
            if ($total > 0) {
                $this->_totalReleases = $total;
                echo $this->pdo->log->primary(number_format($total) . ' releases to process.');
                $Nfo = new Nfo(['Echo' => $this->echooutput, 'Settings' => $this->pdo]);
                $nzbContents = new NZBContents(['Echo' => $this->echooutput, 'NNTP' => $nntp, 'Nfo' => $Nfo, 'Settings' => $this->pdo, 'PostProcess' => new PostProcess(['Settings' => $this->pdo, 'Nfo' => $Nfo])]);
                foreach ($releases as $release) {
                    if ($nzbContents->checkPAR2($release['guid'], $release['releaseid'], $release['group_id'], $nameStatus, $show) === true) {
                        $this->fixed++;
                    }
                    $this->checked++;
                    $this->_echoRenamed($show);
                }
                $this->_echoFoundCount($echo, ' files');
            } else {
                echo $this->pdo->log->alternate('Nothing to fix.');
            }
        }
    }
Beispiel #2
0
								FROM releases r
								WHERE r.guid %s
								AND r.nzbstatus = 1
								AND r.proc_par2 = 0
								AND r.preid = 0
								ORDER BY r.postdate ASC
								LIMIT %s', $pdo->likeString($guidChar, false, true), $maxperrun));
                if ($releases instanceof \Traversable) {
                    $nntp = new NNTP(['Settings' => $pdo]);
                    if (($pdo->getSetting('alternate_nntp') == '1' ? $nntp->doConnect(true, true) : $nntp->doConnect()) !== true) {
                        exit($pdo->log->error("Unable to connect to usenet."));
                    }
                    $Nfo = new Nfo(['Settings' => $pdo, 'Echo' => true]);
                    $nzbcontents = new NZBContents(['Echo' => true, 'NNTP' => $nntp, 'Nfo' => $Nfo, 'Settings' => $pdo, 'PostProcess' => new PostProcess(['Settings' => $pdo, 'Nfo' => $Nfo, 'NameFixer' => $namefixer])]);
                    foreach ($releases as $release) {
                        $res = $nzbcontents->checkPAR2($release['guid'], $release['releaseid'], $release['group_id'], 1, 1);
                        if ($res === false) {
                            echo '.';
                        }
                    }
                }
                break;
            case $pieces[0] === 'miscsorter' && isset($guidChar) && isset($maxperrun) && is_numeric($maxperrun):
                $releases = $pdo->queryDirect(sprintf('
								SELECT r.id AS releaseid
								FROM releases r
								WHERE r.guid %s
								AND r.nzbstatus = 1 AND r.nfostatus = 1
								AND r.proc_sorter = 0 AND r.isrenamed = 0
								AND r.preid = 0
								ORDER BY r.postdate DESC
Beispiel #3
0
             }
         }
     }
 } else {
     if (isset($pieces[1]) && $pieces[0] == 'par2') {
         //echo PHP_EOL . microtime();
         $nntp = new NNTP(['Settings' => $pdo]);
         if (($pdo->getSetting('alternate_nntp') == 1 ? $nntp->doConnect(true, true) : $nntp->doConnect()) !== true) {
             exit($pdo->log->error("Unable to connect to usenet."));
         }
         $relID = $pieces[1];
         $guid = $pieces[2];
         $groupID = $pieces[3];
         $nzbcontents = new NZBContents(array('Echo' => true, 'NNTP' => $nntp, 'Settings' => $pdo, 'Nfo' => new Nfo(['Settings' => $pdo, 'Echo' => true]), 'PostProcess' => new PostProcess(['Settings' => $pdo, 'NameFixer' => $namefixer])));
         //echo " " . microtime();
         $res = $nzbcontents->checkPAR2($guid, $relID, $groupID, 1, 1);
         //echo " " . microtime() . " ";
         if ($res === false) {
             echo '.';
         }
     } else {
         if (isset($pieces[1]) && $pieces[0] == 'miscsorter') {
             $nntp = new NNTP(['Settings' => $pdo]);
             if (($pdo->getSetting('alternate_nntp') == 1 ? $nntp->doConnect(true, true) : $nntp->doConnect()) !== true) {
                 exit($pdo->log->error("Unable to connect to usenet."));
             }
             $sorter = new MiscSorter(true);
             $relID = $pieces[1];
             $res = $sorter->nfosorter(null, $relID, $nntp);
             if ($res != true) {
                 $pdo->queryExec(sprintf('UPDATE releases SET proc_sorter = 1 WHERE id = %d', $relID));