User:Pilotguy/whackamole.js
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)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/*
Put some functions in the toolbox for the anti-vandal whack-a-mole game.
Documented at http://en.wiki.x.io/wiki/User:Kbh3rd/Vandal_warning_toolbox
*/
// <pre><nowiki>
// ****************
// Google Lookup
// ****************
function whackGoogleLookup () {
var q = "" + (window.getSelection ? window.getSelection()
: document.getSelection ? document.getSelection()
: document.selection.createRange().text);
if (!q)
q = prompt("You didn't select any text. Enter a search phrase:", "");
if (q!=null)
// location="http://www.google.com/search?q=" + escape(q).replace(/ /g, "+");
window.open("http://www.google.com/search?q=" + escape(q).replace(/ /g, "+") ,'new-tab') ;
}
// **************
// Warnings
// **************
function whackEdit (message, msg2, summary) {
var f = document.editform ;
var tbox = document.editform.wpTextbox1 ;
var a = "" + (window.getSelection ? window.getSelection()
: document.getSelection ? document.getSelection()
: document.selection.createRange().text);
if (msg2 != "") {
a = prompt ("Article name?\n(Empty+OK for a generic message.)\n(Cancel now aborts.)", a) ;
if (a == null) return ;
if (a != null && a != "") {
message = message.replace(/\|/,"|"+a) ;
summary += " in [[" + a + "]]" ;
} else {
message = msg2 ;
}
}
f.wpTextbox1.value += "\n\n" + message + " ~~~~ <br clear=\"both\">\n" ;
f.wpSummary.value = summary ;
f.wpMinoredit.checked=false;
f.wpWatchthis.checked=false;
f.wpTextbox1.focus();
if (f.wpTextbox1.scrollTop || true) f.wpTextbox1.scrollTop = f.wpTextbox1.scrollHeight ;
}
function whackWarn1 () { whackEdit ("{{subst:test1|}}", "{{subst:test1}}", "Experimenting"); }
function whackWarn2 () { whackEdit ("{{subst:test2|}}", "{{subst:test2}}", "Nonsense edit"); }
function whackWarn3 () { whackEdit ("{{subst:test3|}}", "{{subst:test3}}", "Please stop vandalizing"); }
function whackWarn4 () { whackEdit ("{{subst:test4|}}", "{{subst:test4}}", "Last chance to stop vandalising"); }
function whackBlatant() { whackEdit ("{{subst:stopvandal|}}", "{{subst:stopvandal}}", "Blatant vandalism"); }
function whackBlocked() { whackEdit ("{{subst:vblock}}", "", "Blocked"); }
function whackSpam () { whackEdit ("{{subst:spam|}}", "{{subst:spam}}", "Spam"); }
function whackBlocked2(){whackEdit ("[[Image:Modern_clock_chris_kemps_01.png|left|32px]]"
+ "You have been temporarily [[Wikipedia:Bans_and_blocks|blocked from editing]] because of your disruptive edits."
+ " You are [[Help:How_to_edit|invited to contribute]]"
+ " in a [[Wikipedia:Rules|constructive manner]] as soon as the block expires.", "", "Blocked"); }
// **************************************************
// Installation
// **************************************************
window.whack_addlilink=function(tabs, url, name, id, title, key){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
if(id) li.id = id;
li.appendChild(na);
tabs.appendChild(li);
if(id) {
if(key && title) ta[id] = [key, title];
else if(key) ta[id] = [key, ''];
else if(title) ta[id] = ['', title];
}
// re-render the title and accesskeys from existing code in wikibits.js
akeytt();
return li;
}
window.whack_addToolboxLink=function(url, name, id){
var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
whack_addlilink(tb, url, name, id);
}
window.playWhackMoles=function() {
if (document.title.match("Editing User talk:") ) {
whack_addToolboxLink('javascript:{whackWarn1();};void(0);', 'warn Test1', 'toolbox_warn1');
whack_addToolboxLink('javascript:{whackWarn2();};void(0);', 'warn Nonsense', 'toolbox_warn2');
whack_addToolboxLink('javascript:{whackWarn3();};void(0);', 'warn Please stop', 'toolbox_warn3');
whack_addToolboxLink('javascript:{whackWarn4();};void(0);', 'warn Last chance', 'toolbox_warn4');
whack_addToolboxLink('javascript:{whackBlatant();};void(0);', 'warn Stopvandal', 'toolbox_blatant');
whack_addToolboxLink('javascript:{whackBlocked2();};void(0);','warn *BLOCKED*', 'toolbox_block');
whack_addToolboxLink('javascript:{whackSpam ();};void(0);', 'warn Spam', 'toolbox_spam');
} else {
whack_addToolboxLink('javascript:{whackGoogleLookup();};void(0);', 'Google', 'toolbox_googlelookup');
}
}
// onload
window.simpleAddOnload=function(f) {
if (window.addEventListener) window.addEventListener("load", f, false);
else if (window.attachEvent) window.attachEvent("onload",f);
}
simpleAddOnload(playWhackMoles);
// </nowiki></pre>