예제 #1
0
/**
 * Create / process releases for a groupid.
 *
 * @param \Releases $releases
 * @param int             $groupID
 */
function processReleases($pdo, $releases, $groupID)
{
    $pdo = new Settings();
    $releaseCreationLimit = $pdo->getSetting('maxnzbsprocessed') != '' ? (int) $pdo->getSetting('maxnzbsprocessed') : 1000;
    $releases->checkRegexesUptoDate($pdo->getSetting('latestregexurl'), $pdo->getSetting('latestregexrevision'), $pdo->getSetting('newznabID'));
    $releases->applyRegex($groupID);
    $releases->processIncompleteBinaries($groupID);
    do {
        $releasesCount = $releases->createReleases($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);
    $releases->deleteBinaries($groupID);
}
<?php

require "config.php";
require_once WWW_DIR . "/lib/groups.php";
require_once WWW_DIR . "/lib/binaries.php";
require_once WWW_DIR . "/lib/releases.php";
require_once WWW_DIR . "/lib/site.php";
require_once WWW_DIR . '/lib/powerprocess.php';
$s = new Sites();
$releases = new Releases();
$site = $s->get();
if ($site->newznabID == "") {
    echo "Warning : No Newznab ID present. Check Admin > Site Edit\n";
}
$releases->checkRegexesUptoDate($site->latestregexurl, $site->latestregexrevision, $site->newznabID);
$groups = new Groups();
$groupList = $groups->getActive();
unset($groups);
$ps = new PowerProcess();
$ps->RegisterCallback('psUpdateComplete');
$ps->maxThreads = 10;
$ps->tickCount = 10000;
// value in usecs. change this to 1000000 (one second) to reduce cpu use
$ps->threadTimeLimit = 0;
// Disable child timeout
echo "Starting threaded binary update process\n";
//while ($ps->runParentCode())
while ($ps->RunControlCode()) {
    // Start the parent loop
    if (count($groupList)) {
        // We still have groups to process