X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/mediawiki.git/blobdiff_plain/87219ebd28426c6d21cb545233ee52f5f7af7dfd..refs/tags/mediawiki-1.17.0:/maintenance/populateCategory.php diff --git a/maintenance/populateCategory.php b/maintenance/populateCategory.php index bf84bb0a..4f494e15 100644 --- a/maintenance/populateCategory.php +++ b/maintenance/populateCategory.php @@ -1,13 +1,13 @@ addOption( 'begin', 'Only do categories whose names are alphabetically after the provided name', false, true ); $this->addOption( 'max-slave-lag', 'If slave lag exceeds this many seconds, wait until it drops before continuing. Default: 10', false, true ); $this->addOption( 'throttle', 'Wait this many milliseconds after each category. Default: 0', false, true ); $this->addOption( 'force', 'Run regardless of whether the database says it\'s been run already' ); } - + public function execute() { $begin = $this->getOption( 'begin', '' ); $maxSlaveLag = $this->getOption( 'max-slave-lag', 10 ); @@ -47,81 +48,80 @@ TEXT; private function doPopulateCategory( $begin, $maxlag, $throttle, $force ) { $dbw = wfGetDB( DB_MASTER ); - - if( !$force ) { + + if ( !$force ) { $row = $dbw->selectRow( 'updatelog', '1', array( 'ul_key' => 'populate category' ), - __FUNCTION__ + __METHOD__ ); - if( $row ) { - $this->output( "Category table already populated. Use php ". - "maintenance/populateCategory.php\n--force from the command line ". + if ( $row ) { + $this->output( "Category table already populated. Use php " . + "maintenance/populateCategory.php\n--force from the command line " . "to override.\n" ); return true; } } - + $maxlag = intval( $maxlag ); $throttle = intval( $throttle ); - $force = (bool)$force; - if( $begin !== '' ) { - $where = 'cl_to > '.$dbw->addQuotes( $begin ); + if ( $begin !== '' ) { + $where = 'cl_to > ' . $dbw->addQuotes( $begin ); } else { $where = null; } $i = 0; - - while( true ) { + + while ( true ) { # Find which category to update $row = $dbw->selectRow( 'categorylinks', 'cl_to', $where, - __FUNCTION__, + __METHOD__, array( 'ORDER BY' => 'cl_to' ) ); - if( !$row ) { + if ( !$row ) { # Done, hopefully. break; } $name = $row->cl_to; - $where = 'cl_to > '.$dbw->addQuotes( $name ); - + $where = 'cl_to > ' . $dbw->addQuotes( $name ); + # Use the row to update the category count $cat = Category::newFromName( $name ); - if( !is_object( $cat ) ) { + if ( !is_object( $cat ) ) { $this->output( "The category named $name is not valid?!\n" ); } else { $cat->refreshCounts(); } - + ++$i; - if( !($i % self::REPORTING_INTERVAL) ) { + if ( !( $i % self::REPORTING_INTERVAL ) ) { $this->output( "$name\n" ); wfWaitForSlaves( $maxlag ); } - usleep( $throttle*1000 ); + usleep( $throttle * 1000 ); } - - if( $dbw->insert( + + if ( $dbw->insert( 'updatelog', array( 'ul_key' => 'populate category' ), - __FUNCTION__, + __METHOD__, 'IGNORE' ) ) { - wfOut( "Category population complete.\n" ); + $this->output( "Category population complete.\n" ); return true; } else { - wfOut( "Could not insert category population row.\n" ); + $this->output( "Could not insert category population row.\n" ); return false; } } } $maintClass = "PopulateCategory"; -require_once( DO_MAINTENANCE ); +require_once( RUN_MAINTENANCE_IF_MAIN );