From: Kunal Mehta Date: Thu, 6 Oct 2016 02:55:46 +0000 (-0700) Subject: Add 'pmid' to the default interwiki list, and update 'rfc' X-Git-Tag: 1.31.0-rc.0~5185^2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=c86a06ae3b72f0f1dc5ad77b4d2641e61fac5c32 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 --- diff --git a/autoload.php b/autoload.php index ffd6557f5d..748d954e30 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 aece3170f0..ff87e9f586 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 0000000000..9740ef2d79 --- /dev/null +++ b/maintenance/addRFCandPMIDInterwiki.php @@ -0,0 +1,86 @@ +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 3cc009e744..fa8bf3b842 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 0e0bb5c52a..adb6cd141e 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,''),