X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/8989532d3de45b196373107c7a812a68ac0ff2d9..d75ce11339b35963b5f8c3d53190819c1c025716:/maintenance/reassignEdits.inc.php diff --git a/maintenance/reassignEdits.inc.php b/maintenance/reassignEdits.inc.php deleted file mode 100644 index e68b4cf5..00000000 --- a/maintenance/reassignEdits.inc.php +++ /dev/null @@ -1,143 +0,0 @@ - - * @licence GNU General Public Licence 2.0 or later - */ - -/** - * Reassign edits from one user to another - * - * @param $from User to take edits from - * @param $to User to assign edits to - * @param $rc Update the recent changes table - * @param $report Don't change things; just echo numbers - * @return integer Number of entries changed, or that would be changed - */ -function reassignEdits( &$from, &$to, $rc = false, $report = false ) { - $dbw = wfGetDB( DB_MASTER ); - $dbw->immediateBegin(); - $fname = 'reassignEdits'; - - # Count things - out( "Checking current edits..." ); - $res = $dbw->select( 'revision', 'COUNT(*) AS count', userConditions( $from, 'rev_user', 'rev_user_text' ), $fname ); - $row = $dbw->fetchObject( $res ); - $cur = $row->count; - out( "found {$cur}.\n" ); - - out( "Checking deleted edits..." ); - $res = $dbw->select( 'archive', 'COUNT(*) AS count', userConditions( $from, 'ar_user', 'ar_user_text' ), $fname ); - $row = $dbw->fetchObject( $res ); - $del = $row->count; - out( "found {$del}.\n" ); - - # Don't count recent changes if we're not supposed to - if( $rc ) { - out( "Checking recent changes..." ); - $res = $dbw->select( 'recentchanges', 'COUNT(*) AS count', userConditions( $from, 'rc_user', 'rc_user_text' ), $fname ); - $row = $dbw->fetchObject( $res ); - $rec = $row->count; - out( "found {$rec}.\n" ); - } else { - $rec = 0; - } - - $total = $cur + $del + $rec; - out( "\nTotal entries to change: {$total}\n" ); - - if( !$report ) { - if( $total ) { - # Reassign edits - out( "\nReassigning current edits..." ); - $res = $dbw->update( 'revision', userSpecification( $to, 'rev_user', 'rev_user_text' ), userConditions( $from, 'rev_user', 'rev_user_text' ), $fname ); - out( "done.\nReassigning deleted edits..." ); - $res = $dbw->update( 'archive', userSpecification( $to, 'ar_user', 'ar_user_text' ), userConditions( $from, 'ar_user', 'ar_user_text' ), $fname ); - out( "done.\n" ); - # Update recent changes if required - if( $rc ) { - out( "Updating recent changes..." ); - $res = $dbw->update( 'recentchanges', userSpecification( $to, 'rc_user', 'rc_user_text' ), userConditions( $from, 'rc_user', 'rc_user_text' ), $fname ); - out( "done.\n" ); - } - } - } - - $dbw->immediateCommit(); - return (int)$total; -} - -/** - * Return the most efficient set of user conditions - * i.e. a user => id mapping, or a user_text => text mapping - * - * @param $user User for the condition - * @param $idfield Field name containing the identifier - * @param $utfield Field name containing the user text - * @return array - */ -function userConditions( &$user, $idfield, $utfield ) { - return $user->getId() ? array( $idfield => $user->getId() ) : array( $utfield => $user->getName() ); -} - -/** - * Return user specifications - * i.e. user => id, user_text => text - * - * @param $user User for the spec - * @param $idfield Field name containing the identifier - * @param $utfield Field name containing the user text - * @return array - */ -function userSpecification( &$user, $idfield, $utfield ) { - return array( $idfield => $user->getId(), $utfield => $user->getName() ); -} - -/** - * Echo output if $wgSilent is off - * - * @param $output Output to echo - * @return bool True if the output was echoed - */ -function out( $output ) { - global $wgSilent; - if( !$wgSilent ) { - echo( $output ); - return true; - } else { - return false; - } -} - -/** - * Mutator for $wgSilent - * - * @param $silent Switch on $wgSilent - */ -function silent( $silent = true ) { - global $wgSilent; - $wgSilent = $silent; -} - -/** - * Initialise the user object - * - * @param $username Username or IP address - * @return User - */ -function initialiseUser( $username ) { - if( User::isIP( $username ) ) { - $user = new User(); - $user->setId( 0 ); - $user->setName( $username ); - } else { - $user = User::newFromName( $username ); - } - $user->load(); - return $user; -} -