User:Voice of All/Bureaucrat/monobook.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
//<pre><nowiki> //Helper tools document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Addtabs/monobook.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //END //Analyze any user's contribs document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/History/monobook.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //END // RfAshowlinks = 'true'; // function jssubmitclose() { var form = document.getElementById('editform'); form.submit(); } //END function cratfinish() { if (location.href.indexOf('fakeaction=SRFAdelist&target=') != -1) { var name = unescape(location.href.split('&target=')[1].split('&target2=')[0]); var user = unescape(location.href.split('&target2=')[1]); var listing = "{{" + name + "}}"; if (document.editform.wpTextbox1.value.indexOf(listing) == -1){alert('RfA already removed.'); return;} document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(listing,''); document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(/----\n\n----/g,'----'); alert(name + ' delisted.'); document.editform.wpSummary.value += "Closed RfA, [[User:" + user + "|" + user + "]] promoted."; //jssubmitclose(); } else if (location.href.indexOf('&fakeaction=FRFAdelist&target=') != -1) { var name = unescape(location.href.split('&target=')[1].split('&target2=')[0]); var user = unescape(location.href.split('&target2=')[1]); var listing = "{{" + name + "}}"; if (document.editform.wpTextbox1.value.indexOf(listing) == -1){alert('RfA already removed.'); return;} alert(name + ' delisted.'); document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(listing,''); document.editform.wpSummary.value += "Closed RfA, no consensus to promote [[User:" + user + "|" + user + "]]."; //jssubmitclose(); } else if (location.href.indexOf('&fakeaction=RFAsucadd&target') != -1) { var target = unescape(location.href.split('&target=')[1].split('&')[0]); var name = '{{' + target + '}}' + '\n' + '----'; var txt = document.editform.wpTextbox1; if (txt.value.indexOf('==Most recent successful nominations==') == -1){return;} txt.value = '==Most recent successful nominations==' + '\n' + name + txt.value.split('==Most recent successful nominations==')[1]; document.editform.wpSummary.value += 'Adding "' + target + '".'; //jssubmitclose(); } else if (location.href.indexOf('&fakeaction=RFAfailadd&target=') != -1) { addTab("javascript:Alpha_userwait2()", "(Add)", "ca-add", "Add", ""); alert('Add "[NEW]" to the proper alphabetical location and press (add).'); var to_add = unescape(location.href.split('&target=')[1].split('&')[0]); var name = to_add.split('[[')[1].split(']]')[0]; document.editform.wpSummary.value += 'Adding "' + name + '".'; } } // var Alpha_user_done = 0; function Alpha_userwait2() { var to_add = unescape(location.href.split('&target=')[1].split('&')[0]); var name = to_add.split('[[')[1].split(']]')[0]; if (Alpha_user_done == 1){alert('Already added.'); return;} if (document.editform.wpTextbox1.value.indexOf('[NEW]') != -1){Alpha_user_done=1;} document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace('[NEW]',to_add); //jssubmitclose(); } function CHUlinks() { if(document.title.indexOf("Editing Wikipedia:Changing username (section)") == 0) { var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; addlimenu(tabs, 'Rename results', 'chclosefunc'); var chclosefunc = document.getElementById('chclosefunc').getElementsByTagName('ul')[0]; //Rename results addlilink(chclosefunc, 'javascript:Cng_UName(1)', 'done', ''); addlilink(chclosefunc, 'javascript:Cng_UName(2)', 'not done', ''); } } // Cng_UNamealready = 0; // function Cng_UName(type) { var z = 0; if (type == 1 && Cng_UNamealready != 1) { Cng_UNamealready=1; document.editform.wpTextbox1.value += "\n" + ":{{done}} Done. ~~~~"; document.editform.wpSummary.value += "Complete."; } else if (type == 2 && Cng_UNamealready != 1) { Cng_UNamealready=1; document.editform.wpTextbox1.value += "\n" + ":That username already exists. Please follow the instructions at the top of the page to select an unregistered username. ~~~~"; document.editform.wpSummary.value += ":{{not done}} Username already exists."; } } function crathide() { if (location.href.search(/&oldid=|&diff=/) !=-1){return;} if (!RfAshowlinks){RfAshowlinks = 'false'} if (wgTitle != "Requests for adminship" || RfAshowlinks != 'true'){return;} //kill table of contents if (document.getElementById('toc')) document.getElementById('toc').innerHTML = ''; var rawhtml = document.getElementById('bodyContent').innerHTML; //navdivs hidea_div = '<div class="NavFrame" style="border-style: none; text-align: left; border: darkblue solid 1px; background: #ffffff; padding: 5px;"><div class="NavHead" style="border-style: none; background: lightgrey; text-align: center; padding: 2px; font-size: 130%;">' + '\n'; hidea2_div = '<div class="NavFrame" style="border-style: none; text-align: left; border: darkred solid 1px; background: #ffffff; padding: 5px;"><div class="NavHead" style="border-style: none; background: lightgrey; text-align: center; padding: 2px; font-size: 130%;">' + '\n'; hideb_div = '\n' + '</div><div class="NavContent" style="background: none; font-size: 100%; display: none;">'; hidec_div = '</div></div>'; //RfAs var newhtml = rawhtml.replace(/(<h3><span class="editsection">\[<a href="\/w\/index.php\?title=Wikipedia:Requests_for_adminship\/)/ig,'<br>' + hidea_div + '$1'); //RfBs newhtml = newhtml.replace(/(<h3><span class="editsection">\[<a href="\/w\/index.php\?title=Wikipedia:Requests_for_bureaucratship\/)/ig,'<br>' + hidea2_div + '$1'); //both newhtml = newhtml.replace(/(<p><a name=".+" id=".+"><\/a><\/p>)/ig,hidec_div + '<br>$1'); newhtml = newhtml.replace(/(\(\d+\/\d+\/\d+\)) .+ \d\d:\d\d.+ \(UTC\)/ig,rfaTally); document.getElementById('bodyContent').innerHTML = newhtml; } //END function rfaTally(match,tally) { var S = 1*tally.match(/\d+/g)[0]; var O = 1*tally.match(/\d+/g)[1]; var N = 1*tally.match(/\d+/g)[2]; perc = Math.round((100)*100*S/(S+O))/100; tperc = Math.round((100)*100*S/(S+O+N))/100; var color = 'red'; if (perc > 90) color = 'green'; else if (perc > 80) color = 'darkgreen'; else if (perc > 70) color = 'darkorange'; else if (perc > 60) color = 'darkred'; poll = ' [<span style="color:' + color + '">' + perc + '%</span>] (Confident:<span style="color:darkblue">' + tperc + '%</span>)'; var string = match + ' ' + poll + hideb_div + '<br><br>'; return string; } //Get text in between two <h2>heading</h2> tag (eventually, h1, h3, ect...) //the first input is the raw parent xml //this assumes unique titles! function getSectionBodytext(html,firstheading,nextheading,level) { var htag = '<' + level + '>'; var ehtag = '<\/' + level + '>'; var first_id = '<p><a name="' + firstheading.replace(/ /g,'_') + '" id="' + firstheading.replace(/ /g,'_') + '"></a></p>'; var next_id = '<p><a name="' + nextheading.replace(/ /g,'_') + '" id="' + nextheading.replace(/ /g,'_') + '"></a></p>'; var body_html = html.split(first_id)[1].split(next_id)[0]; var first_header = body_html.match(new RegExp(htag + '.+' + ehtag,''))[0]; var body_html = body_html.substr(body_html.indexOf(first_header)); return body_html; } function crattools() { if(document.getElementById('ca-talk') && document.title.indexOf('Wikipedia:') != -1) {document.getElementById('ca-talk').firstChild.innerHTML = 'Talk';} if (document.title.indexOf('Editing Wikipedia:Requests for adminship/') != -1) { addTab("javascript:cratClose(1)", "(Success)", "ca-cratS", "Close as success", ""); addTab("javascript:cratClose(-1)", "(Failure)", "ca-cratF", "Close as failure", ""); } else if (document.title.indexOf('Editing ') == -1 && document.title.indexOf('Wikipedia:Requests for adminship/') != -1 && location.href.indexOf('=history') == -1) { addTab("javascript:cratcomment()", "mess", "ca-cratI", "Leave user a new message", ""); } } //END function jssubmitclose() { var form = document.getElementById('editform'); form.submit(); setTimeout('window.close()',12000); } //END function cratClose(type) { var txt = document.editform.wpTextbox1; var RfAName = document.title.split(' (section)')[0].split(' - ')[0].split('Editing ')[1]; var user_name = RfAName; if (txt.value.indexOf('{{User|') != -1) {user_name = txt.value.split('{{User|')[1].split('}}')[0].split('}')[0]} else if (txt.value.indexOf('{{user|') !=-1) {user_name = txt.value.split('{{user|')[1].split('}}')[0].split('}')[0]} var message = 'Closing ' + RfAName + '.'; var return_value = confirm(message); if (return_value != true){return;} if (document.editform.wpTextbox1.value.indexOf('The following discussion is preserved as an archive of') != -1) {alert('Already closed!'); return;} if (txt.value.indexOf('{{subst:rfab}') != -1){alert('Already closed!'); return;} //both var now = new Date(); var timeValue = now.toUTCString().replace(/GMT/, "(UTC)"); txt.value = txt.value.replace(/ending \d\d:\d\d, .+ \(UTC\)/i,'Ended ' + timeValue); txt.value = txt.value.replace(/\}\}( |)Voice your opinion/ig,"}} Final"); //passed if (type == 1) { var deadlink = 'NOT_FOUND_LINK_YET'; txt.value = "{{subst:rfap}}" + "\n" + txt.value + "{{subst:rfab}}"; document.editform.wpSummary.value += "Closing successful nomination."; window.open('http://en.wikipedia.org/w/index.php?title=Wikipedia:Requests_for_adminship&action=edit&fakeaction=SRFAdelist&target=' + escape(RfAName) + '&target2=' + escape(user_name),'BCratcloseRFA:' + RfAName,'location=no,toolbar=no,status=no,directories=no,scrollbars=yes'); window.open('http://en.wikipedia.org/w/index.php?title=Wikipedia:Recently_created_admins&action=edit§ion=1&fakeaction=RFAsucadd&target=' + escape(RfAName),'BCratcloserecentRFA:' + RfAName,'location=no,toolbar=no,status=no,directories=no,scrollbars=yes'); cratpromote(); } //failed if (type == -1) { var deadlink = 'NOT_FOUND_LINK_YET'; if (txt.value.indexOf('{{subst:rfab}') != -1){alert('Already closed!'); return;} var now = new Date(); var timeValue = now.toUTCString().replace(/GMT/, "(UTC)"); document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(/ending \d\d:\d\d, .+ \(UTC\)/i,'Ended ' + timeValue); document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(/\|action=edit\}\} (voice|vote|discuss|comment) .{1,20}\]/ig,"|action=edit}} Final]"); document.editform.wpTextbox1.value = "{{subst:rfaf}}" + "\n" + document.editform.wpTextbox1.value + "{{subst:rfab}}"; document.editform.wpSummary.value += "Closing unsuccessful nomination."; var tally = ''; if (txt.value.search(/\(\d+\/\d+\/\d+\)/) != -1) {tally = txt.value.match(/\(\d+\/\d+\/\d+\)/)[0];} var RfA_data = '*[[' + RfAName + '|' + user_name + ']], ' + timeValue + ' - consensus not reached at ' + tally; var sec=0; var secoffset=1; var sec = alpha_sec(user_name); sec+=secoffset; window.open('http://en.wikipedia.org/w/index.php?title=Wikipedia:Requests_for_adminship&action=edit&fakeaction=FRFAdelist&target=' + escape(RfAName) + '&target2=' + escape(user_name),'BCratcloseRFA:m' + RfAName,'location=no,toolbar=no,status=no,directories=no,scrollbars=yes'); window.open('http://en.wikipedia.org/w/index.php?title=Wikipedia:Unsuccessful_adminship_candidacies&action=edit§ion=' + sec + '&fakeaction=RFAfailadd&target=' + escape(RfA_data),'BCratcloserecentRFA:' + RfAName,'location=no,toolbar=no,status=no,directories=no,scrollbars=yes'); } } function alpha_sec(string) { var letter = string.substring(0,1).toLowerCase(); if (letter == 'a'){sec=1;} else if (letter == 'b'){sec=2;} else if (letter == 'c'){sec=3;} else if (letter == 'd'){sec=4;} else if (letter == 'e'){sec=5;} else if (letter == 'f'){sec=6;} else if (letter == 'g'){sec=7;} else if (letter == 'h'){sec=8;} else if (letter == 'i'){sec=9;} else if (letter == 'j'){sec=10;} else if (letter == 'k'){sec=11;} else if (letter == 'l'){sec=12;} else if (letter == 'm'){sec=13;} else if (letter == 'n'){sec=14;} else if (letter == 'o'){sec=15;} else if (letter == 'p'){sec=16;} else if (letter == 'q'){sec=17;} else if (letter == 'r'){sec=18;} else if (letter == 's'){sec=19;} else if (letter == 't'){sec=20;} else if (letter == 'u'){sec=21;} else if (letter == 'v'){sec=22;} else if (letter == 'w'){sec=23;} else if (letter == 'x'){sec=24;} else if (letter == 'y'){sec=25;} else if (letter == 'z'){sec=26;} else {sec=0;} return sec; } function cratcomment() { var user_name = document.title.split('Wikipedia:Requests for adminship/')[1].split(' - ')[0]; if (document.getElementsByTagName('h3')[1]) { if (document.getElementsByTagName('h3')[1].getElementsByTagName('strong')[0]) {user_name = document.getElementsByTagName('h3')[1].getElementsByTagName('strong')[0].innerHTML;} else {user_name = document.getElementsByTagName('h3')[1].innerHTML;} } window.open('http://en.wikipedia.org/w/index.php?title=User_talk:' + user_name + '&action=edit§ion=new', 'targetnameBCratclose', 'location=no,toolbar=no,status=no,directories=no,scrollbars=yes'); } function cratpromote() { var user_name = document.title.split('Wikipedia:Requests for adminship/')[1].split(' - ')[0]; if (document.editform.wpTextbox1.value.match(/\{\{user\|.+\}\}/ig)) {user_name = document.editform.wpTextbox1.value.split(/\{\{user\|/i)[1].split(/\}\}/)[0];} window.open('http://en.wikipedia.org/w/index.php?title=Special%3AMakesysop&wpMakesysopUser=' + escape(user_name), 'BCratPromote:' + user_name, 'location=no,toolbar=no,status=no,directories=no,scrollbars=yes'); } function cratstats_add() { if (location.href.indexOf('&action=history') ==-1 || document.title.search(/Wikipedia:Requests for (adminship|bureaucratship)\//) !=0){return;} var name = document.title.split(' - ')[0]; var url = 'http://en.wikipedia.org/w/index.php?title=' + name + '&action=history&limit=5000&jsaction=validate'; addTab(url, "data", "ca-vstats", "Voter statistics", ""); } function crat_stats() { if (location.href.indexOf('&limit=5000&jsaction=validate') ==-1){return;} //monobook if (document.getElementById('bodyContent')) {var body = document.getElementById('bodyContent');} //cologneblue else {var body = document.getElementById('content');} var l = body.getElementsByTagName('li'); var html = '<p><strong>List of participants on this page:</strong></p>'; var thenamelist = '|'; for (var i=l.length-1; i >= 0; i--) { if (l[i].innerHTML.indexOf('>) (last)') !=-1) {var name = l[i].getElementsByTagName('a')[2].innerHTML; var date = l[i].getElementsByTagName('a')[1].innerHTML;} else if (l[i].innerHTML.indexOf('(cur) (<') !=-1) {var name = l[i].getElementsByTagName('a')[2].innerHTML; var date = l[i].getElementsByTagName('a')[1].innerHTML;} else {var name = l[i].getElementsByTagName('a')[3].innerHTML; var date = l[i].getElementsByTagName('a')[2].innerHTML;} if (thenamelist.indexOf('|' + name + '|') ==-1) { thenamelist += name + '|'; var name_link = '<a href="/wiki/User:' + name + '">' + name + '</a>'; html += '\n' + '<li>' + name_link + ' -- ' + date + '</li>'; } } body.innerHTML = body.innerHTML.split('<!-- start content -->')[0] + '<!-- start content -->' + '<ul id="voterstats">' + html + '</ul>'; //number our voters var l = body.getElementsByTagName('li'); for (var i=0; i<l.length; i++) { var num = i+1; l[i].innerHTML = '<strong>#' + num + '</strong> ' + l[i].innerHTML; } consec_votercheck(0); } // var voter_index = 0; var name_user_vote = ''; function consec_votercheck(voter_index) { if (document.getElementById('voterstats').getElementsByTagName('li')[voter_index]) { current_user_name = document.getElementById('voterstats').getElementsByTagName('li')[voter_index].getElementsByTagName('a')[0].innerHTML; var URL = '/w/index.php?title=Special%3ALog&type=newusers&page=User:' + current_user_name + '&useskin=monobook'; xml_http = HTTPClient(); xml_http.open("GET", URL, true); xml_http.onreadystatechange = consec_votercheck_last; xml_http.send(null); } else {return;} } function consec_votercheck_last() { if (xml_http.readyState != 4) {return;} var doc = xml_http.responseText.split('<div id="bodyContent">')[1]; var date = '(<i>older account</i>)'; if (doc.indexOf('<ul>') !=-1) { doc = doc.split('<ul>')[1].split('</ul>')[0]; if (doc.indexOf('<li>') !=-1) {date = '<span style="color:darkred;">' + doc.split('<li>')[1].split('</li>')[0].split('<a href=')[0].split('(')[0] + '</span>';} } date = ' <strong> Created:</strong> ' + date; document.getElementById('voterstats').getElementsByTagName('li')[voter_index].innerHTML += date; // var URL = '/w/index.php?title=Special:Contributions&go=first&limit=1&target=' + current_user_name + '&useskin=monobook'; xml_http = HTTPClient(); xml_http.open("GET", URL, true); xml_http.onreadystatechange = consec_votercheck_edits; xml_http.send(null); } function consec_votercheck_edits() { if (xml_http.readyState != 4) {return;} var doc = xml_http.responseText.split('<div id="bodyContent">')[1]; var first = '(<i>error</i>)'; if (doc.indexOf('<ul>') !=-1) { doc = doc.split('<ul>')[1].split('</ul>')[0]; if (doc.indexOf('<li>') !=-1) {first = doc.split('<li>')[1].split('</li>')[0].split('<a href=')[0].split('(')[0];} } first = ' <strong> First edit:</strong> ' + first; document.getElementById('voterstats').getElementsByTagName('li')[voter_index].innerHTML += first; // var URL = '/w/index.php?title=Special:Contributions&limit=500&target=' + current_user_name + '&useskin=none'; xml_http = HTTPClient(); xml_http.open("GET", URL, true); xml_http.onreadystatechange = consec_votercheck_blocks; xml_http.send(null); } function consec_votercheck_blocks() { if (xml_http.readyState != 4) {return;} var doc = xml_http.responseText.split("<div id='article'>")[1]; var edits = 0; if (doc.indexOf('<ul>') !=-1) { doc = doc.split('<ul>')[1].split('</ul>')[0]; if (doc.match(/<li>.+<\/li>/g)){edits = doc.match(/<li>.+<\/li>/g).length;} } if (edits >= 500){edits = '<span style="color:blue;">500+</span>';} else if (edits <= 100){edits = '<a href="/w/index.php?title=Special:Contributions/' + current_user_name + '"><span style="color:red;">' + edits + '</span></a>';} else {edits = '<a href="/w/index.php?title=Special:Contributions/' + current_user_name + '"><span style="color:darkred;">' + edits + '</span></a>';} edits = ' <strong> Edits:</strong> ' + edits; document.getElementById('voterstats').getElementsByTagName('li')[voter_index].innerHTML += edits; // var URL = '/w/index.php?title=Special:Log&type=block&limit=5000&page=User:' + current_user_name + '&useskin=monobook'; xml_http = HTTPClient(); xml_http.open("GET", URL, true); xml_http.onreadystatechange = consec_votercheck_next; xml_http.send(null); } function consec_votercheck_next() { if (xml_http.readyState != 4) {return;} var doc = xml_http.responseText.split('<div id="bodyContent">')[1]; var blocks = 0; if (doc.indexOf('<ul>') !=-1) { doc = doc.split('<ul>')[1].split('</ul>')[0]; if (doc.match(/<li>.+<\/a>\) blocked "<a href=.+<\/li>/g)) {blocks = doc.match(/<li>.+<\/a>\) blocked "<a href=.+<\/li>/g).length;} } if (blocks > 0){blocks = '<a href="/w/index.php?title=Special:Log&type=block&limit=5000&page=User:' + current_user_name + '"><span style="color:red;">' + blocks + '</span></a>';} blocks = ' <strong> Blocks:</strong> ' + blocks; document.getElementById('voterstats').getElementsByTagName('li')[voter_index].innerHTML += blocks; //re-iterate voter_index += 1; consec_votercheck(voter_index); } addOnloadHook(crat_main) function crat_main() { crattools(); cratfinish(); CHUlinks(); crathide(); cratstats_add(); crat_stats(); } //</nowiki></pre>