User:Quarl/autowarn.js

// THIS SCRIPT IS OBSOLETE -- SEE User:Quarl/userwarn.js

// User:Quarl/autowarn.js - warn user using templates. Adds a "warn" // menu. (formerly User:Quarl/auto_testn.js)

// Prompts for relevant pages; e.g. enter "foo && bar && baz", and outputs // "This message concerns the pages foo, bar, and baz. Thanks for // experimenting..."

// depends: wikipage.js, wikiedit.js, wikitabs.js // enhanced by: advanced_sig.js

//

if(typeof window.makeSignature=='undefined')makeSignature=function{return "~"};

autowarn = new Object;

autowarn.warn = function(template) { var pagenames = prompt("Vandalism to which article(s) (separate using &&)?"); if (typeof pagenames != 'string') return;

wikiPage.getEditorAsync(autowarn._edit, template, pagenames); }

autowarn._englishJoin = function(words) { if (words.length == 0) { return ''; } else if (words.length == 1) { return words[0]; } else if (words.length == 2) { return words[0] + ' and ' + words[1]; } else { words[words.length-1] = 'and ' + words[words.length-1]; return words.join(', '); } }

autowarn._splitPageNames = function(s) { var words = s.split('&&'); var pages = []; for (var i in words) { var word = trimspaces(words[i]); if (!word) continue; word = word.replace(/^\[\[/, ''); word = word.replace(/\]\]$/, ''); pages.push( + word + ); }   return pages; }

autowarn._edit = function(editor, template, pagenames) { if (typeof(template) != 'string') { alert("autowarn Internal error 5f95d195-b1c8-4f7e-b751-740230b1926a"); return; }

var pagesw = autowarn._splitPageNames(pagenames); var pages = autowarn._englishJoin(pagesw);

var text = ' ' + makeSignature + '\n';

if (pages) { text = ('This message concerns the ' + (pagesw.length==1?'page':'pages') + ' ' +               pages + '.  ' + text); }   text = '\n\n' + text;

var summary = "Warning "; if (pages) { summary += ", concerning " + pages; }

// if (editor.refuseCreate) return; editor.wpTextbox1 = trim_lines(editor.wpTextbox1) + text; editor.wpSummary = summary; editor.submit; }

autowarn._load = function { // Only add tab to User talk pages (but not subpages)

if (wikiPage.sandboxP ||       wikiPage.namespace == 'User talk' && !wikiPage.subarticle) {       autowarn._addTabs; } }

autowarn._addTabs = function {   var menu = wikitabs.addTabMenu('Warn', 'mn-warn');

var qt = function(s) { return s ? '"'+s+'"' : 'null'; }

var warning = function(template /*, alttemplate */, title) { title = "Warn user using template : " + title; wikitabs.addLiLink(menu, 'javascript:autowarn.warn(' + qt(template) /* + ', ' + qt(alttemplate)*/ + ')',                          template, 'ca-autowarn-'+template,                           title); }

warning('nn-test', 'Non-notable additions'); // warning('test0', 'Before making controversial edits, please discuss'); warning('selftest', 'Thanks for reverting yourself'); warning('test1', 'Your test worked, and has been reverted'); warning('test2', 'Stop adding nonsense '); warning('test2a', 'Vandalism level 2 (blanking)'); warning('test3', 'Stop vandalizing, or face block'); warning('test4', 'Last warning before block'); warning('test4im', 'This is your ONLY WARNING before block'); warning('test5', 'You have been temporarily BLOCKED'); warning('test6', 'You have been BLOCKED for repeated vandalism'); warning('bv', 'Blatant vandal');

// warning('spam1',); // warning('spam2',);

}

$(autowarn._load);

//

//