summaryrefslogtreecommitdiff
path: root/maintenance/cleanupSpam.php
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/cleanupSpam.php')
-rw-r--r--maintenance/cleanupSpam.php28
1 files changed, 12 insertions, 16 deletions
diff --git a/maintenance/cleanupSpam.php b/maintenance/cleanupSpam.php
index 8561281d..ca1e302b 100644
--- a/maintenance/cleanupSpam.php
+++ b/maintenance/cleanupSpam.php
@@ -36,6 +36,9 @@ class CleanupSpam extends Maintenance {
$username = wfMsg( 'spambot_username' );
$wgUser = User::newFromName( $username );
+ if ( !$wgUser ) {
+ $this->error( "Invalid username", true );
+ }
// Create the user if necessary
if ( !$wgUser->getId() ) {
$wgUser->addToDatabase();
@@ -91,36 +94,29 @@ class CleanupSpam extends Maintenance {
$this->output( $title->getPrefixedDBkey() . " ..." );
$rev = Revision::newFromTitle( $title );
- $revId = $rev->getId();
- $currentRevId = $revId;
+ $currentRevId = $rev->getId();
- while ( $rev && LinkFilter::matchEntry( $rev->getText() , $domain ) ) {
- # Revision::getPrevious can't be used in this way before MW 1.6 (Revision.php 1.26)
- # $rev = $rev->getPrevious();
- $revId = $title->getPreviousRevisionID( $revId );
- if ( $revId ) {
- $rev = Revision::newFromTitle( $title, $revId );
- } else {
- $rev = false;
- }
+ while ( $rev && ( $rev->isDeleted( Revision::DELETED_TEXT ) || LinkFilter::matchEntry( $rev->getText() , $domain ) ) ) {
+ $rev = $rev->getPrevious();
}
- if ( $revId == $currentRevId ) {
+
+ if ( $rev && $rev->getId() == $currentRevId ) {
// The regex didn't match the current article text
// This happens e.g. when a link comes from a template rather than the page itself
$this->output( "False match\n" );
} else {
$dbw = wfGetDB( DB_MASTER );
$dbw->begin();
+ $page = WikiPage::factory( $title );
if ( !$rev ) {
// Didn't find a non-spammy revision, blank the page
$this->output( "blanking\n" );
- $article = new Article( $title );
- $article->doEdit( '', wfMsg( 'spam_blanking', $domain ) );
+ $page->doEdit( '', wfMsgForContent( 'spam_blanking', $domain ) );
} else {
// Revert to this revision
$this->output( "reverting\n" );
- $article = new Article( $title );
- $article->doEdit( $rev->getText(), wfMsg( 'spam_reverting', $domain ), EDIT_UPDATE );
+ $page->doEdit( $rev->getText(), wfMsgForContent( 'spam_reverting', $domain ),
+ EDIT_UPDATE, $rev->getId() );
}
$dbw->commit();
}