User:Fluttershy Fancy/global.js

importScriptPage('User:Monchoman45/ChatHacks.js', 'c'); importScriptPage('User:Joeytje50/ChatPMs.js', 'c'); /******************************************************/ /* Quickban                                          */ /* Idea by Madnessfan34537                           */ /* Code by Madnessfan34537                           */ /******************************************************/ function banButton { var banStuff = prompt("Enter the user, time in seconds, and reason, separated by commas", "Stuff goes here"); if (banStuff.length != 0) { var banVars = banStuff.split(","); var cmd = new models.BanCommand({                           userToBan: banVars[0],                            time: parseInt(banVars[1]),                            reason: banVars[2]                    }); mainRoom.socket.socket.send(cmd.xport); }   }    $('Quick Ban ').prependTo('.Rail'); function UserPageLinks { var username = wgTitle.substring(0, wgTitle.indexOf('/')); $('.WikiaRail').append(' Logs done to User Block Logs Logs done by User Editcount '); }	if(wgCanonicalNamespace == "User") { addOnloadHook(UserPageLinks); } /******************************************************/ /* Multikick w/tab insert                            */ /* Idea by Madnessfan34537 and Phillycj              */ /* Code by Madnessfan34537, Joeytje50 and Callofduty4 */ /******************************************************/ //Multikicker //Written by Madnessfan34537 and Callofduty4 function showPopup { $('body').append(' Mass-kick   Enter usernames here, separated by a comma and a space. Tab insert works. <input type="text" name="multikickinput" id="multikickinput" /> Kick!</a> Cancel</a>  '); $('body').append('<div style="height: 100%; width: 100%; z-index: 2000000001; opacity: 0.65; display: block;" data-opacity="0.65" class="blackout"> '); } function kickUsers { var multikick = $('#multikickinput').val if (multikick.length != 0) { var usersToKick = multikick.split(", "); var i = 0; for (i; i<usersToKick.length; i++) { mainRoom.kick({name:usersToKick[i]}); }		$('#masskicker').remove; $('.blackout').remove; } } function cancelKick { $('#masskicker').remove; $('.blackout').remove; } $('Multikick</a>').appendTo('.Write'); //Tab insert for usernames //Written by Joeytje50 of Runescape wiki function getCaretPos(ctrl) { var CaretPos = 0;   // IE Support if (document.selection) { ctrl.focus ; var Sel = document.selection.createRange ; Sel.moveStart ('character', -ctrl.value.length); CaretPos = Sel.text.length; }   // Firefox support else if (ctrl.selectionStart || ctrl.selectionStart == '0') CaretPos = ctrl.selectionStart; return (CaretPos); } function setCaretPos(ctrl, pos){ if(ctrl.setSelectionRange) {       ctrl.focus; ctrl.setSelectionRange(pos,pos); }   else if (ctrl.createTextRange) { var range = ctrl.createTextRange; range.collapse(true); range.moveEnd('character', pos); range.moveStart('character', pos); range.select; } } $('#multikickinput').after(' [0,"","",0,null] '); $('#multikickinput').keydown(function(e) {	if (e.keyCode == 9) {		e.preventDefault;		var curval = this.value;		var afData = eval(document.getElementById('autofilldata').innerHTML);		var curpos = afData[3]==0?getCaretPos(this):afData[3];		var carpos = getCaretPos(this)		if ((!curval.charAt(carpos)||curval.charAt(carpos).match(/\s/))&&!curval.charAt(carpos-1).match(/\s/)&&this.value.length) {			var unamestart = ;			if (afData[1].length==0) {				for (i=curpos-1;i>=0&&!curval.charAt(i).match(/\s/);i--) {					unamestart = curval.charAt(i) + unamestart;				}			} else {				unamestart = afData[1];			}			var afterTComplete = ;			for (i=curpos;i<curval.length;i++) {				afterTComplete += curval.charAt(i);			}			//generate list of users			var userList = '';			var userlistelems = document.getElementsByClassName('User');			for (i=0;i<userlistelems.length;i++) {				userList += userlistelems[i].getElementsByClassName('username')[0].innerHTML+','; }			userList = userList.replace(new RegExp('('+wgUserName+'|RSChatBot),|,$','g'),'') userList = userList.split(',').sort var matchedNames = []; for (i=0;i<userList.length;i++) { if (userList[i].match(new RegExp('^'+unamestart, 'i'))) { matchedNames.push(userList[i]); }			}			var newval = curval.split(''); for (i=carpos-1;i>=0&&i>=carpos-(!(afData[4]===null)?(matchedNames[afData[4]]?matchedNames[afData[4]].length:0) : unamestart.length)&&matchedNames.length>0;i--) { newval[i] = ''; }			matchedNames = !matchedNames[0]?['']:matchedNames; newval[curpos-unamestart.length] += matchedNames[afData[0]]?matchedNames[afData[0]]:''; newval = newval.join(''); this.value = newval; setCaretPos(this, curpos+(matchedNames[afData[0]].length?matchedNames[afData[0]].length:0)) var iter = afData[0]>=matchedNames.length-1?0:afData[0]+1; document.getElementById('autofilldata').innerHTML = '['+iter+',"'+unamestart+'","'+matchedNames[afData[0]]+'",'+curpos+','+afData[0]+']' }		return false; } else if (e.which != 16) { document.getElementById('autofilldata').innerHTML = '[0,"","",0,null]'; } }).click(function { document.getElementById('autofilldata').innerHTML = '[0,"","",0,null]'; }).blur(function { document.getElementById('autofilldata').innerHTML = '[0,"","",0,null]'; }) /******************************************************/ /* Red Link Fixer                                    */ /* Idea by Madnessfan34537                            */ /* Code by Madnessfan34537 and Monchoman45            */ /******************************************************/        $('#WikiHeader').append('Fix redlinks</a>');    function FixRedlinks {            $.getJSON('/api.php?action=query&prop=revisions&titles=' + wgPageName + '&rvprop=content&indexpageids=1&format=json', function(result) { var text = result.query.pages[result.query.pageids[0]].revisions[0]['*']; var redlinks = $('a.new'); var ref = 0; while(text.indexOf(, ref) != -1) {                           if(text.indexOf(, text.indexOf(, open);                                    var close = text.indexOf(, open);                                    if(text.indexOf(' ', open) != -1 && text.indexOf(' ', open) < close) {ref = open + 1; continue;}                                    if(pipe != -1 && pipe < close) { //is display                                            if(pipe == close - 1) {                                                    var title = text.substring(open + 2, pipe);                                                    var display = title.substring(title.indexOf(':') + 1);                                            }                                            else {                                                    var title = text.substring(open + 2, pipe);                                                    var display = text.substring(pipe + 1, close);                                            }                                    }                                    else { //is page                                            var title = text.substring(open + 2, close);                                            var display = title;                                    }                                    if(!title) {ref = open + 1; continue;} //skip  and |                                     for(var i = 0; i < redlinks.length; i++) {                                            var utitle = title[0].toUpperCase + title.substring(1);                                            if(redlinks[i].title.indexOf(' (page does not exist)')) {var redlink = redlinks[i].title.substring(0, redlinks[i].title.length - 22);}                                            else {var redlink = redlinks[i];}                                            if(utitle == redlink || utitle == ':' + redlink) {                                                    if(pipe == close - 1) {var show = title;}                                                    else {var show = display;}                                                    text = text.substring(0, open) + show + text.substring(close + 2);                                                    break;                                            }                                    }                                    ref = open + 2;                            }                            else {break;}                    }                    $.getJSON('/api.php?action=query&prop=info&titles=' + wgPageName + '&intoken=edit&indexpageids=1&format=json', function(result) {                            var token = result.query.pages[result.query.pageids[0]].edittoken; $.post('/api.php', {action: 'edit', title: wgPageName, text: text, summary: 'Fixing redlinks', token: token}, function {window.location.reload;}); });           });    }