X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=maintenance%2FcleanupTitles.php;h=5b441f90f1fe3d6244a87d2913b8f6562c9712b8;hp=ccc64068093e619936633162982f8544e8ad536a;hb=11ee7f78da9776db26098642a151a288f98bea14;hpb=980c688c2b9833fd83c3f4a7f5bf75031a071c74 diff --git a/maintenance/cleanupTitles.php b/maintenance/cleanupTitles.php index ccc6406809..5b441f90f1 100644 --- a/maintenance/cleanupTitles.php +++ b/maintenance/cleanupTitles.php @@ -25,6 +25,8 @@ * @ingroup Maintenance */ +use MediaWiki\MediaWikiServices; + require_once __DIR__ . '/cleanupTable.inc'; /** @@ -130,9 +132,13 @@ class TitleCleanup extends TableCleanup { * @param object $row * @param Title $title */ - protected function moveInconsistentPage( $row, $title ) { - if ( $title->exists() || $title->getInterwiki() || !$title->canExist() ) { - if ( $title->getInterwiki() || !$title->canExist() ) { + protected function moveInconsistentPage( $row, Title $title ) { + if ( $title->exists( Title::GAID_FOR_UPDATE ) + || $title->getInterwiki() + || !$title->canExist() + ) { + $titleImpossible = $title->getInterwiki() || !$title->canExist(); + if ( $titleImpossible ) { $prior = $title->getPrefixedDBkey(); } else { $prior = $title->getDBkey(); @@ -150,7 +156,12 @@ class TitleCleanup extends TableCleanup { $ns = 0; } - $clean = 'Broken/' . $prior; + if ( !$titleImpossible && !$title->exists() ) { + // Looks like the current title, after cleaning it up, is valid and available + $clean = $prior; + } else { + $clean = 'Broken/' . $prior; + } $verified = Title::makeTitleSafe( $ns, $clean ); if ( !$verified || $verified->exists() ) { $blah = "Broken/id:" . $row->page_id; @@ -160,7 +171,7 @@ class TitleCleanup extends TableCleanup { $title = $verified; } if ( is_null( $title ) ) { - $this->error( "Something awry; empty title.", true ); + $this->fatalError( "Something awry; empty title." ); } $ns = $title->getNamespace(); $dest = $title->getDBkey(); @@ -179,10 +190,10 @@ class TitleCleanup extends TableCleanup { ], [ 'page_id' => $row->page_id ], __METHOD__ ); - LinkCache::singleton()->clear(); + MediaWikiServices::getInstance()->getLinkCache()->clear(); } } } -$maintClass = "TitleCleanup"; +$maintClass = TitleCleanup::class; require_once RUN_MAINTENANCE_IF_MAIN;