From: Brion Vibber Date: Thu, 30 Aug 2007 13:47:06 +0000 (+0000) Subject: Revert r25297, r25298 for now. X-Git-Tag: 1.31.0-rc.0~51595 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/?a=commitdiff_plain;h=3a7e2083e8e2c1950d7bb31ad21884211322b6f4;p=lhc%2Fweb%2Fwiklou.git Revert r25297, r25298 for now. Adds what seems to be a very purpose-specific extension into the core API: a) shortly before release b) while apparently not implementing much of its interface c) with an interface that looks kind of strange to me --- diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index 270ceef8c0..25c728cdd8 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -306,7 +306,6 @@ function __autoload($className) { 'Spyc' => 'includes/api/ApiFormatYaml_spyc.php', 'ApiFormatYaml' => 'includes/api/ApiFormatYaml.php', 'ApiHelp' => 'includes/api/ApiHelp.php', - 'ApiInstantCommons' => 'includes/api/ApiInstantCommons.php', 'ApiLogin' => 'includes/api/ApiLogin.php', 'ApiMain' => 'includes/api/ApiMain.php', 'ApiOpenSearch' => 'includes/api/ApiOpenSearch.php', diff --git a/includes/api/ApiInstantCommons.php b/includes/api/ApiInstantCommons.php deleted file mode 100755 index 439fa15767..0000000000 --- a/includes/api/ApiInstantCommons.php +++ /dev/null @@ -1,191 +0,0 @@ -extractRequestParams()); - $data = array(); - $data = $this->fetchImage($media); - if($data!=NULL){ - $this->getResult()->addValue('instantcommons', 'image', $data); - } - } - - - /** - * Override the parent to generate help messages for all available query modules. - */ - public function makeHelpMsg() { - - // Use parent to make default message for the query module - $msg = parent :: makeHelpMsg(); - - // Make sure the internal object is empty - // (just in case a sub-module decides to optimize during instantiation) - $this->mPageSet = null; - - $astriks = str_repeat('--- ', 8); - $msg .= "\n$astriks InstantCommons: Prop $astriks\n\n"; - $msg .= "\n See http://meta.wikimedia.org/wiki/InstantCommons\n\n"; - return $msg; - } - - private function makeHelpMsgHelper($moduleList, $paramName) { - - $moduleDscriptions = array (); - - foreach ($moduleList as $moduleName => $moduleClass) { - $msg = "* $paramName=$moduleName *"; - $module = new $moduleClass ($this, $moduleName, null); - $msg2 = $module->makeHelpMsg(); - if ($msg2 !== false) - $msg .= $msg2; - if ($module instanceof ApiInstantCommonsGeneratorBase) - $msg .= "Generator:\n This module may be used as a generator\n"; - $moduleDscriptions[] = $msg; - } - - return implode("\n", $moduleDscriptions); - } - - protected function getAllowedParams() { - return array ( - 'media' => null, - 'maint' => null, - 'meta' => null, - ); - } - protected function getParamDescription() { - return array ( - 'media' => 'Get properties for the media', - 'maint' => 'Which maintenance actions to perform', - 'meta' => 'Which meta data to get about this site', - ); - } - - protected function getDescription() { - return array ( - 'InstantCommons API InstantCommons is an API feature of MediaWiki to ' . - 'allow the usage of any uploaded media file from the Wikimedia Commons ' . - 'in any MediaWiki installation world-wide. InstantCommons-enabled wikis ' . - 'cache Commons content so that it is only downloaded once, and subsequent ' . - 'pageviews load the locally existing copy.' - ); - } - - protected function getExamples() { - return array ( - 'api.php?action=instantcommons&media=Image:MusekeBannerl.jpg', - 'api.php?action=instantcommons&media=Image:MusekeBannerl.jpg&maint=update', //performs update on this media - 'api.php?action=instantcommons&media=Image:MusekeBannerl.jpg&maint=delete', //performs delete on this media - 'api.php?action=instantcommons&maint=update', //TODO: performs update on all commons media - 'api.php?action=instantcommons&maint=delete', //TODO: performs delete on all commons imedia - 'api.php?action=instantcommons&maint=both', //TODO: performs update/delete on all commons media - 'api.php?action=instantcommons&maint=pending', //TODO: return a GD temp image - ); - } - - public function getVersion() { - $psModule = new ApiPageSet($this); - $vers = array (); - $vers[] = __CLASS__ . ': $Id: ApiInstantCommons.php 17074 2006-10-27 05:27:43Z suuch $'; - $vers[] = $psModule->getVersion(); - return $vers; - } - - /** - * Fetch the media from the commons server in the background. - * Save it as a local media (but noting its source in the appropriate media table) - * @fileName is a fully qualified mediawiki object name (e.g. Image:sing.png) - * @return an associative array containing file properties in property=>value pairs - */ - public function fetchImage($fileName){ - global $wgScriptPath; - $nt = Title::newFromText( $fileName ); - if(is_object($nt)){ - $image = new Image ($nt); - if($image->exists()){ - $image->url = substr(strstr($image->repo->url, $wgScriptPath), strlen($wgScriptPath)).'/'.$image->repo->getHashPath($image->name).$image->name; - $image->metadata = addslashes($image->metadata); - $ari=(array)$image; - //unset non-string elements - foreach($ari as $property=>$value){ - if(is_object($value)){ - unset($ari[$property]); - } - } - return $ari; - }else{ - return array('error'=>1, 'description'=>'File not found'); //file not found - } - } - else - { - return array('error'=>2, 'description'=>'Not a valid title'); //not a valid title - } - } - - - - function parse($strInputXML) { - $this->resParser = xml_parser_create (); - xml_set_object($this->resParser,$this); - xml_set_element_handler($this->resParser, "tagOpen", "tagClosed"); - - xml_set_character_data_handler($this->resParser, "tagData"); - - $this->strXmlData = xml_parse($this->resParser,$strInputXML ); - if(!$this->strXmlData) { - die(sprintf("XML error: %s at line %d", - xml_error_string(xml_get_error_code($this->resParser)), - xml_get_current_line_number($this->resParser))); - } - - xml_parser_free($this->resParser); - - return $this->arrOutput; - } - function tagOpen($parser, $name, $attrs) { - $tag=array("name"=>$name,"attrs"=>$attrs); - array_push($this->arrOutput,$tag); - } - - function tagData($parser, $tagData) { - if(trim($tagData)) { - if(isset($this->arrOutput[count($this->arrOutput)-1]['tagData'])) { - $this->arrOutput[count($this->arrOutput)-1]['tagData'] .= $tagData; - } - else { - $this->arrOutput[count($this->arrOutput)-1]['tagData'] = $tagData; - } - } - } - - function tagClosed($parser, $name) { - $this->arrOutput[count($this->arrOutput)-2]['children'][] = $this->arrOutput[count($this->arrOutput)-1]; - array_pop($this->arrOutput); - } - -} -?> diff --git a/includes/api/ApiMain.php b/includes/api/ApiMain.php index 549565df17..b33e762119 100644 --- a/includes/api/ApiMain.php +++ b/includes/api/ApiMain.php @@ -57,7 +57,6 @@ class ApiMain extends ApiBase { 'opensearch' => 'ApiOpenSearch', 'feedwatchlist' => 'ApiFeedWatchlist', 'help' => 'ApiHelp', - 'instantcommons' => 'ApiInstantCommons' ); /**