User:Voice of All/AutoUpdate/monobook.js
//
//---------------------------------------------------------------
// =-=-=- HELPER FUNCTIONS -=-=-=
function addlilink(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;
}
function addToolboxLink(url, name, id){
var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
addlilink(tb, url, name, id);
}
function addTab(url, name, id, title, key){
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
return addlilink(tabs, url, name, id, title, key);
}
function addLink(where, url, name, id, title, key, after){
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);
var tabs = document.getElementById(where).getElementsByTagName('ul')[0];
if(after) {
tabs.insertBefore(li,document.getElementById(after));
} else {
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;
}
function URLEncoding(input)
{
var encodedInputString=escape(input);
var outputurl=encodedInputString;
return outputurl;
}
//Auto-replace
function autoreplacetxt(what,withw)
{
var undefined;
i = 1;
var original = document.editform.wpTextbox1.value;
if (what == ''){alert("Invalid command."); return;}
else if (what == 'null'){alert("Action cancelled."); return;}
else {
if (withw == ''){alert("All such appearances of text will be removed.");}
else if (withw.split(what)[1] != undefined) {alert("Action cancelled to avoid infinite loop."); return;}
else {
if (document.editform.wpTextbox1.value.split(what)[1] != undefined)
{
while (i == 1)
{
document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(what, withw);
if (document.editform.wpTextbox1.value.split(what)[1] != undefined)
{i = 1;}
else
{i = -1;}
}
}
//document.editform.wpSummary.value += 'JS: Replacing text "' + what + '" with "' + withw + '" ';
}
}
}
//END
//---------------------------------------------------------------
////////////////////////////////////////////////////////////////
//*****************************************************
//PROTECTION JS
//*****************************************************
//*****************************************************
//This is for if people skrew with the WP:PP page layout
var movesec = 7;
var artfull = 10;
var artsemi = 11;
var otherpro = 13;
var userfull = 16;
var usersemi = 17;
var regtalk = 18;
var anontalk = 19;
//End of WP:PP constants
//*****************************************************
//*****************************************************
//Category update
function addcatupdate()
{
var undefined;
var c1 = document.getElementById('column-one');
var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];
if (location.href.indexOf('Category:Protected against vandalism') != -1)
{
addTab("javascript:updatepcat()", "{{Update WP:PP}}", "ca-wppup", "Update article WP:PP listings", "");
}
else if (location.href.indexOf('Category:Semi-protected') != -1)
{
addTab("javascript:updatepcat()", "{{Update WP:PP}}", "ca-wppup", "Update article WP:PP listings", "");
}
else if (location.href.indexOf('Category:Protected') != -1)
{
addTab("javascript:updatepcat()", "{{Update WP:PP}}", "ca-wppup", "Update article WP:PP listings", "");
}
}
//END
function updatepcat()
{
var k = 0;
var thescript = '';
var undefined;
if (document.title.indexOf('Category:Semi-protected') == -1 && document.title.indexOf('Category:Protected') == -1)
{
return;
}
if (document.title.indexOf('Category:Semi-protected') != -1 || document.title.indexOf('Category:Protected') != -1)
{
var l = document.getElementById('bodyContent').getElementsByTagName('a');
if (document.title.indexOf('Category:Semi-protected') != -1) {var value = 'S';}
else if (document.title.indexOf('Category:Protected') != -1) {var value = 'P';}
for (i = 0; i < l.length; i++)
{
var Name = l[i].innerHTML;
if (l[i].title.split(':')[1] != undefined || l[i].href.split('a:')[1] != undefined || l[i].href.split('g:')[1] != undefined || l[i].href.split('i:')[1] != undefined || l[i].href.split('e:')[1] != undefined || l[i].href.split('y:')[1] != undefined || Name.indexOf(':') != -1 || Name.indexOf('rotected') != -1 || Name.indexOf('search') != -1 || Name.indexOf('navigation') != -1 || Name.indexOf('rotection') != -1 || Name.indexOf('#') != -1){update = 'no';}
else {k = k + 1; thescript += 'Z' + k + 'X' + Name;}
}
if (value == 'S')
{
var z = k + 1;
thescript += 'Z' + z + 'X';
thescript = URLEncoding(thescript);
location.href = 'http://en.wikipedia.org/w/index.php?title=Wikipedia:List_of_protected_pages&action=edit§ion=' + artsemi + '&fakeaction=Sjslist&faketarget=' + thescript;
}
else if (value == 'P')
{
var z = k + 1;
thescript += 'Z' + z + 'X';
thescript = URLEncoding(thescript);
location.href = 'http://en.wikipedia.org/w/index.php?title=Wikipedia:List_of_protected_pages&action=edit§ion=' + artfull + '&fakeaction=Pjslist&faketarget=' + thescript;
}
}
}
function pautolistcheck()
{
if (location.href.indexOf('faketarget') != -1)
{
var undefined;
var action = '';
var target = '';
if (location.search)
{
var l = location.search.substring(1).split('&');
for (var i = 0; i < l.length; ++i)
{
var eq = l[i].indexOf('=');
var name = l[i].substring(0, eq);
if (name == 'fakeaction')
action = l[i].substring(eq + 1);
else if (name == 'faketarget')
target = unescape(location.href.split('&faketarget=')[1]);
}
}
if (action != 'Pjslist' && action != 'Sjslist')
{
return;
}
if (action == 'Pjslist' || action == 'Sjslist')
{
if (action == 'Pjslist'){var type = 'F';}
else if (action == 'Sjslist'){var type = 'S';}
var z = 0;
var pages_notlisted = '';
var original = document.editform.wpTextbox1.value;
var f = document.editform, t = f.wpTextbox1;
f.wpSummary.value += 'JS: Adding pages not listed:';
for (i = 0; i < 250; i++)
{
if (target.split('Z' + i + 'X')[1] != undefined)
{
var j = 1*(i + 1);
var before = 'Z' + i + 'X';
var after = 'Z' + j + 'X';
if (target.split(before)[1].split(after)[0] != undefined)
{
var page_name = target.split(before)[1].split(after)[0];
var page_check = page_name + '}}';
var page_check_full = '|' + page_name + '}}';
var page_length = page_check.length;
var page_capsornot = page_check.substring(2,page_length);
if (original.indexOf(page_capsornot) == -1 && page_name.length >= 10)
{z = z + 1; pages_notlisted += '|' + page_name;}
if (original.indexOf(page_check_full) == -1 && page_name.length < 10)
{z = z + 1; pages_notlisted += '|' + page_name;}
if (z > 10){alert("Max number of articles found per instance (10). Please run again to list the rest"); break;}
}
}
else
{
var error = 'yes';
}
}
if (pages_notlisted == '')
{alert('No entries added, the list is currently up to date'); window.back(); return;}
pages_notlisted += '|';
alert('Pages not listed on WP:PP:' + '\n' + pages_notlisted);
pages_notlisted = URLEncoding(pages_notlisted);
window.open('http://en.wikipedia.org/w/index.php?title=Special:Log&type=protect&limit=5000' + '&fakeaction=' + type + 'sumfind&faketarget=' + pages_notlisted,
'location=no,toolbar=no,status=no,directories=no,scrollbars=yes');
window.back();
}
}
}
//END
function plistsumfind()
{
if (location.href.indexOf('faketarget') != -1)
{
var undefined;
var action = '';
var target = '';
if (location.search)
{
var l = location.search.substring(1).split('&');
for (var i = 0; i < l.length; ++i)
{
var eq = l[i].indexOf('=');
var name = l[i].substring(0, eq);
if (name == 'fakeaction')
action = l[i].substring(eq + 1);
else if (name == 'faketarget')
target = unescape(location.href.split('&faketarget=')[1]);
}
}
if (action == 'Fsumfind' || action == 'Ssumfind')
{
if (action == 'Fsumfind'){var type = artfull; var categ = 'F';}
else if (action == 'Ssumfind'){var type = artsemi; var categ = 'S';}
var Txt = '';
var Txtforshow = '';
var Summary = '';
var Username = '';
var Namelist = '';
l = document.getElementById('bodyContent').getElementsByTagName('li');
for (i = 0; i < l.length; i++)
{
if (l[i].innerHTML.indexOf(' protected ') != -1)
{
var a_location = l[i].getElementsByTagName('a')[1].innerHTML;
if (target.indexOf('|' + a_location + '|') != -1)
{
Username = l[i].getElementsByTagName('a')[0].innerHTML;
Summary = l[i].getElementsByTagName('span')[0].innerHTML.split('(')[1].split(' [')[0].split('[')[0];
var Name = a_location;
var Date = l[i].innerHTML.split(' protected ')[0].split('
if (Namelist.indexOf(Name) != -1){var add = 'no';}
else
{
Txtforshow += '\n' + '*{{article|' + Name + '}}. ' + Summary + '. ' + Username + ' -- ' + Date; Namelist += Name;
Txt += '\n' + 'X{X' + Name + '}}. ' + Summary + 'X}X' + Username + '|' + Username + ']] ' + ' -- ' + Date; Namelist += Name;
}
}
}
}
//END of FOR loop
if (Txtforshow == ''){Txtforshow = '(none found in the log)'; window.close();}
alert('The following will be added to WP:PP:' + '\n' + Txtforshow);
Txt = URLEncoding(Txt);
location.href = 'http://en.wikipedia.org/w/index.php?title=Wikipedia:List_of_protected_pages&action=edit§ion=' + type + '&fakeaction=' + categ + 'addtext&faketarget=' + Txt;
}
}
}
function addptext()
{
if (location.href.indexOf('faketarget') != -1)
{
var categ = 'category page';
var undefined;
var action = '';
var target = '';
if (location.search)
{
var l = location.search.substring(1).split('&');
for (var i = 0; i < l.length; ++i)
{
var eq = l[i].indexOf('=');
var name = l[i].substring(0, eq);
if (name == 'fakeaction')
action = l[i].substring(eq + 1);
else if (name == 'faketarget')
target = unescape(location.href.split('&faketarget=')[1]);
}
}
if (action != 'Saddtext' && action != 'Faddtext')
{
return;
}
else
{
if (action == 'Saddtext'){categ = 'Category:Semi-protected';}
else if (action == 'Faddtext'){categ = 'Category:Protected';}
var f = document.editform, t = f.wpTextbox1;
if (target == ''){window.close();}
t.value += "\r" + target;
autoreplacetxt('X{X','*{{article|');
autoreplacetxt('X}X',' - [[User:');
f.wpSummary.value += "JS: Updating protected pages from " + categ + ".";
form = document.getElementById('bodyContent');
l = form.getElementsByTagName('input');
for (i = 0; i < l.length; i++)
{
if (l[i].name == 'wpMinoredit')
{l[i].value = '1'; l[i].checked=true;}
}
}
}
}
//END
$(automain)
function automain()
{
addcatupdate()
pautolistcheck()
addptext()
plistsumfind()
}
//