User:Kbh3rd/whackamole.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Firefox/Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
/* Put some functions in the toolbox for the anti-vandal whack-a-mole game. Documented at http://en.wikipedia.org/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-n|}}", "{{subst:test1}}", "Experimenting"); } function whackSelf () { whackEdit ("{{subst:selftest-n|}}", "{{subst:selftest}}","Self-reverted test"); } function whackWarn2 () { whackEdit ("{{subst:test2-n|}}", "{{subst:test2}}", "Nonsense edit"); } function whackWarn3 () { whackEdit ("{{subst:test3-n|}}", "{{subst:test3}}", "Please stop vandalizing"); } function whackWarn4 () { whackEdit ("{{subst:test4-n|}}", "{{subst:test4}}", "Last chance to stop vandalising"); } function whackBlank () { whackEdit ("{{subst:test2a-n|}}", "{{subst:test2a}}", "Blanking"); } function whackBlatant() { whackEdit ("{{subst:bv-n|}}", "{{subst:bv}}", "Blatant vandalism"); } function whackBlocked() { whackEdit ("{{subst:vblock}}", "", "Blocked"); } function whackNPOV () { whackEdit ("{{subst:NPOV user}}", "", "[[WP:NPOV|Neutral POV]]"); } function whackSpam () { whackEdit ("{{subst:spam-n|}}", "{{subst:spam}}", "Spam"); } function whackObscene() { whackEdit ("{{subst:obscene-n|}}", "{{subst:obscene}}", "Obscenity"); } function whackBlocked2(){whackEdit ("[[Image:Modern_clock_chris_kemps_01.png|left|32px]]" + "You have been temporarily [[Wikipedia:Blocking policy|blocked from editing]] because of your disruptive edits." + " You are [[Wikipedia:Contributing to Wikipedia|invited to contribute]]" + " in a [[Wikipedia:Five pillars|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:{whackSelf ();};void(0);', 'warn Self Test', 'toolbox_selftest'); 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:{whackBlank();};void(0);', 'warn Blanking', 'toolbox_warn2a'); whack_addToolboxLink('javascript:{whackBlatant();};void(0);', 'warn Blatant', 'toolbox_blatant'); whack_addToolboxLink('javascript:{whackBlocked2();};void(0);','warn *BLOCKED*', 'toolbox_block'); whack_addToolboxLink('javascript:{whackSpam ();};void(0);', 'warn Spam', 'toolbox_spam'); whack_addToolboxLink('javascript:{whackNPOV ();};void(0);', 'warn Npov', 'toolbox_npov'); whack_addToolboxLink('javascript:{whackObscene ();};void(0);','warn Obscene', 'toolbox_obscene'); } 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>