User:PerfectStorm/monobook.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
// [[User:Lupin/popups.js]] document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); // [[User:Lupin/popups.js]] document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //Interiot2 document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //Interiot's javascript edit counter if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) { document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); } //<nowiki> Admin-like RC Patrol tools document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:VoA/monobook.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //</nowiki>[[Category:Wikipedians who use RC script ]] //<nowiki> Helper tools document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Addtabs/monobook.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //</nowiki> //<nowiki> Replace txt document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/replacetxt.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //</nowiki>[[Category:Wikipedians who use VoA script |{{PAGENAME}}]] //<nowiki> Replace txt document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Deletion/monobook.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //</nowiki>[[Category:Wikipedians who use VoA script |{{PAGENAME}}]] //<nowiki> History tools document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/History/monobook.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //</nowiki>[[Category:Wikipedians who use VoA script |{{PAGENAME}}]] //<nowiki> Log tools document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Sleeper/monobook.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //</nowiki>[[Category:Wikipedians who use VoA script |{{PAGENAME}}]] //<nowiki> Google tools && Spelling document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Voice_of_All/Google/monobook.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //</nowiki>[[Category:Wikipedians who use VoA script |{{PAGENAME}}]] // <pre><nowiki> //From http://en.wikipedia.org/w/index.php?title=User:JesseW/monobook.js&oldid=20755510 function addSinceTab() { var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; if (window.location.href.indexOf("&action=history&gotosince=true")!=-1) { do_since_I_last_edited() } else if (!/wiki\/Special:|w\/index.php?title=Special:/.test(window.location.href)) { var thetitle=document.title.slice(0, String(document.title).indexOf(" - ")); var l=addlilink(tabs, "/w/index.php?title="+thetitle+"&action=history&gotosince=true", 'Changes since I last edited', ''); l.lastChild.title="Changes since I last edited"; } } function do_since_I_last_edited() { var csub=document.getElementById("contentSub"); var msg=document.createElement("p"); msg.appendChild(document.createTextNode ("Parsing history... please wait...")); msg.className="error"; csub.insertBefore(msg, csub.firstChild) var username=document.getElementById("pt-userpage").textContent; var hists=document.getElementById("pagehistory").getElementsByTagName('li'); for (n=0;n<hists.length;n++) { if (hists[n].getElementsByTagName("span")[0].getElementsByTagName('a')[0].textContent==username) { document.location=hists[n].childNodes[1].href; return; } } msg.replaceChild(document.createTextNode ("You have not edited this page! (recently)"), msg.firstChild); } addOnloadHook(addSinceTab); // </nowiki></pre> //<pre><nowiki> document.write( '<st' + 'yle type="text/css"> ' + ' div.audiolinkbox { ' + ' border:2px solid rgb(170,170,170); ' + ' background-color:rgb(250,250,250); ' + ' position:absolute; ' + ' margin:-1.2em; ' + ' display:none; ' + ' } ' + '<' + '/style>' ); addOnloadHook(function () { function lightup () { this.audioPop.style.display="inline"; } function lightout () { var savedThis=this; clearInterval(this.lightTimer); this.lightTimer=setInterval(function(){hideAudioPop(savedThis);}, 2000); } function hideAudioPop (caller) { clearInterval(caller.lightTimer); caller.audioPop.style.display="none"; caller.audioPop.onmouseout = null; } function mouseoverAudioPop () { var hotspot = this.hotspot; if (!hotspot) { return; } clearInterval(hotspot.lightTimer); this.onmouseout = function () { hotspot.lightTimer=setInterval(function(){hideAudioPop(hotspot);},2000); }; } /* Get all the span tags */ spans = document.getElementsByTagName('span'); /* go through them all */ for (i=0;i<spans.length;i++) { /* If the span is class audiolinkinfo */ if (spans[i].className.indexOf("audiolinkinfo") != -1) { /* Put it in a box */ box = document.createElement('div'); box.className="audiolinkbox"; spans[i].parentNode.insertBefore(box,spans[i]); box.appendChild(spans[i]); /* Remove the parentheses */ insidebox = spans[i].firstChild for (j=0;j<insidebox.childNodes.length;j++) { if (insidebox.childNodes[j].textContent == "(" || insidebox.childNodes[j].textContent == ")") { insidebox.removeChild(insidebox.childNodes[j]) } } /* Add the hover thing to the audiolink span */ var hotspot = spans[i-1]; hotspot.onmouseout=lightout; hotspot.onmouseover=lightup; hotspot.audioPop=box; box.hotspot = hotspot; box.onmouseover = mouseoverAudioPop; } } }); function stopRedlinksEditing(){ var len=document.links.length; for(var i=0; i<len; ++i) { var l=document.links[i]; if (l.className=='new') { l.href=l.href.replace('&action=edit','') .replace('Special:Upload&wpDestFile=', 'Image:'); } } } addOnloadHook(stopRedlinksEditing); function listRedLinks() { var len=document.links.length; var output=document.createElement('div'); output.innerHTML='<h2>Red links</h2>'; var gotSome=false; for (var i=0; i<len; ++i) { if (document.links[i].className=='new') { gotSome=true; var l=document.links[i].cloneNode(true); output.appendChild(l); output.appendChild(document.createElement('br')); } } if (gotSome){ output.appendChild(document.createElement('hr')); var h1=document.getElementsByTagName('h1')[0]; h1.parentNode.insertBefore(output, h1.nextSibling); } } addOnloadHook(function(){addToolboxLink('javascript:listRedLinks()', 'List red links');}); document.write('<!--[if IE]><link rel="stylesheet" type="text/css" href="' + 'http://localhost:8080/js/ie.css"><![endif]-->'); window.annoy={ freq: 1000*60*15, duration: 1000*60, target: 'http://en.wikipedia.org/wiki/Wikipedia:Recovering_from_Wikipediholism' }; loadJS('[[User:Lupin/watchlistfilter.js]]'); //loadJS('[[User:Lupin/annoy.js]]'); loadJS('[[User:Lupin/listsince.js]]'); // Filter changes live loadJS('[[User:Lupin/recent2.js]]'); // Show diffs on recent changes, history pages and so on loadJS('[[User:Lupin/recentdiffs.js]]'); var isIE=((self.navigator.appName).indexOf("Microsoft")!=-1); if (!isIE) loadJS('[[User:Zocky/PicturePopups.js]]'); //loadJS('[[User:Zocky/CategoryBrowser.js]]'); window.localCSS=true; //loadJS('[[User:Lupin/popupsdev.js]]'); tmpJS('popupsdev.js'); popupAdminLinks=true; popupShortcutKeys=true; popupFixDabs=true; popupPreviewKillTemplates=false; popupPreviewFirstParOnly=false; popupOnlyArticleLinks=false; popupEditCounterTool='interiot'; popupExtraUserMenu='<menurow><<monobook|shortcut=M>>|<<editMonobook|edit>></menurow>'; popupFixRedirs=true; popupRedlinkRemoval=true; popupStructure='menus'; //removeTitles=false; extraPopupFilters=[ function(data) { if (/[{]{2}[Ff]eatured article[}]{2}/.test(data) ) return '<img src="http://upload.wikimedia.org/wikipedia/en/thumb/c/cf/Cscr-featured.png/7px-Cscr-featured.png">'; else return ''; } ]; //popupLiveOptions=true; // loadJS('[[User:Lupin/editblind.js]]'); loadJS('[[User:Lupin/sectionkeys.js]]'); addOnloadHook(function(){window.popupShortcutKeys=true;}); // for testing if (location.href == "http://en.wikipedia.org/wiki/User:Jitse_Niesen/Client-side_preferences") loadJS('[[User:Jitse_Niesen/Client-side_preferences/Main.js]]'); ///////////////////////// // messy stuff ///////////////////////// addOnloadHook(function(){if (/Special(%3[Aa]|:)(Newpages|Recentchanges)/.test("Not Your Business!")) document.getElementsByTagName('h1')[0].innerHTML += ' - <a href="http://www.google.com/search?q=' + document.title.split(' - ')[0].split(' ').join('+') + '">FGI</a>';}); function addRefsLinks(btn) { var pageTitle=document.getElementsByTagName('h1')[0].innerHTML; var lks=document.links; var refReq=refsContent(pageTitle); for (var i=0; i<lks.length; ++i) { var article=articleFromURL(lks[i].href); if(!article) continue; var talk=null; if (!userName(article)) continue; talk=talkPage(article); if(!talk) continue; var a=document.createElement('a'); a.href=titlebase + talk + '&action=edit&autoedit=s#$#\n' + refReq + ' ~~~~#&autoclick=' + btn + '&autosummary=References for [['+ pageTitle+ ']]'; var tt=document.createTextNode(' . . '); a.innerHTML='request references'; lks[i].parentNode.appendChild(tt); lks[i].parentNode.appendChild(a); } } function refsContent(pageTitle) { var refRequests=['\\n\\n{{subst:unref-talk|%s}}', '\\n\\n==Missing refs==\\n\\nHi! I noticed that [[%s]] doesn\'t seem to have any refs, and you\'ve written a fair bit of it. Please could you add some when you get a chance? Thanks!', '\\n\\n==Refs?==\\n\\nHello, any chance of adding refs to [[%s]]? Cheers,', '\\n\\n==References for [[%s]]==\\n\\nHowdy. Do you remember the references you used when you wrote [[%s]]? If you could add them in, it\'d improve the article. Thanks in advance,', '\\n\\n==References needed==\\n\\nHello, I\'d like to verify [[%s]] but have no references. Please could you add the sources you used to write the article? Cheers,', '\\n\\n==References==\\n\\nHello! I noticed that [[%s]] doesn\'t have any references or sources. Although the contents of that article do seem like "common knowledge", it would still be helpful if you could mention your sources. Many thanks,', '\\n\\n==[[%s]]==\\n\\n...is unsourced. Please fix. Thanks,', '\\n\\n==References for [[%s]]==\\n\\nHi! I realise that it\'s been some time since you edited [[%s]], but it would be great if you could remember the references you used and add them to the page. Thanks!' ]; var promptText='Select reference request:'; for (var i=0; i<refRequests.length; ++i) { promptText += '\n\n'+i+': '+ refRequests[i];} var response=parseInt(prompt(promptText)); if(!response || isNaN(response) || response >= refRequests.length || response < 0) response=0; return refRequests[response].split('%s').join(pageTitle); } var refs=addRefsLinks; //ta['search'] = ['/','Search this wiki']; //addOnloadFunction(function(){document.getElementById('searchInput').accessKey='/';}); function removeAccessKeys(keylist) { var t=document.getElementsByTagName('A'), u=document.getElementsByTagName('input'); for (var i=0; i<t.length+u.length; ++i) { var s=((i<t.length) ? t[i] : u[i-t.length]); for (var j=0; j<keylist.length; ++j) if (s.accessKey==keylist[j]) s.accessKey=''; } }; function removeAnnoyingKeys() {removeAccessKeys(['d','f']);} addOnloadFunction(removeAnnoyingKeys); function fixWatchlistLink () { for (var i=0; i<document.links.length; ++i) { if (document.links[i].href.indexOf('Special:Watchlist')>0) { document.links[i].href+='?hideOwn=1'; break; } } }; if (!isIE) { addOnloadFunction(fixWatchlistLink); } // summary nag function perhapsSave(ev) { var sum = document.getElementsByName('wpSummary'); var submit = true; if (sum.length > 0) { sum = sum[0]; if (isBadSummary(sum.value)) { if (!document.getElementById('jn-fillIn')) { var div = document.createElement('p'); div.appendChild(document.createTextNode('Fill in the summary!')); div.setAttribute('style', 'color: #f00; font-size: 150%;'); div.id = 'jn-fillIn'; sum.parentNode.insertBefore(div, sum.nextSibling); } sum.focus(); submit = false; } } if (submit) { var btn = document.getElementById('wpSave'); btn.onclick = null; btn.setAttribute('type', 'submit'); btn.click(); } } function isBadSummary(str) { var sumRe=RegExp('^ *$|^/[*].*?[*]/ *$'); return (sumRe.test(str)); } function modifySaveButton() { // action=edit for edit pages, action=submit for previews var loc=window.location.href; if ((loc.indexOf('&action=edit') != -1 || loc.indexOf('&action=submit') != -1 ) && loc.indexOf(':Lupin') == -1 ) { var btn = document.getElementById('wpSave'); if (btn) { btn.setAttribute('type', 'button'); btn.onclick = perhapsSave; } } } if(!isIE) addOnloadFunction(modifySaveButton); //////////////////////////////////////////////////////////////// // Evaluator // Source: http://krolik.net/js-eval.shtml var evaluatorHTML='<FORM ID="Tester" NAME="Tester" onsubmit="return TesterExecute();" >' + '<TEXTAREA NAME="MyCommand" COLS=60 ROWS=25 WRAP="off"></TEXTAREA>' + '<TEXTAREA NAME="MyResult" COLS=40 ROWS=25 WRAP="off"></TEXTAREA>' + '<BR>' + '<INPUT TYPE=BUTTON value="Show Object" onclick="ObjectDumpClicked();" >' + '<INPUT TYPE=BUTTON value="Execute" onclick="TesterExecute();">' + '</FORM>'; function ObjectDump(strObject) { var strOutput; var vTemp; var vAnotherTemp; var vElement; vElement = eval(strObject); strOutput = "typeof = " + typeof(vElement) + "\n\n"; AppendOutput(strOutput); for (var x in vElement ) { vTemp = strObject + "." + x.toString() ; vAnotherTemp = strObject + "[" + x + "]" ; strOutput = strOutput + vTemp + " = " + eval(vTemp) + "\n"; AppendOutput(vTemp + " = " + eval(vTemp) + "\n"); } return strOutput ; } function AppendOutput(strText) { document.Tester.MyResult.value = document.Tester.MyResult.value + strText; } function Output(strText) { document.Tester.MyResult.value = strText; } function ObjectDumpClicked() { document.Tester.MyResult.value=""; ObjectDump(document.Tester.MyCommand.value); return false; } function TesterExecute() { document.Tester.MyResult.value=""; document.Tester.MyResult.value=eval(document.Tester.MyCommand.value); return false; } function addEvaluator() { try { var evalNode=document.createElement('div'); evalNode.id='evalNode'; evalNode.innerHTML=evaluatorHTML; document.body.appendChild(evalNode); document.Tester=document.getElementById('Tester'); } catch(err){}; } if(!isIE || true) addOnloadFunction(addEvaluator); // // end evaluator //////////////////////////////////////////////////////////////// // testing // Useful stuff from [[Wikipedia:WikiProject_User_scripts]] function addToolboxLink(url, name, id){ var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0]; addlilink(tb, url, name, id); } 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 addTab(url, name, id, title, key){ var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; addlilink(tabs, url, name, id, title, key); } function addPurge(){ ta['ca-purge'] = ['g', 'Purge the internal cache for this page']; var x = document.getElementById('ca-history'); if(!x) return; if(x.children) x = x.children[0].href; else x = x.childNodes[0].href; addTab(x.replace(/=history/, "=purge"), 'purge', 'ca-purge'); akeytt(); } // culled from [[User:Lupin/popups.js]] function nichalp_articleFromURL(h) { if (typeof h != 'String') h=String(h); h=decodeURI(h); var m=RegExp('[^:]*://en\\.wikipedia\\.org/(wiki/|w/index\\.php\\?title=)([^&?]*)').exec(h); if(m===null) return null; return m[2]; } function nichalp_isIpUser(user) { return RegExp('(User:)?' + '((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}' + '(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])') .test(user); } function nichalp_removeAnchor(article) { // is there a #? if not, we're done var i=article.indexOf('#'); if (i == -1) return article; return article.substring(0,i); } function nichalp_userName(article) { var i=article.indexOf('User'); var j=article.indexOf(':'); if (i != 0 || j == -1) return null; var k=article.indexOf('/'); if (k==-1) return article.substring(j+1); else return article.substring(j+1,k); } // do it function nichalp_customLinks() { addPurge(); var article=nichalp_articleFromURL(document.location.href); if (!article) return; var user=nichalp_userName(article); if(!user) return; user=nichalp_removeAnchor(user); if (!nichalp_isIpUser(user)) { addToolboxLink('http://kohl.wikimedia.org/~kate/cgi-bin/count_edits?dbname=enwiki&user='+user, user+"'s edit count", 'toolbox_katestool'); } var special='http://en.wikipedia.org/w/index.php?title=Special:'; addToolboxLink(special + 'Log&user='+user, user+"'s log", 'toolbox_userlog'); addToolboxLink(special + 'Blockip&ip='+user, 'Block '+user, 'toolbox_blockuser'); addToolboxLink(special + 'Special:Ipblocklist&action=unblock&ip='+user, 'Unblock '+user, 'toolbox_unblockuser'); } /* </nowiki></pre> */