User:Tisane/Code graveyard

Integration SQL
CREATE INDEX iwl_from ON iwlinks (iwl_from, iwl_prefix, iwl_title); CREATE INDEX /*i*/iwl_prefix_from_title ON /*_*/iwlinks (iwl_prefix, iwl_from, iwl_title);

Pulled from class PopulateInterwikiWatchlistTable extends SpecialPage {
/**	 * Prepare a list of titles on a user's watchlist (including talk pages) * and return an array of titles *	 * @param $user User * @return array */	function getWatchlist( $userId ) { $list= array; $dbr = wfGetDB( DB_MASTER ); $res = $dbr->select(			'watchlist',			'*',			array( 'wl_user' => $userId, ),			__METHOD__		); if( $res->numRows > 0 ) { while( $row = $res->fetchObject ) { $title = Title::makeTitle( $row->wl_namespace, $row->wl_title ); $list[] = $title; }			$res->free; }		return $list; }

A section of code that's about to be revamped
/** * A special page that populates the Interwiki watchlist table. */ class PopulateInterwikiWatchlistTable extends SpecialPage { function __construct { parent::__construct( 'PopulateInterwikiWatchlistTable', 'integration' ); wfLoadExtensionMessages( 'InterwikiIntegration' ); }	function execute( $par ) { global $wgInterwikiIntegrationPrefix, $wgOut; $dbr = wfGetDB( DB_SLAVE ); $dbw = wfGetDB( DB_MASTER ); $dbw->delete ( 'integration_watchlist', '*' ); $dbList = array_unique ( $wgInterwikiIntegrationPrefix ); foreach ( $dbList as $thisDb ) { $thisDbr = wfGetDB( DB_SLAVE, array, $thisDb ); $userRes = $thisDbr->select(				'user',				'*'			); if( $userRes->numRows > 0 ) { while( $row = $userRes->fetchObject ) { $userId = $row->user_id; $watchlistRes = $thisDbr->select(						'watchlist',						'*',						array( 'wl_user' => $userId )					);					if( $watchlistRes->numRows > 0 ) { while( $row = $watchlistRes->fetchObject ) { $dbw->insert (								'integration_watchlist',								array( 'integration_wl_user' 	 => $userId, 'integration_wl_db'       => $thisDb, 'integration_wl_namespace' => $row->wl_namespace, 'integration_wl_title'	 => $row->wl_title )							);						}					}				}			}		}		$wgOut->setPagetitle( wfMsg( 'actioncomplete' ) ); $wgOut->addWikiMsg( 'interwikiwatchlist-setuptext' ); return; } }

Another soon-to-be-revamped
$dbw->insert (						'integration_recentchanges',						array( 'integration_rc_local_id'		=> $row->rc_id, 'integration_wl_db' 		=> $thisDb, 'integration_rc_timestamp'	=> $row->rc_timestamp, 'integration_rc_cur_time'	 	=> $row->rc_cur_time, 'integration_rc_user'		=> $row->rc_user, 'integration_rc_user_text'	=> $row->rc_user_text, 'integration_rc_namespace'	=> $row->rc_namespace, 'integration_rc_title'		=> $row->rc_title, 'integration_rc_comment'		=> $row->rc_comment, 'integration_rc_minor'		=> $row->rc_minor, 'integration_rc_bot'		=> $row->rc_bot, 'integration_rc_new'		=> $row->rc_new, 'integration_rc_cur_id'		=> $row->rc_cur_id, 'integration_rc_this_oldid'	=> $row->rc_this_oldid, 'integration_rc_last_oldid'	=> $row->rc_last_oldid, 'integration_rc_type'		=> $row->rc_type, 'integration_rc_moved_to_ns'	=> $row->rc_moved_to_ns, 'integration_rc_moved_to_title'	=> $row->rc_moved_to_title, 'integration_rc_patrolled'	=> $row->rc_patrolled, 'integration_rc_ip'		=> $row->rc_ip, 'integration_rc_old_len'		=> $row->rc_old_len, 'integration_rc_new_len'		=> $row->rc_new_len, 'integration_rc_deleted'		=> $row->rc_deleted, 'integration_rc_logid'		=> $row->rc_logid, 'integration_rc_log_type'		=> $row->rc_log_type, 'integration_rc_log_action'	=> $row->rc_log_action, 'integration_rc_params'		=> $row->rc_params )					);

More code about to be scrapped
, Ilmari Karonen * @license GNU General Public Licence 2.0 or later */ class RandomPage extends SpecialPage { private $namespaces; // namespaces to select pages from protected $isRedir = false; // should the result be a redirect? protected $extra = array; // Extra SQL statements

public function __construct( $name = 'Randompage' ){ global $wgContentNamespaces; $this->namespaces = $wgContentNamespaces; parent::__construct( $name ); }

public function getNamespaces { return $this->namespaces; }

public function setNamespace ( $ns ) { if( !$ns || $ns < NS_MAIN ) $ns = NS_MAIN; $this->namespaces = array( $ns ); }

// select redirects instead of normal pages? public function isRedirect { return $this->isRedir; }

/**	 * Go to a random page * @param $excludeBlank If true, continue picking random pages until a	 * non-blank page is found or the * @param $attempts Number of attempts to find a non-blank page before * giving up	 */ public function execute( $par, $excludeBlank = false, $attempts = 1000 ) { global $wgOut, $wgContLang, $wgRequest;

if ($par) { $this->setNamespace( $wgContLang->getNsIndex( $par ) ); }

$title = $this->getRandomTitle( $excludeBlank, $attempts );

if( is_null( $title ) ) { $this->setHeaders; $wgOut->addWikiMsg( strtolower( $this->mName ) . '-nopages', 				$this->getNsList, count( $this->namespaces ) ); return; }		if ( $title === false ) { $this->setHeaders; $wgOut->addWikiMsg( strtolower( $this->mName ) .				'-nononblankpages', $this->getNsList,				count( $this->namespaces ), $attempts ); return; }

$redirectParam = $this->isRedirect ? array( 'redirect' => 'no' ) : array; $query = array_merge( $wgRequest->getValues, $redirectParam ); unset( $query['title'] ); $wgOut->redirect( $title->getFullUrl( $query ) ); }

/**	 * Get a comma-delimited list of namespaces we don't have * any pages in	 * @return String */	private function getNsList { global $wgContLang; $nsNames = array; foreach( $this->namespaces as $n ) { if( $n === NS_MAIN ) $nsNames[] = wfMsgForContent( 'blanknamespace' ); else $nsNames[] = $wgContLang->getNsText( $n ); }		return $wgContLang->commaList( $nsNames ); }

/**	 * Choose a random title. * @return Title object (or null if nothing to choose from, or false if	 * pages were found but they were all blank and $excludeBlank is true	 * @param $excludeBlank If true, continue picking random pages until a	 * non-blank page is found or a certain number of attempts have been made	 * to find a non-blank page	 * @param $attempts Number of attempts to find a suitable page before	 * giving up	 */	public function getRandomTitle( $excludeBlank = false, $attempts = 1000 ) {		$randstr = wfRandom;		$title = null;		if ( !wfRunHooks( 'SpecialRandomGetRandomTitle', array( &$randstr, &$this->isRedir, &$this->namespaces, &$this->extra, &$title, &$excludeBlank, &$attempts ) ) ) {			return $title;		}		$dbr = wfGetDB( DB_SLAVE );		/* Give up after a certain number of attempts to find a suitable		 * page (i.e. non-blank, if applicable), because some wikis, or		 * some namespaces, may have few or no suitable pages.		 */		while ( $attempts > 0 ) {			$row = $this->selectRandomPageFromDB( $randstr );			/* If we picked a value that was higher than any in			 * the DB, wrap around and select the page with the			 * lowest value instead! One might think this would			 * skew the distribution, but in fact it won't cause			 * any more bias than what the page_random scheme			 * causes anyway.  Trust me, I'm a mathematician. :) */			if( !$row ) { $row = $this->selectRandomPageFromDB( "0" ); }			if( $row ) { if ( !$excludeBlank					|| Revision::loadFromPageId( $dbr, $row->page_id )->getRawText !== '') { return Title::makeTitleSafe( $row->page_namespace, $row->page_title ); } else { $randstr = wfRandom; }			} else { return null; }			$attempts--; }		return false; }

private function selectRandomPageFromDB( $randstr ) { global $wgExtraRandompageSQL; $dbr = wfGetDB( DB_SLAVE );

$use_index = $dbr->useIndexClause( 'page_random' ); $page = $dbr->tableName( 'page' );

$ns = implode( ",", $this->namespaces ); $redirect = $this->isRedirect ? 1 : 0;		if ( $wgExtraRandompageSQL ) { $this->extra[] = $wgExtraRandompageSQL; }		if ( $this->addExtraSQL ) { $this->extra[] = $this->addExtraSQL; }		$extra = ''; if ( $this->extra ) { $extra = 'AND (' . implode( ') AND (', $this->extra ) . ')'; }		$sql = "SELECT page_title, page_namespace, page_id			FROM $page $use_index			WHERE page_namespace IN ( $ns )			AND page_is_redirect = $redirect			AND page_random >= $randstr			$extra			ORDER BY page_random";

$sql = $dbr->limitResult( $sql, 1, 0 ); $res = $dbr->query( $sql, __METHOD__ ); return $dbr->fetchObject( $res ); }

/* an alternative to $wgExtraRandompageSQL so subclasses * can add their own SQL by overriding this function * @deprecated, append to $this->extra instead */	public function addExtraSQL { return ''; } }

More
'randompage'                 => 'Random page', 'randompage-nopages'         => 'There are no pages in the following NaN namespacess: $1.', 'randompage-nononblankpages' => 'A non-blank page was not found, after $3 attempts were made to find one by randomly selecting pages from the following NaN namespacess: $1.', 'randompage-url'             => 'Special:Random', # do not translate or duplicate this message to other languages
 * 1) Random page

MOAR!!!!
foreach ( $tables as $key => $thisTable ) { str_replace( 'integration_', '', $thisTable ); $tables[$key] = $thisTable; }

And moar
$dumpQuery = $dbr->lastQuery; #$wgOut->addWikiText ( $dumpQuery ); echo $dumpQuery; die;

Still moar
/**	 * Add newly watched articles to integration_watchlist */	public static function InterwikiIntegrationWatchArticleComplete( &$user, &$article ) { global $wgDBname; $title = $article->getTitle; if ( $title->isTalkPage ) { $subjectNamespace = $title->getSubjectPage->getNamespace; $talkNamespace = $title->getNamespace; } else { $subjectNamespace = $title->getNamespace; $talkNamespace = $title->getTalkPage->getNamespace; }		$DBkey = $title->getDBkey; $dbw = wfGetDB( DB_MASTER ); $dbw->insert( 'integration_watchlist',		 array( 'integration_wl_user' => $user->getId, 'integration_wl_db' => $wgDBname, 'integration_wl_namespace' => $subjectNamespace, 'integration_wl_title' => $DBkey ) );		$dbw->insert( 'integration_watchlist',		 array( 'integration_wl_user' => $user->getId, 'integration_wl_db' => $wgDBname, 'integration_wl_namespace' => $talkNamespace, 'integration_wl_title' => $DBkey ) );		return true; }	/**	 * Remove newly unwatched articles from integration_watchlist */	public static function InterwikiIntegrationUnwatchArticleComplete ( &$user, &$article ) { global $wgDBname; $title = $article->getTitle; if ( $title->isTalkPage ) { $subjectNamespace = $title->getSubjectPage->getNamespace; $talkNamespace = $title->getNamespace; } else { $subjectNamespace = $title->getNamespace; $talkNamespace = $title->getTalkPage->getNamespace; }		$DBkey = $title->getDBkey; $dbw = wfGetDB( DB_MASTER ); $dbw->delete( 'integration_watchlist',		 array( 'integration_wl_user' => $user->getId, 'integration_wl_db' => $wgDBname, 'integration_wl_namespace' => $subjectNamespace, 'integration_wl_title' => $DBkey ) );		$dbw->insert( 'integration_watchlist',		 array( 'integration_wl_user' => $user->getId, 'integration_wl_db' => $wgDBname, 'integration_wl_namespace' => $talkNamespace, 'integration_wl_title' => $DBkey ) );		return true; }

Even moar
&& $rc->mAttribs['integration_page_db'] == $rc->mAttribs['integration_rc_db']