X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/19e297c21b10b1b8a3acad5e73fc71dcb35db44a..6932310fd58ebef145fa01eb76edf7150284d8ea:/maintenance/addRFCandPMIDInterwiki.php diff --git a/maintenance/addRFCandPMIDInterwiki.php b/maintenance/addRFCandPMIDInterwiki.php new file mode 100644 index 00000000..b21bfbb7 --- /dev/null +++ b/maintenance/addRFCandPMIDInterwiki.php @@ -0,0 +1,95 @@ +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', + 'iw_api' => '', + 'iw_wikiid' => '', + 'iw_local' => 0, + ], + __METHOD__ + ); + } + + $dbw->insert( + 'interwiki', + [ + 'iw_prefix' => 'pmid', + 'iw_url' => 'https://www.ncbi.nlm.nih.gov/pubmed/$1?dopt=Abstract', + 'iw_api' => '', + 'iw_wikiid' => '', + 'iw_local' => 0, + ], + __METHOD__, + // If there's already a pmid interwiki link, don't + // overwrite it + [ 'IGNORE' ] + ); + + return true; + } +} + +$maintClass = 'AddRFCAndPMIDInterwiki'; +require_once RUN_MAINTENANCE_IF_MAIN;