User:Icairns/monobook4.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
Documentation for this user script can be added at User:Icairns/monobook4. |
//<pre><nowiki>
//--------------------------------------------------------------
//First loads
//Helper tools
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Addtabs/monobook.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s');
//////////////////////
//Admin rollback tools
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Specialadmin/monobook.js'
+ '&action=raw&ctype=text/javascript');
//END
//BCrat tools
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Bureaucrat/monobook.js'
+ '&action=raw&ctype=text/javascript');
RfAshowlinks = 'true';
//END
//CU tools
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/CheckUser/monobook.js'
+ '&action=raw&ctype=text/javascript');
//END
//UTC clock
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/UTCclock.js'
+ '&action=raw&ctype=text/javascript');
//END
//Admin protection tools
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Protection/monobook.js'
+ '&action=raw&ctype=text/javascript');
//END
//Approvals
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Approvals.js'
+ '&action=raw&ctype=text/javascript');
//END
//Replace txt
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/replacetxt.js'
+ '&action=raw&ctype=text/javascript');
//END</nowiki></pre>
//<nowiki><pre>
//---------------------------------------------------------------
//Toolbox links
function changelinks()
{
if(!document.getElementById) return;
var toplinks = document.getElementById('p-personal').getElementsByTagName('ul')[0];
var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;
if (document.title.indexOf('User:' + user_name + '/xml') != -1 || document.title.indexOf('User:' + user_name + '/XML') != -1)
{addlilink(toplinks, 'javascript:XMLrequestprompt()', 'Request XML', 'Request XML');}
document.getElementById('pt-mytalk').firstChild.innerHTML = 'my Talk page';
document.getElementById('pt-preferences').firstChild.innerHTML = 'Change Preferences';
document.getElementById('pt-watchlist').firstChild.innerHTML = 'Check my Watchlist';
document.getElementById('pt-mycontris').firstChild.innerHTML = 'My Contributions';
document.getElementById('pt-logout').firstChild.innerHTML = 'Log out';
if(document.getElementById('ca-delete'))
{document.getElementById('ca-delete').firstChild.innerHTML = '<strong><span style="color:darkred;">delete</span></strong>';}
}
function navigationlinks()
{
addnavbox_link('/wiki/Wikipedia:Administrator_intervention_against_vandalism','Vandalism','aiv-ln');
addnavbox_link('/wiki/Category:Candidates_for_speedy_deletion','Speedy deletions','speedy-ln');
addnavbox_link('/wiki/Wikipedia:Requests for page protection','Protection requests','rfpp-ln');
addnavbox_link('/wiki/Wikipedia:Administrators%27_noticeboard','Noticeboard','AN-ln');
}
function addtoolboxlinks()
{
var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
addlilink(tb, '/wiki/Special:Newpages', 'New pages', '');
addlilink(tb, '/wiki/Special:Log/newusers', 'New users', '');
addlilink(tb, '/wiki/WP:PP', 'Protected pages', '');
}
//END
//---------------------------------------------------------------
// ======== USER TABS =======
function userlogs()
{
//no subpages or history
if (document.title.search("/") != -1 || location.href.search(/Special:|&action=[^p]|&diff=/) !=-1)
{return;}
if (document.title.indexOf("User:") == 0 || document.title.indexOf("User talk:") == 0)
{
username_a = document.URL.match(/:.*:(.*)/);
username=username_a[1];
addTab("http://en.wikipedia.org/w/index.php?title=Special%3ALog&type=block&user=&page=User:" + username, "log", "ca-blog", "block log", "");
addTab("http://tools.wikimedia.de/~interiot/cgi-bin/Tool1/wannabe_kate?username=" + username + "&site=en.wikipedia.org", "info", "ca-kate", "user info", "");
}
}
//************
//************
//LAST DIFF TAB
function lastdiff()
{
if (document.title.indexOf("Editing ") != -1 || document.getElementById('ca-history') == undefined || location.href.search(/&action=history/) !=-1)
{return;}
z=document.getElementById("content").childNodes;
for (var n=0;n<z.length;n++) {
if (z[n].className=="firstHeading")
{
var pname=document.title.split(' - ')[0].replace(/&/g,'%26').replace(/\\+/g, '%2B');
}
}
addTab("http://en.wikipedia.org/w/index.php?title=" + pname + "&diff=cur&oldid=prev", "Last", "ca-diff", "Show most recent diff", "");
}
// This will add an [edit top] link at the top of all pages except preview pages
function addtoplink()
{
var edittop = '<span style="color:black;">[</span>edit top<span style="color:black;">]</span>';
// if this is preview page or generated page, stop
if(document.getElementById("wikiPreview") || window.location.href.indexOf("w/index.php?title=Special:") != -1) return;
if(document.title.indexOf("Main Page") != -1) return;
// get the page title
var pageTitle = document.title.split(" - ")[0].replace(" ", "_");
// create div and set innerHTML to link
var divContainer = document.createElement("div");
divContainer.innerHTML = '<div class="editsection" style="float:right;margin-left:5px;margin-right:130px;margin-top:3px;"><a href="/w/index.php?title='+pageTitle+'&action=edit§ion=0" title="'+document.title.split(" - ")[0]+'">' + edittop + '</a></div>';
// insert divContainer into the DOM before the h1
if (document.getElementById("content") !=undefined) {
document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);}
}
//END
//************
//MAIN
//************
addOnloadHook(Mainfast)
function Mainfast()
{
userlogs();
changelinks();
navigationlinks();
addtoolboxlinks();
}
window.onload = Main;
function Main()
{
watchlist_tab();
block_check();
lastdiff();
addtoplink();
}
//END
//************
function watchlist_tab()
{
if (location.href.indexOf('Special:Watchlist/edit') !=-1)
{addTab("javascript:watchlist_clean()", "check deleted pages", "ca-clean", "check all deleted pages", "");}
}
function watchlist_clean()
{
//monobook
if (document.getElementById('bodyContent'))
{
var body = document.getElementById('bodyContent');
}
//cologneblue
else if (document.getElementById('quickbar'))
{
if (!document.getElementById('content')){return;}
var body = document.getElementById('content');
}
var l = body.getElementsByTagName('li');
for (var i=0; i<l.length; i++)
{
if (l[i].getElementsByTagName('a')[0].href.indexOf('&action=') !=-1)
{l[i].getElementsByTagName('input')[0].checked=true;}
}
}
function block_check()
{
if (document.title.indexOf('Block user') !=0){return;}
//monobook
if (document.getElementById('pt-userpage'))
{var user_name = document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML;}
//cologneblue
else if (document.getElementById('quickbar') && document.getElementById('quickbar').getElementsByTagName('h6')[0])
{
var toplinks = document.getElementById('quickbar');
var user_name = toplinks.innerHTML.split('<h6>My pages</h6>')[1].split('title="User:')[1].split('"')[0];
}
if (document.getElementsByTagName('input')[0].value == user_name)
{alert('Are you sure you want to block yourself?');}
else if (document.getElementsByTagName('input')[0].value == user_name.replace(/ /g,'_'))
{alert('Are you sure you want to block yourself?');}
}
//
addOnloadHook(Dfn_js_con)
function Dfn_js_con()
{
Mvaluejs_class = 'DMalak1';
Rvaluejs_class = 'ERollen2';
Uvaluejs_class = 'DRaven2';
}
//
//************
//New user log tools
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Sleeper/monobook.js'
+ '&action=raw&ctype=text/javascript');
//END
//Admin warning tools
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Adminwarnings/monobook.js'
+ '&action=raw&ctype=text/javascript');
//END
//Delete tabs
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Deletion/monobook.js'
+ '&action=raw&ctype=text/javascript');
//END
//************
//Google tools
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Google/monobook.js'
+ '&action=raw&ctype=text/javascript');
//END
//Interiot's javascript edit counter
if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) {
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js&action=raw&ctype=text/javascript'); }
//
//************
//Lupin's tools
//************
//Filter changes live [[Category:Wikipedians who use VoA script]]
//[[User:Lupin/recent2.js]] - please include this line
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s');
//[[User:Lupin/popupsdev.js]] - please include this line
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Lupin/popupsdev.js'
+ '&action=raw&ctype=text/javascript');
popupShortcutKeys=true; // optional: enable keyboard shortcuts
popupAdminLinks=true; // optional: enable admin links [[Category:Wikipedians who use VoA script]]
popupSubpopups=false;
popupOnEditSelection=false;
popupStructure='shortmenus';
//END
//************
function XMLrequestprompt()
{
var parameters = '';
var type = 'GET';
var url = location.href;
url = prompt('Enter a URL:');
parse_js_value_cache = 0;
parse_js_value_cache = prompt('Parse the data?' + '\n' + '0 - false (default)' + '\n' + '1 - true (no script/SRCs/images)' + '\n' + '2 - true (no script/SRCs)' + '\n' + '3 - true (script/images allowed)');
if (parse_js_value_cache != 0 && parse_js_value_cache != 1 && parse_js_value_cache != 2 && parse_js_value_cache != 3){return;}
if (!url || url == ''){return;}
makeRequestXML(url, parameters,type);
}
function alertContents()
{
if (http_request.readyState != 4)
return;
body = document.getElementById('bodyContent');
if (body && parse_js_value_cache == 3)
{
document.getElementsByTagName('title')[0].innerHTML = "XML request:";
body.innerHTML = '<strong>XML source return:</strong><br>' + http_request.responseText;
}
else if (body && parse_js_value_cache == 2)
{
document.getElementsByTagName('title')[0].innerHTML = "XML request:";
var xml = http_request.responseText.replace(/<.script>/gi,'`</script>');
body.innerHTML = '<strong>XML source return:</strong><br>' + xml.replace(/<script [^`]+`<.script>/gi,'').replace(/(<\w* onload=["'][^<]+["']>)/gi,'').replace(/(\src=["'][^<]+["']>)/gi,' src="">');
}
else if (body && parse_js_value_cache == 1)
{
document.getElementsByTagName('title')[0].innerHTML = "XML request:";
var xml = http_request.responseText.replace(/<.script>/gi,'`</script>');
body.innerHTML = '<strong>XML source return:</strong><br>' + xml.replace(/<script [^`]+`<.script>/gi,'').replace(/(<\w* onload=["'][^<]+["']>)/gi,'').replace(/(<img [^<]+>)/gi,'').replace(/(\src=["'][^<]+["']>)/gi,' src="">');
}
else if (body && parse_js_value_cache == 0)
{
document.getElementsByTagName('title')[0].innerHTML = "XML request:";
var xml = http_request.responseText.replace(/<.script>/gi,'`</script>');
xml = xml.replace(/(<a href=["'][^<]+<.a>)/gi,'%parenST|span style="background-color: yellow"|%parenEN$1%parenST|/span|%parenEN').replace(/(<img [^<]+>)/gi,'%parenST|span style="background-color: lightgreen"|%parenEN$1%parenST|/span|%parenEN').replace(/(<iframe [^<]+<.iframe>)/gi,'%parenST|span style="background-color: lightgreen"|%parenEN$1%parenST|/span|%parenEN').replace(/(<script [^`]+)`<.script>/gi,'%parenST|span style="background-color: #FF9900"|%parenEN$1</script>%parenST|/span|%parenEN').replace(/(<\w* onload=["'][^<]+["']>)/gi,'%parenST|span style="background-color: #FF9900"|%parenEN$1%parenST|/span|%parenEN').replace(/\s(src=["'][^<]+["'])>/gi,'%parenST|span style="background-color: #FF3300"|%parenEN $1>%parenST|/span|%parenEN');
body.innerHTML = '<strong>XML source return:</strong><br>' + xml.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/%parenST\|/g,'<').replace(/\|%parenEN/g,'>');
}
}
//security override HTTP request
//ALSO, reduce IE security settings
//For FF/NS, go enable, see "http://esw.w3.org/topic/SparqlCalendarDemoUsage#FAQ"
//Basically, enable "signed.applets.codebase_principal_support" in about:config
function makeRequestXML(url, parameters,type,parse)
{
if(window.XMLHttpRequest)
{
try {netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); }
catch (e) {alert("Permission UniversalBrowserRead denied."); }
http_request = false;
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{http_request.overrideMimeType('text/xml'); }
if (!http_request)
{alert('Cannot create XMLHTTP instance'); return false; }
http_request.onreadystatechange = alertContents;
http_request.open(type, url + parameters, true);
http_request.send(null);
}
else if (window.ActiveXObject)
{
try
{http_request = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e)
{
try
{http_request = new ActiveXObject("Microsoft.XMLHTTP");}
catch (e){}
}
if (!http_request) {showError(ERROR_XML);}
http_request.onreadystatechange = alertContents;
http_request.open(type, url + parameters, true);
http_request.send(null);
}
}
//
//</nowiki></pre>[[Category:Wikipedians who use VoA script]]