diff options
Diffstat (limited to 'maintenance/cleanupCaps.php')
-rw-r--r-- | maintenance/cleanupCaps.php | 57 |
1 files changed, 25 insertions, 32 deletions
diff --git a/maintenance/cleanupCaps.php b/maintenance/cleanupCaps.php index 46ca18d6..6a48ea83 100644 --- a/maintenance/cleanupCaps.php +++ b/maintenance/cleanupCaps.php @@ -24,38 +24,35 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * http://www.gnu.org/copyleft/gpl.html * - * @file * @author Brion Vibber <brion at pobox.com> * @ingroup maintenance */ -$optionsWithArgs = array( 'namespace' ); +require_once( dirname(__FILE__) . '/cleanupTable.inc' ); -require_once( 'commandLine.inc' ); -require_once( 'cleanupTable.inc' ); - -/** - * @ingroup Maintenance - */ class CapsCleanup extends TableCleanup { - function __construct( $dryrun = false, $namespace = 0 ) { - parent::__construct( 'page', $dryrun ); - $this->namespace = intval( $namespace ); + public function __construct() { + parent::__construct(); + $this->mDescription = "Script to cleanup capitalization"; + $this->addOption( 'namespace', 'Namespace number to run caps cleanup on', false, true ); } - function cleanup() { - global $wgCapitalLinks; - if( $wgCapitalLinks ) { - echo "\$wgCapitalLinks is on -- no need for caps links cleanup.\n"; - return false; - } + public function execute() { + global $wgCapitalLinks, $wgUser; + $this->namespace = intval( $this->getOption( 'namespace', 0 ) ); + $this->dryrun = $this->hasOption( 'dry-run' ); + $wgUser->setName( 'Conversion script' ); + if( $wgCapitalLinks ) + $this->error( "\$wgCapitalLinks is on -- no need for caps links cleanup.", true ); - $this->runTable( $this->targetTable, - 'WHERE page_namespace=' . $this->namespace, - array( &$this, 'processPage' ) ); + $this->runTable( array( + 'table' => 'page', + 'conds' => array( 'page_namespace' => $this->namespace ), + 'index' => 'page_id', + 'callback' => 'processRow' ) ); } - function processPage( $row ) { + protected function processRow( $row ) { global $wgContLang; $current = Title::makeTitle( $row->page_namespace, $row->page_title ); @@ -63,42 +60,38 @@ class CapsCleanup extends TableCleanup { $upper = $row->page_title; $lower = $wgContLang->lcfirst( $row->page_title ); if( $upper == $lower ) { - $this->log( "\"$display\" already lowercase." ); + $this->output( "\"$display\" already lowercase.\n" ); return $this->progress( 0 ); } $target = Title::makeTitle( $row->page_namespace, $lower ); $targetDisplay = $target->getPrefixedText(); if( $target->exists() ) { - $this->log( "\"$display\" skipped; \"$targetDisplay\" already exists" ); + $this->output( "\"$display\" skipped; \"$targetDisplay\" already exists\n" ); return $this->progress( 0 ); } if( $this->dryrun ) { - $this->log( "\"$display\" -> \"$targetDisplay\": DRY RUN, NOT MOVED" ); + $this->output( "\"$display\" -> \"$targetDisplay\": DRY RUN, NOT MOVED\n" ); $ok = true; } else { $ok = $current->moveTo( $target, false, 'Converting page titles to lowercase' ); - $this->log( "\"$display\" -> \"$targetDisplay\": $ok" ); + $this->output( "\"$display\" -> \"$targetDisplay\": $ok\n" ); } if( $ok === true ) { $this->progress( 1 ); - if( $row->page_namespace == $this->namespace ) { $talk = $target->getTalkPage(); $row->page_namespace = $talk->getNamespace(); if( $talk->exists() ) { - return $this->processPage( $row ); + return $this->processRow( $row ); } } } else { $this->progress( 0 ); } } - } -$wgUser->setName( 'Conversion script' ); -$ns = isset( $options['namespace'] ) ? $options['namespace'] : 0; -$caps = new CapsCleanup( isset( $options['dry-run'] ), $ns ); -$caps->cleanup(); +$maintClass = "CapsCleanup"; +require_once( DO_MAINTENANCE ); |