/** * Get all PRE's for a release. * * @param int $preID * * @return array */ public function getForRelease($preID) { return $this->pdo->query(sprintf('SELECT * FROM predb WHERE id = %d', $preID)); }
<?php if (!isset($argv[1])) { exit('This script will set where backfill starts based on your oldest release in a group or groups,' . ' so you do not have to re-download and process all the headers you already downloaded.' . PHP_EOL . 'This is good if you imported NZBs or reset a group for example.' . PHP_EOL . 'To start the script, type in a group name or all for all the backfill enabled groups.' . PHP_EOL); } require_once dirname(__FILE__) . '/../../../www/config.php'; $pdo = new nzedb\db\DB(); if ($argv[1] === 'all') { $groups = $pdo->query('SELECT * FROM groups WHERE backfill = 1'); } else { $groups = $pdo->query(sprintf('SELECT * FROM groups WHERE name = %s', $pdo->escapeString($argv[1]))); } if (count($groups) === 0) { if ($argv[1] === 'all') { exit('ERROR! No groups were found with backfill enabled!' . PHP_EOL); } else { exit('ERROR! Group (' . $argv[1] . ') not found!' . PHP_EOL); } } $nntp = new NNTP(['Settings' => $pdo]); $nntp->doConnect() or exit('Could not connect to Usenet!' . PHP_EOL); $binaries = new Binaries(['NNTP' => $nntp, 'Settings' => $pdo]); foreach ($groups as $group) { $groupNNTP = $nntp->selectGroup($group['name']); if ($nntp->isError($groupNNTP)) { echo 'ERROR! Could not fetch information from NNTP for group (' . $group['name'] . ')' . PHP_EOL; continue; } $postDate = $pdo->queryOneRow(sprintf('SELECT UNIX_TIMESTAMP(postdate) AS postdate FROM releases WHERE group_id = %d ORDER BY postdate ASC LIMIT 1', $group['id'])); if ($postDate === false) { echo 'ERROR! Could not find any existing releases for group (' . $group['name'] . ')' . PHP_EOL;
if (isset($_GET['sha1']) && strlen($_GET['sha1']) === 40) { $pdo = new nzedb\db\DB(); $preData = $pdo->query(sprintf('SELECT * FROM predb p INNER JOIN predbhash ph ON ph.pre_id = p.id WHERE MATCH(hashes) AGAINST (%s) %s %s %s LIMIT %d OFFSET %d', $pdo->escapeString($_GET['sha1']), $newer, $older, $nuked, $limit, $offset)); } break; case 'c': case 'category': if (isset($_GET['category'])) { $pdo = new nzedb\db\DB(); $preData = $pdo->query(sprintf('SELECT * FROM predb p WHERE p.category %s %s %s %s LIMIT %d OFFSET %d', $newer, $older, $nuked, $pdo->likeString($_GET['category']), $limit, $offset)); } break; case 'a': case 'all': $pdo = new nzedb\db\DB(); $preData = $pdo->query(sprintf('SELECT * FROM predb p WHERE 1=1 %s %s %s ORDER BY p.predate DESC LIMIT %d OFFSET %d', $newer, $older, $nuked, $limit, $offset)); break; } } else { if (isset($_POST['data'])) { $reqData = @unserialize($_POST['data']); if ($reqData !== false && is_array($reqData) && isset($reqData[0]['ident'])) { $pdo = new nzedb\db\DB(); $preData = array(); foreach ($reqData as $request) { $result = $pdo->queryOneRow(sprintf(' SELECT p.*, g.name AS groupname FROM predb p INNER JOIN groups g ON g.id = p.group_id WHERE requestid = %d
{ if (PEAR_LOG_DEBUG) { echo $this->color->info($message); } } } $nntp = new NNTPTest(new NNTPDebug(isset($argv[1]) ? true : false)); if ($nntp->doConnect() !== true) { exit('Error connecting to usenet!' . PHP_EOL); } $n = PHP_EOL; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////// Put your test code under here. //////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $db = new nzedb\db\DB(); $groups = $db->query('SELECT name FROM groups WHERE name NOT like \'alt.binaries.%\' AND active = 1'); $groupList = array(); foreach ($groups as $group) { $groupList += $nntp->getGroups($group['name']); } $groupList += $nntp->getGroups('alt.binaries.*'); $groups = $db->queryDirect('SELECT name FROM groups WHERE active = 1'); $activeGroups = array(); if ($groups instanceof Traversable) { foreach ($groups as $group) { if (isset($groupList[$group['name']])) { $activeGroups[$group['name']] = $groupList[$group['name']]; } } } var_dump($activeGroups);