$page->smarty->assign('role', $role); break; case 'submit': if ($_POST["id"] == "") { $ret = $users->addRole($_POST['name'], $_POST['apirequests'], $_POST['downloadrequests'], $_POST['defaultinvites'], $_POST['canpreview'], $_POST['canpre'], $_POST['hidetads']); header("Location:" . WWW_TOP . "/role-list.php"); } else { $ret = $users->updateRole($_POST['id'], $_POST['name'], $_POST['apirequests'], $_POST['downloadrequests'], $_POST['defaultinvites'], $_POST['isdefault'], $_POST['canpreview'], $_POST['canpre'], $_POST['hidetads']); header("Location:" . WWW_TOP . "/role-list.php"); $_POST['exccat'] = !isset($_POST['exccat']) || !is_array($_POST['exccat']) ? [] : $_POST['exccat']; $users->addRoleCategoryExclusions($_POST['id'], $_POST['exccat']); } break; case 'view': default: if (isset($_GET["id"])) { $page->title = "User Roles Edit"; $id = $_GET["id"]; $role = $users->getRoleByID($id); $page->smarty->assign('role', $role); } break; } $page->smarty->assign('yesno_ids', array(1, 0)); $page->smarty->assign('yesno_names', array('Yes', 'No')); $page->smarty->assign('catlist', $category->getForSelect(false)); if (isset($_GET["id"])) { $page->smarty->assign('roleexccat', $users->getRoleCategoryExclusion($_GET["id"])); } $page->content = $page->smarty->fetch('role-edit.tpl'); $page->render();
$page->smarty->assign('lastvisit', $page->userdata['lastlogin']); if (sizeof($results) > 0) { $totalRows = $results[0]['_totalrows']; } else { $totalRows = 0; } $page->smarty->assign('pagertotalitems', $totalRows); $page->smarty->assign('pageroffset', $offset); $page->smarty->assign('pageritemsperpage', ITEMS_PER_PAGE); $page->smarty->assign('pagerquerysuffix', "#results"); $pager = $page->smarty->fetch("pager.tpl"); $page->smarty->assign('pager', $pager); } $grouplist = $grp->getGroupsForSelect(); $page->smarty->assign('grouplist', $grouplist); $catlist = $c->getForSelect(); $page->smarty->assign('catlist', $catlist); $sizelist = array(-1 => '--Select--', 1 => '100MB', 2 => '250MB', 3 => '500MB', 4 => '1GB', 5 => '2GB', 6 => '3GB', 7 => '4GB', 8 => '8GB', 9 => '16GB', 10 => '32GB', 11 => '64GB'); $page->smarty->assign('sizelist', $sizelist); $page->smarty->assign('results', $results); $page->smarty->assign('sadvanced', $searchtype != "basic"); $ft1 = $page->settings->checkIndex('releases', 'ix_releases_name_searchname_ft'); $ft2 = $page->settings->checkIndex('releases', 'ix_releases_name_ft'); $ft3 = $page->settings->checkIndex('releases', 'ix_releases_searchname_ft'); switch (nZEDb_RELEASE_SEARCH_TYPE) { case ReleaseSearch::FULLTEXT: $search_description = 'MySQL Full Text Search Rules:<br /> A leading exclamation point(! in place of +) indicates that this word must be present in each row that is returned.<br /> A leading minus sign indicates that this word must not be present in any of the rows that are returned.<br /> By default (when neither + nor - is specified) the word is optional, but the rows that contain it are rated higher.<br /> See <a target="_blank" href=\'http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html\'>docs</a> for more operators.';
public function testRegex($regex, $groupname, $poster, $ignorematched, $matchagainstbins) { $db = new Db(); $cat = new Category(); $catList = $cat->getForSelect(); $matches = array(); if ($groupname === 0) { $groupname = '.*'; } if ($matchagainstbins !== '') { $sql = sprintf("select b.*, '0' as size, '0' as blacklistID, g.name as groupname from binaries b left join groups g on g.ID = b.groupID where b.groupID IN (select g.ID from groups g where g.name REGEXP %s) order by b.date desc", $db->escapeString('^' . $groupname . '$')); } else { $sql = sprintf("select rrt.* from releaseregextesting rrt where rrt.groupname REGEXP %s order by rrt.date desc", $db->escapeString('^' . $groupname . '$')); } $resbin = $db->queryDirect($sql); while ($rowbin = $db->getAssocArray($resbin)) { if ($ignorematched !== '' && ($rowbin['regexID'] != '' || $rowbin['blacklistID'] == 1)) { continue; } $regexarr = array("ID" => "", 'regex' => $regex, 'poster' => $poster, "categoryID" => ""); $regexCheck = $this->performMatch($regexarr, $rowbin['name'], $rowbin['fromname']); if ($regexCheck !== false) { $relname = $regexCheck['name']; $relparts = explode("/", $regexCheck['parts']); $matches[$relname]['name'] = $relname; $matches[$relname]['parts'] = $regexCheck['parts']; $matches[$relname]['bincount'] = isset($matches[$relname]['bincount']) ? $matches[$relname]['bincount'] + 1 : 1; $matches[$relname]['bininfo'][] = $rowbin; $matches[$relname]['binsize'][] = $rowbin['size']; $matches[$relname]['totalsize'] = array_sum($matches[$relname]['binsize']); $matches[$relname]['relparts'][$relparts[1]] = $relparts[1]; $matches[$relname]['reltotalparts'] = array_sum($matches[$relname]['relparts']); $matches[$relname]['regexID'] = $regexCheck['regexID']; if (ctype_digit($regexCheck['regcatid'])) { $matches[$relname]['catname'] = $catList[$regexCheck['regcatid']]; } else { $matches[$relname]['catname'] = $catList[$cat->determineCategory($groupname, $relname)]; } } } //echo '<pre>'; //print_r(array_pop($matches)); //echo '</pre>'; return $matches; }
$gselected = isset($_REQUEST['groupname']) ? $_REQUEST['groupname'] : '0'; $gregex = isset($_REQUEST['regex']) && !empty($_REQUEST['regex']) ? $_REQUEST['regex'] : '/^(?P<name>.*)$/i'; $gunreleased = isset($_REQUEST['unreleased']) ? $_REQUEST['unreleased'] : ''; foreach ($groupList as $group) { $gid[$group["ID"]] = $group["ID"]; $gname[$group["ID"]] = $group["name"]; } $page->smarty->assign('gid', $gid); $page->smarty->assign('gname', $gname); $page->smarty->assign('gselected', $gselected); $page->smarty->assign('gregex', $gregex); $page->smarty->assign('gunreleased', $gunreleased); switch ($action) { case 'submit': if (isset($_REQUEST["regex"])) { $catList = $cat->getForSelect(); $db = new Db(); $unreleasedSql = $gunreleased != '' ? ' and binaries.procstat NOT IN (4,5,6) and binaries.releaseID IS NULL' : ''; $resbin = $db->queryDirect(sprintf("SELECT binaries.ID as binID, binaries.name as binName from binaries where binaries.groupID = %d%s order by dateadded", $gselected, $unreleasedSql)); $matches = array(); while ($rowbin = mysql_fetch_assoc($resbin)) { if (preg_match($gregex, $rowbin["binName"], $binmatch)) { $binmatch = array_map("trim", $binmatch); if (isset($binmatch['reqid']) && ctype_digit($binmatch['reqid']) && (!isset($binmatch['name']) || empty($binmatch['name']))) { $binmatch['name'] = $binmatch['reqid']; } if (!isset($binmatch['name']) || empty($binmatch['name'])) { //echo "bad regex applied which didnt return right number of capture groups<br />"; } else { $binmatch['count'] = isset($matches[$binmatch['name']]['count']) ? $matches[$binmatch['name']]['count'] + 1 : 1; $binmatch['bininfo'] = $rowbin;
die; } } else { echo 'No export path specified.'; die; } $page->smarty->assign('folder', $path); $page->smarty->assign('output', $retval); $page->smarty->assign('fromdate', $postfrom); $page->smarty->assign('todate', $postto); $page->smarty->assign('group', $group); } else { $page->smarty->assign('fromdate', $rel->getEarliestUsenetPostDate()); $page->smarty->assign('todate', $rel->getLatestUsenetPostDate()); } $page->title = "Export Nzbs"; $grouplist = $rel->getReleasedGroupsForSelect(true); $page->smarty->assign('grouplist', $grouplist); $grouplist = $cat->getForSelect(true); $page->smarty->assign('catlist', $grouplist); $page->content = $page->smarty->fetch('nzb-export.tpl'); $page->render(); function getFilename($path, $name, $iter = 0) { $check = $path . safeFilename($name) . ($iter != 0 ? "-" . $iter : "") . ".nzb"; if (!file_exists($check)) { return $check; } else { return getFilename($path, $name, ++$iter); } }