/** * @param ApiQuery $queryModule * @param string $moduleName * @param string $paramPrefix */ public function __construct(ApiQuery $queryModule, $moduleName, $paramPrefix = '') { parent::__construct($queryModule->getMain(), $moduleName, $paramPrefix); $this->mQueryModule = $queryModule; $this->mDb = null; $this->resetQueryParams(); }
public function execute() { $user = new User(1); if (!$user->checkRights('administrator')) { addNotification($this->_LANG['misc']["You don't have permissions"], 'warning'); return 0; } $frequency = array(); $frequency['type'] = $_POST['n-start']; switch ($_POST['n-start']) { case 'n-minutes': $frequency['n-minutes-minute'] = (int) $_POST['n-minutes-minute']; break; case 'n-every-hour': $frequency['n-every-hour-minute'] = (int) $_POST['n-every-hour-minute']; break; case 'n-day': $frequency['n-day-hour'] = (int) $_POST['n-day-hour']; $frequency['n-day-minute'] = (int) $_POST['n-day-minute']; break; case 'n-month': $frequency['n-month-day'] = (int) $_POST['n-month-day']; $frequency['n-month-hour'] = (int) $_POST['n-month-hour']; $frequency['n-month-minutes'] = (int) $_POST['n-month-minutes']; break; case 'n-once': $frequency['n-once-month'] = (int) $_POST['n-once-month']; $frequency['n-once-day'] = (int) $_POST['n-once-day']; $frequency['n-once-year'] = (int) $_POST['n-once-year']; $frequency['n-once-hour'] = (int) $_POST['n-once-hour']; $frequency['n-once-minutes'] = (int) $_POST['n-once-minutes']; break; } $sid = (int) $_POST['sid']; $serversList = new JsonDB(__serversdb); $newTask = array(); $newTask['added'] = time(); $newTask['type'] = 'mysql_backup'; $newTask['title'] = $_POST['title']; $newTask['status'] = $_POST['status']; $newTask['execStatus'] = 0; $newTask['lastExec'] = time(); $newTask['deep'] = (int) $_POST['deep']; $newTask['frequency'] = $frequency; $newTask['mysql-backup-address'] = $_POST['mysql-backup-address']; $newTask['mysql-backup-name'] = $_POST['mysql-backup-name']; $newTask['mysql-backup-user'] = $_POST['mysql-backup-user']; $newTask['mysql-backup-password'] = $_POST['mysql-backup-password']; $query = new ApiQuery($serversList->data[$sid]['address'], $serversList->data[$sid]['apiKey']); $result = $query->addTask($newTask, true); if ($result['responseStatus'] == 'success') { $id = (int) $result['id']; $serversList->data[$sid]['tasks'][$id] = $result['task']; $serversList->saveToFile(__serversdb); } $this->redirect('?r=servers/server_tasks_list&id=' . $sid); }
/** * @param $type string * @return array */ private function getQueryModules($type) { $res = array(); $params = $this->apiQuery->getAllowedParams(); foreach ($params[$type][ApiBase::PARAM_TYPE] as $module) { $res[] = array('value' => "{$type}={$module}", 'text' => " {$type}={$module}"); } sort($res); array_unshift($res, array('value' => "-{$type}-", 'text' => wfMessage("apisb-query-{$type}")->parse(), 'attributes' => array('disabled' => 'disabled'))); return $res; }
/** * Test if all classes in the query module manager exists */ public function testClassNamesInModuleManager() { global $wgAutoloadLocalClasses, $wgAutoloadClasses; // wgAutoloadLocalClasses has precedence, just like in includes/AutoLoader.php $classes = $wgAutoloadLocalClasses + $wgAutoloadClasses; $api = new ApiMain(new FauxRequest(['action' => 'query', 'meta' => 'siteinfo'])); $queryApi = new ApiQuery($api, 'query'); $modules = $queryApi->getModuleManager()->getNamesWithClasses(); foreach ($modules as $name => $class) { $this->assertArrayHasKey($class, $classes, 'Class ' . $class . ' for api module ' . $name . ' not in autoloader (with exact case)'); } }
public function execute() { // Get parameters $params = $this->extractRequestParams(); $result = $this->getResult(); $queryObj = new ApiQuery($this->getMain(), 'query'); $r = array(); if (is_array($params['modules'])) { $modArr = $this->getMain()->getModules(); $r['modules'] = array(); foreach ($params['modules'] as $m) { if (!isset($modArr[$m])) { $r['modules'][] = array('name' => $m, 'missing' => ''); continue; } $obj = new $modArr[$m]($this->getMain(), $m); $a = $this->getClassInfo($obj); $a['name'] = $m; $r['modules'][] = $a; } $result->setIndexedTagName($r['modules'], 'module'); } if (is_array($params['querymodules'])) { $qmodArr = $queryObj->getModules(); $r['querymodules'] = array(); foreach ($params['querymodules'] as $qm) { if (!isset($qmodArr[$qm])) { $r['querymodules'][] = array('name' => $qm, 'missing' => ''); continue; } $obj = new $qmodArr[$qm]($this, $qm); $a = $this->getClassInfo($obj); $a['name'] = $qm; $a['querytype'] = $queryObj->getModuleType($qm); $r['querymodules'][] = $a; } $result->setIndexedTagName($r['querymodules'], 'module'); } if ($params['mainmodule']) { $r['mainmodule'] = $this->getClassInfo($this->getMain()); } if ($params['pagesetmodule']) { $pageSet = new ApiPageSet($queryObj); $r['pagesetmodule'] = $this->getClassInfo($pageSet); } $result->addValue(null, $this->getModuleName(), $r); }
public function testPrefixes() { $main = new ApiMain(new FauxRequest()); $query = new ApiQuery($main, 'foo', 'bar'); $modules = $query->getModules(); $prefixes = array(); foreach ($modules as $name => $class) { $module = new $class($main, $name); $prefix = $module->getModulePrefix(); if (isset($prefixes[$prefix])) { $this->fail("Module prefix '{$prefix}' is shared between {$class} and {$prefixes[$prefix]}"); } $prefixes[$module->getModulePrefix()] = $class; } $this->assertTrue(true); // dummy call to make this test non-incomplete }
public function getAllowedParams() { $modules = $this->getMain()->getModuleManager()->getNames('action'); sort($modules); $querymodules = $this->queryObj->getModuleManager()->getNames(); sort($querymodules); $formatmodules = $this->getMain()->getModuleManager()->getNames('format'); sort($formatmodules); return array('modules' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => $modules), 'querymodules' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => $querymodules), 'mainmodule' => false, 'pagesetmodule' => false, 'formatmodules' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => $formatmodules)); }
/** * Module for displaying help */ public function execute() { // Get parameters $params = $this->extractRequestParams(); if (!isset($params['modules']) && !isset($params['querymodules'])) { $this->dieUsage('', 'help'); } $this->getMain()->setHelp(); $result = $this->getResult(); $queryObj = new ApiQuery($this->getMain(), 'query'); $r = array(); if (is_array($params['modules'])) { $modArr = $this->getMain()->getModules(); foreach ($params['modules'] as $m) { if (!isset($modArr[$m])) { $r[] = array('name' => $m, 'missing' => ''); continue; } $module = new $modArr[$m]($this->getMain(), $m); $r[] = $this->buildModuleHelp($module, 'action'); } } if (is_array($params['querymodules'])) { $qmodArr = $queryObj->getModules(); foreach ($params['querymodules'] as $qm) { if (!isset($qmodArr[$qm])) { $r[] = array('name' => $qm, 'missing' => ''); continue; } $module = new $qmodArr[$qm]($this, $qm); $type = $queryObj->getModuleType($qm); if ($type === null) { $r[] = array('name' => $qm, 'missing' => ''); continue; } $r[] = $this->buildModuleHelp($module, $type); } } $result->setIndexedTagName($r, 'module'); $result->addValue(null, $this->getModuleName(), $r); }
/** * @param $type string * @return array */ private function getQueryModules($type) { $options = array(); $params = $this->apiQuery->getAllowedParams(); sort($params[$type][ApiBase::PARAM_TYPE]); foreach ($params[$type][ApiBase::PARAM_TYPE] as $module) { $options["{$type}={$module}"] = "{$type}={$module}"; } $optgroup = array(); $optgroup[$this->msg("apisb-query-{$type}")->parse()] = $options; return $optgroup; }
public function execute() { $user = new User(1); if (!$user->checkRights('administrator')) { addNotification($this->_LANG['misc']["You don't have permissions"], 'warning'); return 0; } $id = (int) $_POST['id']; $sid = (int) $_POST['sid']; $serversList = new JsonDB(__serversdb); $query = new ApiQuery($serversList->data[$sid]['address'], $serversList->data[$sid]['apiKey']); $result = $query->deleteTask($id, true); if ($result['responseStatus'] == 'success') { $id = (int) $result['id']; unset($serversList->data[$sid]['tasks'][$id]); $serversList->saveToFile(__serversdb); $dir = __archiveDIR . "servers/{$sid}/{$id}"; deleteDir($dir); } $this->redirect('?r=servers/server_tasks_list&id=' . $sid); }
public function prepare() { $user = new User(1); if (!$user->isAuthorized()) { $this->redirect('?r=auth'); } $header = new PageHeader($this->curpage, $this->db, $this->config); $footer = new PageFooter($this->curpage, $this->db, $this->config); $topMenu = new TopMenu($this->curpage, $this->db, $this->config); $topMenu->prepare(); $serversDB = new JsonDB(__serversdb); $serverId = (int) $_GET['id']; $server = $serversDB->data[$serverId]; $query = new ApiQuery($server['address'], $server['apiKey']); $tasksList = $query->getTasksList(true); $header->data['title'] = $server['name']; $this->data['server'] = $server; $this->data['tasksList'] = $tasksList; $this->data['header'] = $header->show(); $this->data['footer'] = $footer->show(); $this->data['topMenu'] = $topMenu->show(); }
/** * @param $type string * @return array */ private function getQueryModules($type) { $options = array(); $modules = $this->apiQuery->getModuleManager()->getNames($type); sort($modules); foreach ($modules as $module) { $options["{$type}={$module}"] = "{$type}={$module}"; } // Give grep a chance to find the usages: // apisb-query-prop, apisb-query-list, apisb-query-meta $optgroup = array(); $optgroup[$this->msg("apisb-query-{$type}")->parse()] = $options; return $optgroup; }
/** * @param $type string * @return array */ private function getQueryModules($type) { $options = array(); $params = $this->apiQuery->getAllowedParams(); sort($params[$type][ApiBase::PARAM_TYPE]); foreach ($params[$type][ApiBase::PARAM_TYPE] as $module) { $options["{$type}={$module}"] = "{$type}={$module}"; } // Give grep a chance to find the usages: // apisb-query-prop, apisb-query-list, apisb-query-meta $optgroup = array(); $optgroup[$this->msg("apisb-query-{$type}")->parse()] = $options; return $optgroup; }
ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); echo "Servers Service started [" . date('d.m.Y h:i', time()) . "] with PID= " . getmypid() . "\n"; include __DIR__ . '/conf.php'; include __corePath . 'libs/service.php'; include __corePath . 'libs/ApiQuery.php'; include __corePath . 'libs/jsonDB.php'; if (checkLock('servers')) { die("Found .lock file, exit.\n"); } lock('servers'); $serversList = new JsonDB(__serversdb); foreach ($serversList->data as $key => $server) { if (checkServerTestTime($server, 60)) { $query = new ApiQuery($server['address'], $server['apiKey']); $info = $query->getServerInfo(true); if ($info['responseStatus'] == 'ok') { $serversList->data[$key]['name'] = $info['serverName']; $serversList->data[$key]['tasksCount'] = $info['tasksCount']; $serversList->data[$key]['tasks'] = $info['tasks']; $serversList->data[$key]['freeSpace'] = $info['freeSpace']; $serversList->data[$key]['lastCheck'] = time(); $serversList->data[$key]['status'] = 1; if ($server['archSync']) { $tasksfiles = $query->getTasksFiles(true); // ---------------------------------- foreach ($tasksfiles as $taskId => $tmpFiles) { $files = array(); foreach ($tmpFiles as $f) { $files[$f['updated']] = $f;
public function __construct($main, $action) { $this->mAction = $action; parent::__construct($main, $action); }