print $title->getPrefixedDBkey() . " ...";
$rev = Revision::newFromTitle( $title );
- $reverted = false;
$revId = $rev->getId();
$currentRevId = $revId;
$regex = LinkFilter::makeRegex( $domain );
// This happens e.g. when a link comes from a template rather than the page itself
print "False match\n";
} else {
- $dbw =& wfGetDB( DB_MASTER );
+ $dbw = wfGetDB( DB_MASTER );
$dbw->immediateBegin();
if ( !$rev ) {
// Didn't find a non-spammy revision, blank the page
}
//------------------------------------------------------------------------------
+
+
+
$username = wfMsg( 'spambot_username' );
$fname = $username;
$wgUser = User::newFromName( $username );
exit(1);
}
-$dbr =& wfGetDB( DB_SLAVE );
+$dbr = wfGetDB( DB_SLAVE );
-$res = $dbr->select( 'externallinks', array( 'el_from' ),
- array( 'el_index LIKE ' . $dbr->addQuotes( $like ) ), $fname );
-$count = $dbr->numRows( $res );
-print "Found $count articles containing $spec\n";
-while ( $row = $dbr->fetchObject( $res ) ) {
- cleanupArticle( $row->el_from, $spec );
-}
-if ( $count ) {
- print "Done\n";
+if ( isset($options['all']) ) {
+ // Clean up spam on all wikis
+ $dbr = wfGetDB( DB_SLAVE );
+ print "Finding spam on " . count($wgLocalDatabases) . " wikis\n";
+ $found = false;
+ foreach ( $wgLocalDatabases as $db ) {
+ $count = $dbr->selectField( "`$db`.externallinks", 'COUNT(*)',
+ array( 'el_index LIKE ' . $dbr->addQuotes( $like ) ), $fname );
+ if ( $count ) {
+ $found = true;
+ passthru( "php cleanupSpam.php $db $spec | sed s/^/$db: /" );
+ }
+ }
+ if ( $found ) {
+ print "All done\n";
+ } else {
+ print "None found\n";
+ }
+} else {
+ // Clean up spam on this wiki
+ $res = $dbr->select( 'externallinks', array( 'DISTINCT el_from' ),
+ array( 'el_index LIKE ' . $dbr->addQuotes( $like ) ), $fname );
+ $count = $dbr->numRows( $res );
+ print "Found $count articles containing $spec\n";
+ while ( $row = $dbr->fetchObject( $res ) ) {
+ cleanupArticle( $row->el_from, $spec );
+ }
+ if ( $count ) {
+ print "Done\n";
+ }
}
?>