Matěj Suchánek has uploaded a new change for review.
https://gerrit.wikimedia.org/r/291495
Change subject: Make fetching the newest version work again
......................................................................
Make fetching the newest version work again
Change-Id: Idfba7b56c0854c660f3d9c3e0987d0e6ac0a0e89
---
M i18n/en.json
M i18n/es.json
M specialupdatemediawiki.php
3 files changed, 61 insertions(+), 61 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UpdateMediaWiki
refs/changes/95/291495/1
diff --git a/i18n/en.json b/i18n/en.json
index dd05680..fde5570 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -6,9 +6,9 @@
},
"updatemediawiki": "Update MediaWiki",
"updatemediawiki-desc": "Allows updating MediaWiki via a special page",
- "updatemediawiki-current": "Current version",
+ "updatemediawiki-current": "Current version $1",
"updatemediawiki-update-nofound": "No update is available",
- "updatemediawiki-update-found": "New update found",
+ "updatemediawiki-update-found": "New update found: $1",
"updatemediawiki-update-downloading": "Downloading new update",
"updatemediawiki-update-saved": "Update downloaded and saved",
"updatemediawiki-update-exist": "Update already downloaded",
diff --git a/i18n/es.json b/i18n/es.json
index 8b1d820..18e549c 100644
--- a/i18n/es.json
+++ b/i18n/es.json
@@ -6,9 +6,9 @@
},
"updatemediawiki": "Actualizar MediaWiki",
"updatemediawiki-desc": "Permite a los administradores y usuarios
autorizados actualizar MediaWiki desde una página especial.",
- "updatemediawiki-current": "Versión Actual",
+ "updatemediawiki-current": "Versión Actual $1",
"updatemediawiki-update-nofound": "No hay actualizaciones disponibles",
- "updatemediawiki-update-found": "Nueva actualización encontrada",
+ "updatemediawiki-update-found": "Nueva actualización encontrada: $1",
"updatemediawiki-update-downloading": "Descargando nueva actualización",
"updatemediawiki-update-saved": "Nueva actualización descargada y
guardada",
"updatemediawiki-update-exist": "La actualización ya se había
descargado",
diff --git a/specialupdatemediawiki.php b/specialupdatemediawiki.php
index 00050b0..aef8898 100644
--- a/specialupdatemediawiki.php
+++ b/specialupdatemediawiki.php
@@ -10,12 +10,12 @@
**********************************************************************/
class Specialupdatemediawiki extends SpecialPage {
+
function __construct() {
- parent::__construct( $name = 'updatemediawiki', $restriction =
'updatecore' );
+ parent::__construct( 'updatemediawiki', 'updatecore' );
}
function execute( $par ) {
-
// ...
if ( !$this->userCanExecute( $this->getUser() ) ) {
$this->displayRestrictionError();
@@ -26,76 +26,76 @@
$output = $this->getOutput();
$this->setHeaders();
- $param = $request->getText( 'param' );
-
global $wgVersion, $IP;
- $getVersions =
substr(file_get_contents('https://www.mediawiki.org/w/index.php?title=Template:MW_stable_release_number&action=raw'),
0, 6) or die ('ERROR');
- if ($getVersions != '') {
+ $getVersion = json_decode( file_get_contents(
'https://www.mediawiki.org/w/api.php?action=parse&format=json&text=%7B%7B%23invoke%3AVersion%7Cget%7Cstable%7Cversion%7D%7D&prop=text&disablelimitreport=1&disableeditsection=1&preview=1&disabletoc=1&contentmodel=wikitext'
), true ) or die ( 'ERROR' );
+ $aV = $getVersion["parse"]["text"]["*"];
+ $updated = false;
+ $found = false;
+ if ( !empty( $aV ) ) {
//If we managed to access that file, then lets break up
those release versions into an array.
- $output->addWikiText( "== ". wfMessage(
'updatemediawiki-current' )->text() ." ".$wgVersion." == " );
- $versionList = explode("\\n", $getVersions);
- $mainVersion = substr($getVersions, 0, 4);
- foreach ( $versionList as $aV ) {
- if ( $aV > $wgVersion ) {
- $output->addWikiText( "<p>".wfMessage(
'updatemediawiki-update-found' )->text()."v".$aV."</p>" );
- $found = true;
- //Download The File If We Do Not Have
It
- if ( !is_file( __DIR__ .
'/Updates/mediawiki-'.$aV.'.tar.gz' ) ) {
- $output->addWikiText(
"<p>".wfMessage( 'updatemediawiki-update-downloading' )->text()."</p>" );
- $newUpdate =
file_get_contents('http://download.wikimedia.org/mediawiki/'.$mainVersion.'/mediawiki-'.$aV.'.tar.gz');
- if ( !is_dir( __DIR__ .
'/Updates' ) ) {
- mkdir( __DIR__ .
"/Updates", 0755 );
- }
- $dlHandler = fopen( __DIR__ .
'/Updates/mediawiki-'.$aV.'.tar.gz', 'w');
- if ( !fwrite( $dlHandler,
$newUpdate ) ) {
- $output->addWikiText(
"<p>" . wfMessage( 'updatemediawiki-update-aborted' )->text() . "</p>" );
- exit();
- }
- fclose( $dlHandler );
- $output->addWikiText( "<p>" .
wfMessage( 'updatemediawiki-update-saved' )->text() . "</p>" );
- } else {
- $output->addWikiText( "<p>" .
wfMessage( 'updatemediawiki-update-exist' )->text() . "</p>");
+ $output->addWikiText( "== " . $this->msg(
'updatemediawiki-current' )->text() . " $wgVersion ==" );
+ $aV = str_replace( "<p>", "", $aV );
+ $aV = str_replace( "</p>", "", $aV );
+ $aV = str_replace( "\n", "", $aV );
+ $mainVersion = substr( $aV, 0, 4 );
+ if ( $aV > $wgVersion ) {
+ $output->addWikiText( "<p>" . $this->msg(
'updatemediawiki-update-found', "v{$aV}" )->text() . "</p>" );
+ $found = true;
+ //Download The File If We Do Not Have It
+ if ( !is_file( __DIR__ .
"/Updates/mediawiki-{$aV}.tar.gz" ) ) {
+ $output->addWikiText( "<p>" .
wfMessage( 'updatemediawiki-update-downloading' )->text() . "</p>" );
+ $newUpdate = file_get_contents(
"http://download.wikimedia.org/mediawiki/{$mainVersion}/mediawiki-{$aV}.tar.gz"
);
+ if ( !is_dir( __DIR__ . '/Updates' ) ) {
+ mkdir( __DIR__ . "/Updates",
0755 );
+ }
+ $dlHandler = fopen( __DIR__ .
"/Updates/mediawiki-{$aV}.tar.gz", 'w');
+ if ( !fwrite( $dlHandler, $newUpdate )
) {
+ $output->addWikiText( "<p>" .
$this->msg( 'updatemediawiki-update-aborted' )->text() . "</p>" );
+ exit();
+ }
+ fclose( $dlHandler );
+ $output->addWikiText( "<p>" .
$this->msg( 'updatemediawiki-update-saved' )->text() . "</p>" );
+ } else {
+ $output->addWikiText( "<p>" .
$this->msg( 'updatemediawiki-update-exist' )->text() . "</p>" );
+ }
+
+ if ( $par == "doUpdate" ) {
+ //Open The File And Do Stuff
+ $gz = new PharData(
"/Updates/mediawiki-{$aV}.tar.gz" );
+ $output->addWikiText( "<ul>" );
+
+ //Make the directory if we need to...
+ if ( !is_dir( "/Updates{$aV}" ) ) {
+ mkdir( __DIR__ .
"/Updates{$aV}", 0755 );
}
- if ( $par == "doUpdate" ) {
- //Open The File And Do Stuff
- $gz = new
PharData('/Updates/mediawiki-'.$aV.'.tar.gz');
- $output->addWikiText( "<ul>");
-
- //Make the directory if we need
to...
- if ( !is_dir ( "/Updates" . $aV
) ) {
- mkdir( __DIR__ .
"/Updates" . $aV, 0755 );
- }
+ //Overwrite the file
- //Overwrite the file
+ $gz = decompress(); // creates files.tar
+ // unarchive from the tar
+ $phar = new PharData(
"Updates/mediawiki-{$aV}.tar" );
+ $phar->extractTo( $IP );
+ $output->addWikiText( "<p>" .
$this->msg( 'updatemediawiki-update-ready' )->text() . " [$IP/mw-config " .
wfMessage( 'updatemediawiki-update-database' )->text() . "]</p>" );
- $gz = decompress(); // creates
files.tar
- // unarchive from the tar
- $phar = new
PharData('Updates/mediawiki-'.$aV.'.tar');
- $phar->extractTo($IP);
- $output->addWikiText(
"<p>".wfMessage( 'updatemediawiki-update-ready' )->text()." [".$IP."/mw-config
".wfMessage( 'updatemediawiki-update-database' )->text()."]</p>");
-
- $output->addWikiText( "</ul>");
- $updated = true;
- } else {
- $output->addWikiText(
"<p>".wfMessage( 'updatemediawiki-update-updateready' )->text()."
[[/doUpdate|".wfMessage( 'updatemediawiki-update-install' )->text()."]]</p>");
- }
- break;
+ $output->addWikiText( "</ul>" );
+ $updated = true;
+ } else {
+ $output->addWikiText( "<p>" .
$this->msg( 'updatemediawiki-update-updateready' )->text() . "
[[Special:Updatemediawiki/doUpdate|" . $this->msg(
'updatemediawiki-update-install' )->text() . "]]</p>" );
}
}
}
- if ( $updated == true ) {
- $output->addWikiText( "<p class=\"success\">»
".wfMessage( 'updatemediawiki-update-updated', '$aV' )->text().'</p>');
- } elseif ( $found != true ) {
- $output->addWikiText( wfMessage(
'updatemediawiki-update-nofound' )->text() );
+ if ( $updated === true ) {
+ $output->addWikiText( '<p class="success">» ' .
$this->msg( 'updatemediawiki-update-updated', $aV )->text() . '</p>' );
+ } elseif ( $found !== true ) {
+ $output->addWikiText( '<p>' . $this->msg(
'updatemediawiki-update-nofound' )->text() . '</p>' );
} else {
- $output->addWikiText( "<p>".wfMessage(
'updatemediawiki-update-error' )->text().'</p>');
+ $output->addWikiText( '<p>' . $this->msg(
'updatemediawiki-update-error' )->text() . '</p>' );
}
-
}
protected function getGroupName() {
return 'wiki';
}
+
}
--
To view, visit https://gerrit.wikimedia.org/r/291495
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Idfba7b56c0854c660f3d9c3e0987d0e6ac0a0e89
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UpdateMediaWiki
Gerrit-Branch: master
Gerrit-Owner: Matěj Suchánek <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits