diff options
author | Kunal Mehta <legoktm@member.fsf.org> | 2016-10-05 19:55:46 -0700 |
---|---|---|
committer | Kunal Mehta <legoktm@member.fsf.org> | 2016-10-06 15:15:29 -0700 |
commit | c86a06ae3b72f0f1dc5ad77b4d2641e61fac5c32 (patch) | |
tree | 35095d21ea7d42167ccb93112037a9943b9779f7 | |
parent | 5412c2f4a16bf3ee420f4f621a2821899b692434 (diff) | |
download | mediawikicore-c86a06ae3b72f0f1dc5ad77b4d2641e61fac5c32.tar.gz mediawikicore-c86a06ae3b72f0f1dc5ad77b4d2641e61fac5c32.zip |
Add 'pmid' to the default interwiki list, and update 'rfc'
As an alternative to using magic links, PMID was added to the default
interwiki list.
RFC already existed, but the URL in the default list was pointing to
rfc-editor.org, not the tools.ietf.org view like the RFC magic link or
Wikimedia interwiki map are.
Updating the default lists in maintenance/interwiki* only affects new
installations, so a post-database update maintenance script adds and
updates the two interwiki prefixes.
Bug: T147536
Change-Id: I5a2c2c9b0f989da62a4395c9516d880c7d923444
-rw-r--r-- | autoload.php | 1 | ||||
-rw-r--r-- | includes/installer/DatabaseUpdater.php | 1 | ||||
-rw-r--r-- | maintenance/addRFCandPMIDInterwiki.php | 86 | ||||
-rw-r--r-- | maintenance/interwiki.list | 3 | ||||
-rw-r--r-- | maintenance/interwiki.sql | 3 |
5 files changed, 92 insertions, 2 deletions
diff --git a/autoload.php b/autoload.php index ffd6557f5dda..748d954e3086 100644 --- a/autoload.php +++ b/autoload.php @@ -10,6 +10,7 @@ $wgAutoloadLocalClasses = [ 'Action' => __DIR__ . '/includes/actions/Action.php', 'ActiveUsersPager' => __DIR__ . '/includes/specials/pagers/ActiveUsersPager.php', 'ActivityUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/ActivityUpdateJob.php', + 'AddRFCAndPMIDInterwiki' => __DIR__ . '/maintenance/addRFCandPMIDInterwiki.php', 'AjaxDispatcher' => __DIR__ . '/includes/AjaxDispatcher.php', 'AjaxResponse' => __DIR__ . '/includes/AjaxResponse.php', 'AllMessagesTablePager' => __DIR__ . '/includes/specials/pagers/AllMessagesTablePager.php', diff --git a/includes/installer/DatabaseUpdater.php b/includes/installer/DatabaseUpdater.php index aece3170f075..ff87e9f58636 100644 --- a/includes/installer/DatabaseUpdater.php +++ b/includes/installer/DatabaseUpdater.php @@ -77,6 +77,7 @@ abstract class DatabaseUpdater { PopulateBacklinkNamespace::class, FixDefaultJsonContentPages::class, CleanupEmptyCategories::class, + AddRFCAndPMIDInterwiki::class, ]; /** diff --git a/maintenance/addRFCandPMIDInterwiki.php b/maintenance/addRFCandPMIDInterwiki.php new file mode 100644 index 000000000000..9740ef2d7970 --- /dev/null +++ b/maintenance/addRFCandPMIDInterwiki.php @@ -0,0 +1,86 @@ +<?php +/** + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html + * + * @file + */ + +require_once __DIR__ . '/Maintenance.php'; + +/** + * Run automatically with update.php + * + * - Changes "rfc" URL to use tools.ietf.org domain + * - Adds "pmid" interwiki + * + * @since 1.28 + */ +class AddRFCAndPMIDInterwiki extends LoggedUpdateMaintenance { + public function __construct() { + parent::__construct(); + $this->addDescription( 'Add RFC and PMID to the interwiki database table' ); + } + + protected function getUpdateKey() { + return __CLASS__; + } + + protected function updateSkippedMessage() { + return 'RFC and PMID already added to interwiki database table'; + } + + protected function doDBUpdates() { + $interwikiCache = $this->getConfig()->get( 'InterwikiCache' ); + // Using something other than the database, + if ( $interwikiCache !== false ) { + return true; + } + $dbw = $this->getDB( DB_MASTER ); + $rfc = $dbw->selectField( + 'interwiki', + 'iw_url', + [ 'iw_prefix' => 'rfc' ], + __METHOD__ + ); + + // Old pre-1.28 default value, or not set at all + if ( $rfc === false || $rfc === 'http://www.rfc-editor.org/rfc/rfc$1.txt' ) { + $dbw->replace( + 'interwiki', + [ 'iw_prefix' ], + [ + 'iw_prefix' => 'rfc', + 'iw_url' => 'https://tools.ietf.org/html/rfc$1' + ], + __METHOD__ + ); + } + + $dbw->insert( + 'interwiki', + [ + 'iw_prefix' => 'pmid', + 'iw_url' => 'https://www.ncbi.nlm.nih.gov/pubmed/$1?dopt=Abstract', + ], + __METHOD__, + // If there's already a pmid interwiki link, don't + // overwrite it + [ 'IGNORE' ] + ); + + return true; + } +} diff --git a/maintenance/interwiki.list b/maintenance/interwiki.list index 3cc009e744f2..fa8bf3b84269 100644 --- a/maintenance/interwiki.list +++ b/maintenance/interwiki.list @@ -34,8 +34,9 @@ mozillawiki|http://wiki.mozilla.org/$1|0|https://wiki.mozilla.org/api.php mw|https://www.mediawiki.org/wiki/$1|0|https://www.mediawiki.org/w/api.php oeis|http://oeis.org/$1|0| openwiki|http://openwiki.com/ow.asp?$1|0| +pmid|https://www.ncbi.nlm.nih.gov/pubmed/$1?dopt=Abstract|0| pythoninfo|http://wiki.python.org/moin/$1|0| -rfc|http://www.rfc-editor.org/rfc/rfc$1.txt|0| +rfc|https://tools.ietf.org/html/rfc$1|0| s23wiki|http://s23.org/wiki/$1|0|http://s23.org/w/api.php seattlewireless|http://seattlewireless.net/$1|0| senseislibrary|http://senseis.xmp.net/?$1|0| diff --git a/maintenance/interwiki.sql b/maintenance/interwiki.sql index 0e0bb5c52a44..adb6cd141e98 100644 --- a/maintenance/interwiki.sql +++ b/maintenance/interwiki.sql @@ -36,8 +36,9 @@ REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local,iw_api) VALUES ('mw','https://www.mediawiki.org/wiki/$1',0,'https://www.mediawiki.org/w/api.php'), ('oeis','http://oeis.org/$1',0,''), ('openwiki','http://openwiki.com/ow.asp?$1',0,''), +('pmid', 'https://www.ncbi.nlm.nih.gov/pubmed/$1?dopt=Abstract',0,''), ('pythoninfo','http://wiki.python.org/moin/$1',0,''), -('rfc','http://www.rfc-editor.org/rfc/rfc$1.txt',0,''), +('rfc','https://tools.ietf.org/html/rfc$1',0,''), ('s23wiki','http://s23.org/wiki/$1',0,'http://s23.org/w/api.php'), ('seattlewireless','http://seattlewireless.net/$1',0,''), ('senseislibrary','http://senseis.xmp.net/?$1',0,''), |