class RefreshLinks extends Maintenance {
public function __construct() {
parent::__construct();
- $this->mDescription = "Refresh link tables";
+ $this->addDescription( 'Refresh link tables' );
$this->addOption( 'dfn-only', 'Delete links from nonexistent articles only' );
$this->addOption( 'new-only', 'Only affect articles with just a single edit' );
$this->addOption( 'redirects-only', 'Only fix redirects, not all links' );
private function doRefreshLinks( $start, $newOnly = false,
$end = null, $redirectsOnly = false, $oldRedirectsOnly = false
) {
- global $wgParser;
-
$reportingInterval = 100;
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = $this->getDB( DB_SLAVE );
if ( $start === null ) {
$start = 1;
// Give extensions a chance to optimize settings
Hooks::run( 'MaintenanceRefreshLinksInit', array( $this ) );
- # Don't generate extension images (e.g. Timeline)
- $wgParser->clearTagHooks();
-
$what = $redirectsOnly ? "redirects" : "links";
if ( $oldRedirectsOnly ) {
*/
private function fixRedirect( $id ) {
$page = WikiPage::newFromID( $id );
- $dbw = wfGetDB( DB_MASTER );
+ $dbw = $this->getDB( DB_MASTER );
if ( $page === null ) {
// This page doesn't exist (any more)
return;
}
- $dbw = wfGetDB( DB_MASTER );
- $dbw->begin( __METHOD__ );
-
$updates = $content->getSecondaryDataUpdates( $page->getTitle() );
DataUpdate::runUpdates( $updates );
-
- $dbw->commit( __METHOD__ );
}
/**
) {
wfWaitForSlaves();
$this->output( "Deleting illegal entries from the links tables...\n" );
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = $this->getDB( DB_SLAVE );
do {
// Find the start of the next chunk. This is based only
// on existent page_ids.
* @param int $batchSize The size of deletion batches
*/
private function dfnCheckInterval( $start = null, $end = null, $batchSize = 100 ) {
- $dbw = wfGetDB( DB_MASTER );
- $dbr = wfGetDB( DB_SLAVE );
+ $dbw = $this->getDB( DB_MASTER );
+ $dbr = $this->getDB( DB_SLAVE );
$linksTables = array( // table name => page_id field
'pagelinks' => 'pl_from',