addDescription( 'Check for bad redirects' ); } public function execute() { $this->output( "Fetching redirects...\n" ); $dbr = $this->getDB( DB_REPLICA ); $result = $dbr->select( [ 'page' ], [ 'page_namespace', 'page_title', 'page_latest' ], [ 'page_is_redirect' => 1 ] ); $count = $result->numRows(); $this->output( "Found $count redirects.\n" . "Checking for bad redirects:\n\n" ); foreach ( $result as $row ) { $title = Title::makeTitle( $row->page_namespace, $row->page_title ); $rev = Revision::newFromId( $row->page_latest ); if ( $rev ) { $target = $rev->getContent()->getRedirectTarget(); if ( !$target ) { $this->output( $title->getPrefixedText() . "\n" ); } } } $this->output( "\nDone.\n" ); } } $maintClass = CheckBadRedirects::class; require_once RUN_MAINTENANCE_IF_MAIN;