本文整理汇总了PHP中Sites::getLicense方法的典型用法代码示例。如果您正苦于以下问题:PHP Sites::getLicense方法的具体用法?PHP Sites::getLicense怎么用?PHP Sites::getLicense使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sites
的用法示例。
在下文中一共展示了Sites::getLicense方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: updateAllGroups
/**
* Process headers and store in database for all active groups.
*/
function updateAllGroups()
{
$n = $this->n;
$groups = new Groups();
$res = $groups->getActive();
$s = new Sites();
echo $s->getLicense();
if ($res) {
shuffle($res);
$alltime = microtime(true);
echo 'Updating: ' . sizeof($res) . ' groups - Using compression? ' . ($this->compressedHeaders ? 'Yes' : 'No') . $n;
$nntp = new Nntp();
if ($nntp->doConnect()) {
$pos = 0;
foreach ($res as $groupArr) {
$pos++;
echo 'Group ' . $pos . ' of ' . sizeof($res) . $n;
$this->message = array();
$this->updateGroup($nntp, $groupArr);
}
$nntp->doQuit();
echo 'Updating completed in ' . number_format(microtime(true) - $alltime, 2) . ' seconds' . $n;
} else {
echo "Failed to get NNTP connection.{$n}";
}
} else {
echo "No groups specified. Ensure groups are added to newznab's database and activated before updating.{$n}";
}
}
示例2: processReleases
/**
* @param int $categorize
* @param int $postProcess
* @param string $groupName (optional)
* @param \NNTP $nntp
* @param bool $echooutput
*
* @return int
*/
public function processReleases($categorize, $postProcess, $groupName, &$nntp, $echooutput)
{
$this->echoCLI = $echooutput && NN_ECHOCLI;
$page = new Page();
$groupID = '';
$s = new Sites();
echo $s->getLicense();
if (!empty($groupName)) {
$groupInfo = $this->groups->getByName($groupName);
$groupID = $groupInfo['id'];
}
$processReleases = microtime(true);
if ($this->echoCLI) {
$this->pdo->log->doEcho($this->pdo->log->header("Starting release update process (" . date('Y-m-d H:i:s') . ")"), true);
}
if (!file_exists($page->settings->getSetting('nzbpath'))) {
$this->pdo->log->doEcho($this->pdo->log->primary('Bad or missing nzb directory - ' . $page->settings->getSetting('nzbpath')), true);
return -1;
}
$this->checkRegexesUptoDate($page->settings->getSetting('latestregexurl'), $page->settings->getSetting('latestregexrevision'), $page->settings->getSetting('newznabID'));
$this->applyRegex($groupID);
$this->processIncompleteBinaries($groupID);
$DIR = NN_MISC;
$PYTHON = shell_exec('which python3 2>/dev/null');
$PYTHON = empty($PYTHON) ? 'python -OOu' : 'python3 -OOu';
$processRequestIDs = (int) $page->settings->getSetting('lookup_reqids');
$consoleTools = new ConsoleTools(['ColorCLI' => $this->pdo->log]);
$totalReleasesAdded = 0;
do {
$releasesCount = $this->createReleases($groupID);
$totalReleasesAdded += $releasesCount['added'];
if ($processRequestIDs === 0) {
$this->processRequestIDs($groupID, 5000, true);
} else {
if ($processRequestIDs === 1) {
$this->processRequestIDs($groupID, 5000, true);
$this->processRequestIDs($groupID, 1000, false);
} else {
if ($processRequestIDs === 2) {
$requestIDTime = time();
if ($this->echoCLI) {
$this->pdo->log->doEcho($this->pdo->log->header("Process Releases -> Request id Threaded lookup."));
}
passthru("{$PYTHON} {$DIR}update_scripts/nix_scripts/tmux/python/requestid_threaded.py");
if ($this->echoCLI) {
$this->pdo->log->doEcho($this->pdo->log->primary("\nReleases updated in " . $consoleTools->convertTime(time() - $requestIDTime)));
}
}
}
}
$this->categorizeReleases($categorize, $groupID);
$this->postProcessReleases($postProcess, $nntp);
$this->deleteBinaries($groupID);
// This loops as long as there were releases created or 3 loops, otherwise, you could loop indefinately
} while ($releasesCount['added'] + $releasesCount['dupes'] >= $this->releaseCreationLimit);
$this->deletedReleasesByGroup($groupID);
$this->deleteReleases();
//
// User/Request housekeeping, should ideally move this to its own section, but it needs to be done automatically.
//
$users = new Users();
$users->pruneRequestHistory($page->settings->getSetting('userdownloadpurgedays'));
//Print amount of added releases and time it took.
if ($this->echoCLI && $this->tablePerGroup === false) {
$countID = $this->pdo->queryOneRow('SELECT COUNT(id) AS count FROM binaries ' . (!empty($groupID) ? ' WHERE groupid = ' . $groupID : ''));
$this->pdo->log->doEcho($this->pdo->log->primary('Completed adding ' . number_format($totalReleasesAdded) . ' releases in ' . $this->consoleTools->convertTime(number_format(microtime(true) - $processReleases, 2)) . '. ' . number_format($countID === false ? 0 : $countID['count']) . ' binaries waiting to be converted (still incomplete or in queue for creation)'), true);
}
return $totalReleasesAdded;
}
示例3: processReleases
function processReleases()
{
require_once WWW_DIR . "/lib/binaries.php";
$db = new DB();
$currTime_ori = $db->queryOneRow("SELECT NOW() as now");
$cat = new Category();
$nzb = new Nzb();
$s = new Sites();
$releaseRegex = new ReleaseRegex();
$page = new Page();
$groups = new Groups();
$retcount = 0;
echo $s->getLicense();
echo "\n\nStarting release update process (" . date("Y-m-d H:i:s") . ")\n";
if (!file_exists($page->site->nzbpath)) {
echo "Bad or missing nzb directory - " . $page->site->nzbpath;
return -1;
}
//
// Get all regexes for all groups which are to be applied to new binaries
// in order of how they should be applied
//
$releaseRegex->get();
echo "Stage 1 : Applying regex to binaries\n";
$activeCategories = $cat->get();
$catbasedsizes = $db->getLookupAsArray($activeCategories, "ID");
$activeGroups = $groups->getActive(false);
$groupbasedminsizes = $db->getLookupAsArray($groups->getAllNoReleases(), "ID");
foreach ($activeGroups as $groupArr) {
//check if regexes have already been applied during update binaries
if ($groupArr['regexmatchonly'] == 1) {
continue;
}
$groupRegexes = $releaseRegex->getForGroup($groupArr['name']);
echo "Stage 1 : Applying " . sizeof($groupRegexes) . " regexes to group " . $groupArr['name'] . "\n";
// Get out all binaries of STAGE0 for current group
$newUnmatchedBinaries = array();
$ressql = sprintf("SELECT binaries.ID, binaries.name, binaries.date, binaries.totalParts, binaries.procstat, binaries.fromname from binaries where groupID = %d and procstat IN (%d,%d) and regexID IS NULL order by binaries.date asc", $groupArr['ID'], Releases::PROCSTAT_NEW, Releases::PROCSTAT_TITLENOTMATCHED);
$resbin = $db->queryDirect($ressql);
$matchedbins = 0;
while ($rowbin = $db->getAssocArray($resbin)) {
$regexMatches = array();
foreach ($groupRegexes as $groupRegex) {
$regexCheck = $releaseRegex->performMatch($groupRegex, $rowbin['name']);
if ($regexCheck !== false) {
$regexMatches = $regexCheck;
break;
}
}
if (!empty($regexMatches)) {
$matchedbins++;
$relparts = explode("/", $regexMatches['parts']);
$db->exec(sprintf("update binaries set relname = replace(%s, '_', ' '), relpart = %d, reltotalpart = %d, procstat=%d, categoryID=%s, regexID=%d, reqID=%s where ID = %d", $db->escapeString($regexMatches['name']), $relparts[0], $relparts[1], Releases::PROCSTAT_TITLEMATCHED, $regexMatches['regcatid'], $regexMatches['regexID'], $db->escapeString($regexMatches['reqID']), $rowbin["ID"]));
} else {
if ($rowbin['procstat'] == Releases::PROCSTAT_NEW) {
$newUnmatchedBinaries[] = $rowbin['ID'];
}
}
}
//mark as not matched
if (!empty($newUnmatchedBinaries)) {
$db->exec(sprintf("update binaries set procstat=%d where ID IN (%s)", Releases::PROCSTAT_TITLENOTMATCHED, implode(',', $newUnmatchedBinaries)));
}
}
//
// Move all binaries from releases which have the correct number of files on to the next stage.
//
echo "Stage 2 : Marking binaries where all parts are available";
$result = $db->queryDirect(sprintf("SELECT relname, date, SUM(reltotalpart) AS reltotalpart, groupID, reqID, fromname, SUM(num) AS num, coalesce(g.minfilestoformrelease, s.minfilestoformrelease) as minfilestoformrelease FROM ( SELECT relname, reltotalpart, groupID, reqID, fromname, max(date) as date, COUNT(ID) AS num FROM binaries WHERE procstat = %s GROUP BY relname, reltotalpart, groupID, reqID, fromname ORDER BY NULL ) x left outer join groups g on g.ID = x.groupID inner join ( select value as minfilestoformrelease from site where setting = 'minfilestoformrelease' ) s GROUP BY relname, groupID, reqID, fromname, minfilestoformrelease ORDER BY NULL", Releases::PROCSTAT_TITLEMATCHED));
while ($row = $db->getAssocArray($result)) {
$retcount++;
//
// Less than the site permitted number of files in a release. Dont discard it, as it may
// be part of a set being uploaded.
//
if ($row["num"] < $row["minfilestoformrelease"]) {
//echo "Number of files in release ".$row["relname"]." less than site/group setting (".$row['num']."/".$row["minfilestoformrelease"].")\n";
//$db->exec(sprintf("update binaries set procattempts = procattempts + 1 where relname = %s and procstat = %d and groupID = %d and fromname = %s", $db->escapeString($row["relname"]), Releases::PROCSTAT_TITLEMATCHED, $row["groupID"], $db->escapeString($row["fromname"]) ));
} elseif ($row["num"] >= $row["reltotalpart"]) {
$incomplete = false;
if ($row['reltotalpart'] == 0 && strtotime($currTime_ori['now']) - strtotime($row['date']) < 14400) {
$incomplete = true;
} else {
// Check that the binary is complete
$binlist = $db->query(sprintf("SELECT binaries.ID, totalParts, date, COUNT(DISTINCT parts.messageID) AS num FROM binaries, parts WHERE binaries.ID=parts.binaryID AND binaries.relname = %s AND binaries.procstat = %d AND binaries.groupID = %d AND binaries.fromname = %s GROUP BY binaries.ID ORDER BY NULL", $db->escapeString($row["relname"]), Releases::PROCSTAT_TITLEMATCHED, $row["groupID"], $db->escapeString($row["fromname"])));
foreach ($binlist as $rowbin) {
if ($rowbin['num'] < $rowbin['totalParts']) {
// Allow to binary to release if posted to usenet longer than four hours ago and we still don't have all the parts
if (!(strtotime($currTime_ori['now']) - strtotime($rowbin['date']) > 14400)) {
$incomplete = true;
break;
}
}
}
}
if (!$incomplete) {
//
// Right number of files, but see if the binary is a allfilled/reqid post, in which case it needs its name looked up
//
if ($row['reqID'] != '' && $page->site->reqidurl != "") {
//.........这里部分代码省略.........
示例4: processReleases
function processReleases()
{
$db = new DB();
$cat = new Category();
$bin = new Binaries();
$nzb = new Nzb();
$s = new Sites();
$relreg = new ReleaseRegex();
$page = new Page();
$nfo = new Nfo(true);
$retcount = 0;
echo $s->getLicense();
echo "\n\nStarting release update process (" . date("Y-m-d H:i:s") . ")\n";
if (!file_exists($page->site->nzbpath)) {
echo "Bad or missing nzb directory - " . $page->site->nzbpath;
return;
}
$this->checkRegexesUptoDate($page->site->latestregexurl, $page->site->latestregexrevision, true);
//
// Get all regexes for all groups which are to be applied to new binaries
// in order of how they should be applied
//
$regexrows = $relreg->get();
foreach ($regexrows as $regexrow) {
echo "Applying regex " . $regexrow["ID"] . " for group " . ($regexrow["groupname"] == "" ? "all" : $regexrow["groupname"]) . "\n";
$groupmatch = "";
//
// Groups ending in * need to be like matched when getting out binaries for groups and children
//
if (preg_match("/\\*\$/i", $regexrow["groupname"])) {
$groupname = substr($regexrow["groupname"], 0, -1);
$resgrps = $db->query(sprintf("select ID from groups where name like %s ", $db->escapeString($groupname . "%")));
foreach ($resgrps as $resgrp) {
$groupmatch .= " groupID = " . $resgrp["ID"] . " or ";
}
$groupmatch .= " 1=2 ";
} elseif ($regexrow["groupname"] != "") {
$resgrp = $db->queryOneRow(sprintf("select ID from groups where name = %s ", $db->escapeString($regexrow["groupname"])));
//
// if group not found, its a regex for a group we arent indexing.
//
if ($resgrp) {
$groupmatch = " groupID = " . $resgrp["ID"];
} else {
$groupmatch = " 1=2 ";
}
} else {
$groupmatch = " 1=1 ";
}
// Get current mysql time for date comparison checks in case php is in a different time zone
$currTime = $db->queryOneRow("SELECT NOW() as now");
// Get out all binaries of STAGE0 for current group
$arrNoPartBinaries = array();
$resbin = $db->queryDirect(sprintf("SELECT binaries.ID, binaries.name, binaries.date, binaries.totalParts from binaries where (%s) and procstat = %d order by binaries.date asc", $groupmatch, Releases::PROCSTAT_NEW));
while ($rowbin = mysql_fetch_assoc($resbin)) {
if (preg_match($regexrow["regex"], $rowbin["name"], $matches)) {
$matches = array_map("trim", $matches);
if (isset($matches['reqid']) && ctype_digit($matches['reqid']) && (!isset($matches['name']) || empty($matches['name']))) {
$matches['name'] = $matches['reqid'];
}
// Check that the regex provided the correct parameters
if (!isset($matches['name']) || empty($matches['name'])) {
echo "regex applied which didnt return right number of capture groups - " . $regexrow["regex"] . "\n";
print_r($matches);
continue;
}
// If theres no number of files data in the subject, put it into a release if it was posted to usenet longer than five hours ago.
if (!isset($matches['parts']) && strtotime($currTime['now']) - strtotime($rowbin['date']) > 18000 || isset($arrNoPartBinaries[$matches['name']])) {
//
// Take a copy of the name of this no-part release found. This can be used
// next time round the loop to find parts of this set, but which have not yet reached 3 hours.
//
$arrNoPartBinaries[$matches['name']] = "1";
$matches['parts'] = "01/01";
}
if (isset($matches['name']) && isset($matches['parts'])) {
if (strpos($matches['parts'], '/') === false) {
$matches['parts'] = str_replace(array('-', '~', ' of '), '/', $matches['parts']);
}
$regcatid = "null ";
if ($regexrow["categoryID"] != "") {
$regcatid = $regexrow["categoryID"];
}
$reqid = " null ";
if (isset($matches['reqid'])) {
$reqid = $matches['reqid'];
}
//check if post is repost
if (preg_match('/(repost\\d?|re\\-?up)/i', $rowbin['name'], $repost) && !preg_match('/repost|re\\-?up/i', $matches['name'])) {
$matches['name'] .= ' ' . $repost[1];
}
$relparts = explode("/", $matches['parts']);
$db->query(sprintf("update binaries set relname = replace(%s, '_', ' '), relpart = %d, reltotalpart = %d, procstat=%d, categoryID=%s, regexID=%d, reqID=%s where ID = %d", $db->escapeString($matches['name']), $relparts[0], $relparts[1], Releases::PROCSTAT_TITLEMATCHED, $regcatid, $regexrow["ID"], $reqid, $rowbin["ID"]));
}
}
}
}
//
// Move all binaries from releases which have the correct number of files on to the next stage.
//
//.........这里部分代码省略.........