Пример #1
0
 public function __construct(ApiQuery $query, $moduleName)
 {
     parent::__construct($query, $moduleName, 'qp');
     // Build mapping from special page names to QueryPage classes
     $uselessQueryPages = $this->getConfig()->get('APIUselessQueryPages');
     $this->qpMap = array();
     foreach (QueryPage::getPages() as $page) {
         if (!in_array($page[1], $uselessQueryPages)) {
             $this->qpMap[$page[1]] = $page[0];
         }
     }
 }
Пример #2
0
 public function __construct($query, $moduleName)
 {
     switch ($moduleName) {
         case self::LINKS:
             $this->table = 'pagelinks';
             $this->prefix = 'pl';
             $this->description = 'link';
             break;
         case self::TEMPLATES:
             $this->table = 'templatelinks';
             $this->prefix = 'tl';
             $this->description = 'template';
             break;
         default:
             ApiBase::dieDebug(__METHOD__, 'Unknown module name');
     }
     parent::__construct($query, $moduleName, $this->prefix);
 }
Пример #3
0
 public function __construct($query, $moduleName)
 {
     extract($this->backlinksSettings[$moduleName]);
     parent::__construct($query, $moduleName, $code);
     $this->bl_ns = $prefix . '_namespace';
     $this->bl_from = $prefix . '_from';
     $this->bl_table = $linktbl;
     $this->bl_code = $code;
     $this->hasNS = $moduleName !== 'imageusage';
     if ($this->hasNS) {
         $this->bl_title = $prefix . '_title';
         $this->bl_sort = "{$this->bl_ns}, {$this->bl_title}, {$this->bl_from}";
         $this->bl_fields = array($this->bl_ns, $this->bl_title);
     } else {
         $this->bl_title = $prefix . '_to';
         $this->bl_sort = "{$this->bl_title}, {$this->bl_from}";
         $this->bl_fields = array($this->bl_title);
     }
 }
Пример #4
0
 public function __construct(ApiQuery $query, $moduleName)
 {
     switch ($moduleName) {
         case self::LINKS:
             $this->table = 'pagelinks';
             $this->prefix = 'pl';
             $this->titlesParam = 'titles';
             $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Links';
             break;
         case self::TEMPLATES:
             $this->table = 'templatelinks';
             $this->prefix = 'tl';
             $this->titlesParam = 'templates';
             $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Templates';
             break;
         default:
             ApiBase::dieDebug(__METHOD__, 'Unknown module name');
     }
     parent::__construct($query, $moduleName, $this->prefix);
 }
Пример #5
0
 public function __construct(ApiQuery $query, $moduleName)
 {
     $settings = $this->backlinksSettings[$moduleName];
     $prefix = $settings['prefix'];
     $code = $settings['code'];
     $this->resultArr = array();
     parent::__construct($query, $moduleName, $code);
     $this->bl_ns = $prefix . '_namespace';
     $this->bl_from = $prefix . '_from';
     $this->bl_table = $settings['linktbl'];
     $this->bl_code = $code;
     $this->helpUrl = $settings['helpurl'];
     $this->hasNS = $moduleName !== 'imageusage';
     if ($this->hasNS) {
         $this->bl_title = $prefix . '_title';
         $this->bl_fields = array($this->bl_ns, $this->bl_title);
     } else {
         $this->bl_title = $prefix . '_to';
         $this->bl_fields = array($this->bl_title);
     }
 }
Пример #6
0
 public function __construct($query, $moduleName)
 {
     $code = $prefix = $linktbl = null;
     extract($this->backlinksSettings[$moduleName]);
     parent::__construct($query, $moduleName, $code);
     $this->bl_ns = $prefix . '_namespace';
     $this->bl_from = $prefix . '_from';
     $this->bl_tables = array($linktbl, 'page');
     $this->bl_code = $code;
     $this->hasNS = $moduleName !== 'imageusage';
     if ($this->hasNS) {
         $this->bl_title = $prefix . '_title';
         global $wgRequest;
         $this->bl_sort = $wgRequest->getVal('revsort') == 1 ? "tl_from desc" : "{$this->bl_ns}, {$this->bl_title}, {$this->bl_from}";
         $this->bl_fields = array($this->bl_ns, $this->bl_title);
     } else {
         $this->bl_title = $prefix . '_to';
         $this->bl_sort = "{$this->bl_title}, {$this->bl_from}";
         $this->bl_fields = array($this->bl_title);
     }
 }
 public function __construct(ApiQuery $query, $moduleName)
 {
     switch ($moduleName) {
         case 'alllinks':
             $prefix = 'al';
             $this->table = 'pagelinks';
             $this->tablePrefix = 'pl_';
             $this->useIndex = 'pl_namespace';
             $this->indexTag = 'l';
             break;
         case 'alltransclusions':
             $prefix = 'at';
             $this->table = 'templatelinks';
             $this->tablePrefix = 'tl_';
             $this->dfltNamespace = NS_TEMPLATE;
             $this->useIndex = 'tl_namespace';
             $this->indexTag = 't';
             break;
         case 'allfileusages':
             $prefix = 'af';
             $this->table = 'imagelinks';
             $this->tablePrefix = 'il_';
             $this->fieldTitle = 'to';
             $this->dfltNamespace = NS_FILE;
             $this->hasNamespace = false;
             $this->indexTag = 'f';
             break;
         case 'allredirects':
             $prefix = 'ar';
             $this->table = 'redirect';
             $this->tablePrefix = 'rd_';
             $this->indexTag = 'r';
             $this->props = array('fragment' => 'rd_fragment', 'interwiki' => 'rd_interwiki');
             break;
         default:
             ApiBase::dieDebug(__METHOD__, 'Unknown module name');
     }
     parent::__construct($query, $moduleName, $prefix);
 }
Пример #8
0
 public function __construct(ApiQuery $query, $moduleName)
 {
     switch ($moduleName) {
         case self::LINKS:
             $this->table = 'pagelinks';
             $this->prefix = 'pl';
             $this->description = 'link';
             $this->titlesParam = 'titles';
             $this->titlesParamDescription = 'Only list links to these titles. Useful ' . 'for checking whether a certain page links to a certain title.';
             $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Properties#links_.2F_pl';
             break;
         case self::TEMPLATES:
             $this->table = 'templatelinks';
             $this->prefix = 'tl';
             $this->description = 'template';
             $this->titlesParam = 'templates';
             $this->titlesParamDescription = 'Only list these templates. Useful ' . 'for checking whether a certain page uses a certain template.';
             $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Properties#templates_.2F_tl';
             break;
         default:
             ApiBase::dieDebug(__METHOD__, 'Unknown module name');
     }
     parent::__construct($query, $moduleName, $this->prefix);
 }
 public function getPossibleErrors()
 {
     $p = $this->getModulePrefix();
     return array_merge(parent::getPossibleErrors(), array(array('code' => 'params', 'info' => 'Use "gaifilterredir=nonredirects" option instead ' . 'of "redirects" when using allimages as a generator'), array('code' => 'badparams', 'info' => "Parameter'{$p}start' can only be used with {$p}sort=timestamp"), array('code' => 'badparams', 'info' => "Parameter'{$p}end' can only be used with {$p}sort=timestamp"), array('code' => 'badparams', 'info' => "Parameter'{$p}user' can only be used with {$p}sort=timestamp"), array('code' => 'badparams', 'info' => "Parameter'{$p}filterbots' can only be used with {$p}sort=timestamp"), array('code' => 'badparams', 'info' => "Parameter'{$p}from' can only be used with {$p}sort=name"), array('code' => 'badparams', 'info' => "Parameter'{$p}to' can only be used with {$p}sort=name"), array('code' => 'badparams', 'info' => "Parameter'{$p}prefix' can only be used with {$p}sort=name"), array('code' => 'badparams', 'info' => "Parameters '{$p}user' and '{$p}filterbots' cannot be used together"), array('code' => 'unsupportedrepo', 'info' => 'Local file repository does not support querying all images'), array('code' => 'mimesearchdisabled', 'info' => 'MIME search disabled in Miser Mode'), array('code' => 'invalidsha1hash', 'info' => 'The SHA1 hash provided is not valid'), array('code' => 'invalidsha1base36hash', 'info' => 'The SHA1Base36 hash provided is not valid')));
 }
Пример #10
0
 public function __construct(ApiQuery $query, $moduleName)
 {
     parent::__construct($query, $moduleName, self::$settings[$moduleName]['code']);
 }
Пример #11
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('code' => 'search-text-disabled', 'info' => 'text search is disabled'), array('code' => 'search-title-disabled', 'info' => 'title search is disabled'), array('code' => 'search-error', 'info' => 'search error has occurred')));
 }
Пример #12
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('invalidtitle', 'title'), array('code' => 'bad_image_title', 'info' => "The title for {$this->getModuleName()} query must be an image"), array('code' => '_badcontinue', 'info' => 'Invalid continue param. You should pass the original value returned by the previous query')));
 }
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('missingparam', 'lang')));
 }
Пример #14
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('code' => 'notloggedin', 'info' => 'You must be logged-in to have a watchlist'), array('show'), array('code' => 'bad_wlowner', 'info' => 'Specified user does not exist'), array('code' => 'bad_wltoken', 'info' => 'Incorrect watchlist token provided -- please set a correct token in Special:Preferences')));
 }
Пример #15
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('show'), array('code' => 'permissiondenied', 'info' => 'You need the patrol right to request the patrolled flag'), array('code' => 'user-excludeuser', 'info' => 'user and excludeuser cannot be used together')));
 }
Пример #16
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('code' => 'params', 'info' => 'Use "gapfilterredir=nonredirects" option instead of ' . '"redirects" when using allpages as a generator'), array('code' => 'params', 'info' => 'prlevel may not be used without prtype')));
 }
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), $this->getTitleOrPageIdErrorMessage(), array(array('code' => 'invalidcategory', 'info' => 'The category name you entered is not valid')));
 }
Пример #18
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('code' => '_badcontinue', 'info' => 'Invalid continue param. You should pass the original value returned by the previous query')));
 }
Пример #19
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('code' => 'params', 'info' => 'Use "gaifilterredir=nonredirects" option instead of "redirects" when using allimages as a generator'), array('code' => 'unsupportedrepo', 'info' => 'Local file repository does not support querying all images'), array('code' => 'mimesearchdisabled', 'info' => 'MIME search disabled in Miser Mode'), array('code' => 'invalidsha1hash', 'info' => 'The SHA1 hash provided is not valid'), array('code' => 'invalidsha1base36hash', 'info' => 'The SHA1Base36 hash provided is not valid'), array('code' => '_badcontinue', 'info' => 'Invalid continue param. You should pass the original value returned by the previous query')));
 }
Пример #20
0
 public function getPossibleErrors()
 {
     $m = $this->getModuleName();
     return array_merge(parent::getPossibleErrors(), array(array('code' => 'params', 'info' => "{$m} cannot be used as a generator in unique links mode"), array('code' => 'params', 'info' => "{$m} cannot return corresponding page ids in unique links mode"), array('code' => 'params', 'info' => 'alcontinue and alfrom cannot be used together'), array('code' => 'badcontinue', 'info' => 'Invalid continue parameter')));
 }
Пример #21
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('specialpage-cantexecute')));
 }
Пример #22
0
 public function __construct($query, $moduleName)
 {
     parent::__construct($query, $moduleName, 'rp');
 }
Пример #23
0
 public function __construct(ApiQuery $query, $moduleName)
 {
     parent::__construct($query, $moduleName, 'ai');
     $this->mRepo = RepoGroup::singleton()->getLocalRepo();
 }
Пример #24
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('show')));
 }
Пример #25
0
 /**
  * This method is called by the generator base when generator in the smart-continue
  * mode tries to set 'query-continue' value. ApiQuery stores those values separately
  * until the post-processing when it is known if the generation should continue or repeat.
  * @param ApiQueryGeneratorBase $module generator module
  * @param string $paramName
  * @param mixed $paramValue
  * @return bool true if processed, false if this is a legacy continue
  */
 public function setGeneratorContinue($module, $paramName, $paramValue)
 {
     if ($this->mUseLegacyContinue) {
         return false;
     }
     $paramName = $module->encodeParamName($paramName);
     if ($this->mGeneratorContinue === null) {
         $this->mGeneratorContinue = array();
     }
     $this->mGeneratorContinue[$paramName] = $paramValue;
     return true;
 }
Пример #26
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('code' => 'bad_query', 'info' => 'Invalid query')));
 }
Пример #27
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), array(array('code' => 'bad_wlowner', 'info' => 'Specified user does not exist'), array('code' => 'bad_wltoken', 'info' => 'Incorrect watchlist token provided -- please set a correct token in Special:Preferences'), array('code' => 'notloggedin', 'info' => 'You must be logged-in to have a watchlist'), array('code' => 'patrol', 'info' => 'patrol property is not available'), array('show'), array('code' => 'permissiondenied', 'info' => 'You need the patrol right to request the patrolled flag'), array('code' => 'user-excludeuser', 'info' => 'user and excludeuser cannot be used together')));
 }
 public function __construct(ApiQuery $query, $moduleName)
 {
     // The prefix pp is already used by the pageprops module, so using wpp instead.
     parent::__construct($query, $moduleName, 'wpp');
 }
Пример #29
0
 public function __construct(ApiQuery $query, $moduleName)
 {
     parent::__construct($query, $moduleName, 'pt');
 }
Пример #30
0
 public function getPossibleErrors()
 {
     return array_merge(parent::getPossibleErrors(), $this->getTitleOrPageIdErrorMessage(), array(array('code' => 'bad_image_title', 'info' => "The title for {$this->getModuleName()} query must be an image")));
 }