User:Pathoschild/Scripts/FilterRC.js

From Meta, a Wikimedia project coordination wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// <source lang="javascript">
// Adds a form box to Special:RecentChanges that hides edits by the specified user.
function filterRC() {
	if(wgPageName=="Special:Recentchanges") {
		// namespace
		var frc = {};
		
		// add inputbox
		frc.body = document.getElementById('bodyContent');
		frc.optionsbox = getElementsByClassName(frc.body,'div','rcoptions')[0];
		
		frc.optionsbox.innerHTML += '<form><input type="text" id="frc_name" /><input type="button" value="filter username" onClick="frc_filter();"></form>';
	}
}

function frc_filter() {
	// namespace
	var frc = {};

	// get entries to filter
	frc.user = document.getElementById('frc_name').value;

	/* filter */
	if(!frc.user.match("^\s*$")) {
		frc.body = document.getElementById('bodyContent');
		
		// normal RC
		if(frc.body.innerHTML.match(/<ul class="special">/)) {
			frc.regex = new RegExp('<li>\\(<a[^>]+>diff[^\n]+</span> \\. \\. <a href="\\/wiki\\/User:' + frc.user + '[^\n]+','g');
		}
		// enhanced RC
		else {
			frc.regex = new RegExp('<img[^>]+>[^\n]+\\. \\. <a href="\\/wiki\\/User:' + frc.user + '[^\n]+','g');
		}
		// filter
		frc.body.innerHTML = frc.body.innerHTML.replace(frc.regex,'');
	}
}

$(filterRC);
// </source>
// <noinclude>[[Category:JavaScript|FilterRC.js]]</noinclude>