User:Nx/Scripts/AutoWIGO.js
Jump to navigation
Jump to search
Note: After saving, 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)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
//<nowiki>
function AutoWIGO() {
var pollname;
var fulload = false;
switch(wgPageName)
{
case "Conservapedia:What_is_going_on_at_CP?":
pollname="wigo";
break;
case "RationalWiki:What_is_going_on_in_the_clogosphere?":
pollname="clog";
break;
case "RationalWiki:What_is_going_on_in_the_blogosphere?":
pollname="blog";
break;
case "RationalWiki:What_is_going_on_in_the_world?":
pollname="world";
break;
case "RationalWiki:What_is_going_on_at_ASK?":
pollname="ask";
break;
case "Fun:RationalWikiWikiWiki":
pollname="RWW";
break;
case "User:Nx/Scripts/AutoWIGO.js":
pollname="test";
fulload = true;
break;
case "RationalWiki:To_do_list/Suggestions":
pollname="todo";
fulload = true;
break;
//insert additional polls here:
// case "Page name (encoded form, wgPageName)":
// pollname="the poll name used in the wigo tag";
////optional: load entire page separately, to make section editing work
//// fulload = true;
// break;
default:
return;
}
if (fulload) {
var req = sajax_init_object();
if (!req) return null;
req.open("GET", wgServer+wgScriptPath+"/index.php?title="+wgPageName+"&action=raw&ctype=text/javascript&ffcacheworkaround=" + Math.random(),false);
req.send(null);
if (req.status == 200)
{
str = req.responseText;
} else {
return;
}
} else {
if (document.forms['editform'] == null) return;
var editarea = document.forms['editform'].elements['wpTextbox1'];
var str = editarea.value;
}
var wigos = str.split(/<\/vote(cp|)>/);
if (wigos.length == 0) return;
var i;
var numbers = [];
var j = 0;
for (i=0;i<wigos.length;++i)
{
var start = wigos[i].indexOf("<vote");
wigos[i] = wigos[i].substring(start);
var closetag = wigos[i].indexOf(">");
var pollstart = wigos[i].indexOf("poll="+pollname);
var tempi = parseInt(wigos[i].substring(pollstart+5+pollname.length,closetag),10);
if (!isNaN(tempi) && (tempi != 0 || temp == "0"))
{
numbers[j] = tempi;
++j
}
}
if (numbers.length > 0)
{
var nextnum = Math.max.apply(Math, numbers) + 1;
} else {
var nextnum = 1;
}
//add the button
if (mwCustomEditButtons) {
mwCustomEditButtons.push({
"imageFile": "http://rationalwiki.com/wiki/images/3/3a/Button_WIGO.png",
"speedTip": "WIGO",
"tagOpen": "<vote poll=" + pollname + nextnum + ">",
"tagClose": "</vote>",
"sampleText": "LULZ"
});
}
//modify the link in edittools
if (etparent = document.getElementById('edittools_wigo')) {
var anchors = etparent.getElementsByTagName("a");
var i;
for (i=0;i<anchors.length;++i)
{
if (anchors[i].innerHTML.indexOf("vote poll=wigo") != -1) {
anchors[i].innerHTML = anchors[i].innerHTML.replace(/vote poll=wigo/,"vote poll=" + pollname + nextnum);
attrib = anchors[i].getAttribute('onclick');
attrib = attrib.replace(/vote poll=wigo','>/,"vote poll=" + pollname + nextnum + ">','");
anchors[i].setAttribute('onclick',attrib);
}
if (anchors[i].innerHTML.indexOf("vote nextpoll=") != -1) {
anchors[i].innerHTML = anchors[i].innerHTML.replace(/vote nextpoll=/,"vote nextpoll=" + pollname);
attrib = anchors[i].getAttribute('onclick');
attrib = attrib.replace(/vote nextpoll=','>/,"vote nextpoll=" + pollname + ">','");
anchors[i].setAttribute('onclick',attrib);
}
/* if (anchors[i].innerHTML.indexOf("votecp nextpoll=") != -1) {
anchors[i].innerHTML = anchors[i].innerHTML.replace(/votecp nextpoll=/,"votecp nextpoll=" + pollname);
attrib = anchors[i].getAttribute('onclick');
attrib = attrib.replace(/votecp nextpoll=/,"votecp nextpoll=" + pollname);
anchors[i].setAttribute('onclick',attrib);
}*/
}
}
}
addOnloadHook(AutoWIGO);
//</nowiki>