Exemple #1
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(array('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
                 $db->queryExec(sprintf("UPDATE releases SET dehashstatus = %d - 1 WHERE id = %d", $res['dehashstatus'], $res['releaseid']));
                 echo '.';
             }
         }
     }
 } else {
     if (isset($pieces[1]) && $pieces[0] == 'par2') {
         $nntp = new NNTP();
         if ($nntp->doConnect() === false) {
             exit($c->error("Unable to connect to usenet."));
         }
         $relID = $pieces[1];
         $guid = $pieces[2];
         $groupID = $pieces[3];
         $nzbcontents = new NZBContents(array('echo' => true, 'nntp' => $nntp, 'nfo' => new Info(), 'db' => $db, 'pp' => new PProcess(['Settings' => $pdo, 'Nfo' => $Nfo, 'NameFixer' => $namefixer])));
         $res = $nzbcontents->checkPAR2($guid, $relID, $groupID, 1, 1);
         if ($res === false) {
             echo '.';
         }
         $nntp->doQuit();
     } else {
         if (isset($pieces[1]) && $pieces[0] == 'predbft') {
             $pre = $pieces[1];
             if ($res = $db->queryOneRow(sprintf('SELECT id AS preid, title, source, searched FROM prehash ' . 'WHERE id = %d', $pre))) {
                 $namefixer->done = $namefixer->matched = false;
                 $ftmatched = $searched = 0;
                 $ftmatched = $namefixer->matchPredbFT($res, 1, 1, true, 1);
                 if ($ftmatched > 0) {
                     $searched = 1;
                 } elseif ($ftmatched < 0) {
                     $searched = -6;
Exemple #3
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.groupid
					FROM releases rel
					WHERE nzbstatus = %d
					AND prehashid = 0', Enzebe::NZB_ADDED);
            $cats = 2;
        } else {
            $query = sprintf('
					SELECT rel.id AS releaseid, rel.guid, rel.groupid
					FROM releases rel
					WHERE (isrenamed = %d OR rel.categoryid = %d)
					AND proc_par2 = %d', self::IS_RENAMED_NONE, Category::CAT_MISC_OTHER, 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['groupid'], $nameStatus, $show) === true) {
                        $this->fixed++;
                    }
                    $this->checked++;
                    $this->_echoRenamed($show);
                }
                $this->_echoFoundCount($echo, ' files');
            } else {
                echo $this->pdo->log->alternate('Nothing to fix.');
            }
        }
    }