User:Ale jrb/Scripts/csdcheck.js: Difference between revisions

Content deleted Content added
Ale jrb (talk | contribs)
m .
Ale jrb (talk | contribs)
test
Line 1:
/* ============================================== *\
if ((wgAction == 'delete') && (csdCheckEnable == true)) {
** CSD Helper JavaScript
function csdCheck () {
** for Wikipedia
var list = document.getElementById('wpDeleteReasonList');
**
ajaxPageContent(wgPageName);
** Created by Alexander Barley [[User:Ale_jrb]]
**
function ajaxDone(content) {
\* ============================================== */
var reasons_regex = {
 
'G10': // copied from [[User:Ilmari Karonen]]'s script, covers more bases than the others since it's more important (this script should blank the summary in _all_ cases where the other script does
// the following settings are used in this script:
/\{\{\s*(msg:\s*)?(template:\s*)?(db-a(p|tk)?|((csd|db)[-:])?(a6|attack(pages?|template)?|g10))\s*[|}]/i,
// other regexes are simpler and cover probably 99% of actual tags.
'G1': /\{\{\s*(db-|csd[-:])?(nonsense|ns|g1)\s*\}\}/i,
'G2': /\{\{\s*(db-|csd[-:])?(test|g2)\s*\}\}/i,
'G3': /\{\{\s*(db-|csd[-:])?(vandalism|vandal|vand|g3)\s*\}\}/i,
'G4': /\{\{\s*((db-|csd[-:])?(repost|g4)|deleteagain)\s*\}\}/i,
'G5': /\{\{\s*(db-|csd[-:])?(banned|ban|g5)\s*\}\}/i,
'G6': /\{\{\s*(db-|csd[-:])?(maintenance|move|histmerge|g6)\s*\}\}/i,
'G7': /\{\{\s*(db-|csd[-:])?(author|blanked|g7)\s*\}\}/i,
'G8': /\{\{\s*(db-|csd[-:])?(talk|g8|redirnone|r1)\s*\}\}/i,
// G9 is for office, there is no tag.
// G10 is covered above
'G11': /\{\{\s*(db-|csd[-:])?(spam|ad|advert|g11)\s*\}\}/i,
'G12': /\{\{\s*(db-|csd[-:])?(copyvio|cv|cvio|g12|a8)\s*(\}\}|\|)/i,
'A1': /\{\{\s*(db-|csd[-:])?((no)?context|a1)\s*\}\}/i,
'A2': /\{\{\s*(db-|csd[-:])?(foreign|a2)\s*\}\}/i,
'A3': /\{\{\s*(db-|csd[-:])?((no)?content|a3|contact|a4)\s*\}\}/i,
// A4 = A3
'A5': /\{\{\s*(db-|csd[-:])?(transwiki|a5)\s*\}\}/i,
// A6 = G10
'A7 (bio)': /\{\{\s*(nn-|db-|csd[-:])?(a7|notability|bio|person)\s*\}\}/i,
'A7 (web)': /\{\{\s*(nn-|db-|csd[-:])?(web(site)?|inter(net|tubes))\s*\}\}/i,
'A7 (group)': /\{\{\s*(db-|csd[-:]|nn-)?(band|club|music|inc|corp|comp(any)?)\s*\}\}/i,
// TODO separate for music/band?
// A8 = G12
'A9': /\{\{\s*(db-|csd[-:]|nn-)?(a9|album)\s*\}\}/i,
'C1': /(\{\{\s*(db-|csd[-:])?(catempty|emptycat|c1)\s*\}\}|empty category)/i,
'U1': /\{\{\s*(db-|csd[-:])?(userreq|u1|user)\s*\}\}/i,
'I2': /\{\{\s*(db-|csd[-:])?(noimage|i2)\s*\}\}/i,
// R1 = G8
'R2': /\{\{\s*(db-|csd[-:])?(rediruser|r2)\s*\}\}/i,
'R3': /\{\{\s*(db-|csd[-:])?(redirtypo|r3)\s*\}\}/i,
'dummy': / /
}
for (var category in reasons_regex) {
if (reasons_regex[category].test(content)) {
var option = findCSD(category);
list.selectedIndex = option.index;
break;
}
}
function findCSD(s) {
for(var i=0;i<list.options.length;i++) {
var o=list.options[i];
if (o.text.indexOf("CSD#"+s+"") > -1) return o;
}
}
 
}
function csdHelper() {
this.launch = function() {
function ajaxPageContent(page) {
// launch helper. check whether there is a deletion tag on this page.
var page_request = false;
if (document.getElementById('delete-criterion') != null) {
// this page is tagged. check sysop.
if (window.XMLHttpRequest)
var iAmSysop = false;
page_request = new XMLHttpRequest();
for (var i = 0; i < wgUserGroups.length; i ++) {
else if (window.ActiveXObject){
if (wgUserGroups[i] == 'sysop') iAmSysop = true;
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){}
}
}
if (iAmSysop == false) { return false; // do nothing!
else
} else {
// sysop check OK :).
return false;
// launch controller.
this.control = new csdH_controller;
control.attachLinks();
return true;
}
} else { return false; /* do nothing! */ }
var url = wgServer + '/w/api.php';
url = url + '?action=query&prop=revisions&titles='+page+'&rvlimit=1&rvprop=content&format=txtfm'
page_request.onreadystatechange = function() {
if (page_request.readyState == 4) {
if (page_request.status == 200) {
var page_content = page_request.responseText;
var pos = page_content.indexOf('[*] =&gt;');
page_content = page_content.substr(pos, 250);
ajaxDone(page_content);
} else {
return false;
}
}
}
//page_request.overrideMimeType('text/xml');
page_request.open('GET', url, true);
page_request.send(null);
}
}
hookEvent('load', csdCheck);
}
 
function csdH_controller() {
this.attachLinks = function() {
this.csdHelperLink = new wa_element('li');
this.csdHelperLink.ele_obj.id = 'ca-decline';
this.csdHelperLink.ele_obj.innerHTML = '<a href="#" title="decline speedy">decline speedy</a>';
this.csdHelperLink.addWAEvent('click', function() { selfController.showWAWindow(); });
this.csdHelperLink.attach(document.getElementById('ca-delete'), 'after');
};
}
 
 
 
// -- run program
function launchCsdHelper() {
// lib proto
wa_window.prototype = new wa_document;
wa_element.prototype = new wa_document;
// init object
var obj_csdHelper = new csdHelper;
obj_csdHelper.launch();
return true;
}
 
importScript('User:Ale_jrb/Scripts/waLib.js');
hookEvent('load', launchCsdHelper);