User:MrIPAddress/addtools.js
Note: After publishing, 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: Press Ctrl-F5.
//addtabs.js
//getqueryvalue.js
function get_query_value(query, name){
if (typeof query != "string" || typeof name != "string")
return "";
var value = query.match('[&?]' + name + '=([^&]*)');
if (value)
return decodeURIComponent(value[1]);
else
return "";
}
function lastdiff() {
mw.util.addPortletLink("p-cactions", mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" + encodeURIComponent(mw.config.get('wgPageName')) + "&diff=cur&oldid=prev", "last", "ca-last", "Show most recent diff");
}
function userlogs() {
if (wgIsArticle == true && wgPageName.indexOf("/") == -1) mw.util.addPortletLink("p-cactions", mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=Special:Log/block&page=User:" + encodeURIComponent(wgTitle), "blocklog", "ca-blocklog", "block log");
}
function addtoolboxlinks() {
mw.util.addPortletLink("p-tb", mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=Special:Log&page=' + encodeURIComponent(mw.config.get('wgPageName')), "PageLogs", "pt-logs");
mw.util.addPortletLink("p-tb", '/wiki/Special:NewPages', 'NewPages', '');
mw.util.addPortletLink("p-tb", '/wiki/Special:Log/newusers', 'NewUsers', '');
if (wgIsArticle==true && wgNamespaceNumber != 6 && wgNamespaceNumber != 7) mw.util.addPortletLink("p-tb", '/wiki/Special:PrefixIndex/'+wgPageName, 'PrefixIndex', '');
}
function contribstools() {
var href = document.getElementById('t-contributions');
if (href) href = href.getElementsByTagName('a');
if (href) href = href[0];
if (href) href = href.href;
else href = window.location.href;
var addr = /(\/wiki\/|[?&]title=)Special:Contributions(\/([^\/?&#]*)|[?&#]|$)/.exec(href);
if (!addr) return;
addr = addr[3];
if (!addr) {
addr = /^[^?#]*\?([^&#]*&)*target=([^&#]*)/.exec(href);
if (!addr) return;
addr = addr[2];
}
mw.util.addPortletLink("p-tb", "http://tools.wikimedia.de/~luxo/contributions/contributions.php?user=" + addr + "&blocks=true&lang=", "Luxo's", 't-luxos', "Luxo's global contribs", null, 't-contributions');
if (!/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/.test(addr)) mw.util.addPortletLink("p-tb", "http://toolserver.org/~vvv/sulutil.php?user=" + addr, "VVV's", "t-vvv", "VVV's SUL tool", null, "t-luxos");
if (/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/.test(addr)){
mw.util.addPortletLink('p-tb', 'http://www.robtex.com/rbls/'+addr+'.html', 'RBL check', 't-rblcheck', 'Multi-RBL check', null, 't-vvv');
mw.util.addPortletLink('p-tb', 'http://tools.wikimedia.de/~chm/whois.php?ip='+addr, 'WHOIS', 't-whois', 'Toolserver WHOIS', null, 't-rblcheck');
mw.util.addPortletLink('p-tb', 'http://toolserver.org/~krimpet/torcheck.php?ip='+addr, 'TOR?', 't-tor', 'TOR check', null, 't-whois');
}
}
function purge() {
var hist; var url;
if (!(hist = document.getElementById('ca-history') )) return;
if (!(url = hist.getElementsByTagName('a')[0] )) return;
if (!(url = url.href )) return;
mw.util.addPortletLink('p-cactions', url.replace(/([?&]action=)history([&#]|$)/, '$1purge$2'), 'purge', 'ca-purge', 'Purge server cache for this page', '0');
}
function edittop() {
if(wgPageName == "Main_Page") return;//not on main page
if (wgIsArticle == false || document.getElementById("ca-viewsource")) {// if this is preview page or generated page, stop
var section = get_query_value(window.location.href, "section");
if (wgAction == "edit" && section == "0")
document.getElementById("wpSummary").value = "/* Intro */ ";
return;
}
// create div and set innerHTML to link
var divString = '<div class="editsection">[<a href="' + wgScript + '?title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&action=edit§ion=0" title="';
divString += 'Edit section: '+wgPageName+'">edit</a>]</div>';
var divContainer = document.createElement("div");
divContainer.innerHTML = divString;
// insert divContainer into the DOM below the h1
document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);
}
function blockhist() {
var ul = document.getElementById('bodyContent').getElementsByTagName('ul')[0];
if (!ul || !ul.getElementsByTagName('li')[0]){return;}//nothing to do
var l = ul.getElementsByTagName('li');
if (l[0].innerHTML.indexOf('">block</a>)') ==-1){//non-admin
//somehow get the user and create links as for the admin section below
return;
}
//use unblock links
if (location.href.search(/&page=[^&]/) ==-1) {
// alert("add stuff");
for (var i=0; i<l.length; i++) {
if (l[i].getElementsByTagName('a')[4]) {
var name = l[i].getElementsByTagName('a')[4].innerHTML;
l[i].innerHTML = '(<a href="/w/index.php?title=Special%3ALog&type=block&page=User:' + name + '">hist</a>) (<a href="/w/index.php?title=Special%3AIpblocklist&action=search&limit=&ip=' + name + '">status</a>) ' + l[i].innerHTML;
}
}
}
else {
var name = l[0].getElementsByTagName('a')[4].innerHTML;
l[0].innerHTML = '(<a href="/w/index.php?title=Special%3AIpblocklist&action=search&limit=&ip=' + name + '">status</a>) ' + l[0].innerHTML;
}
}
if ( wgCanonicalNamespace != "Special" ) addOnloadHook(purge);
if ( wgCanonicalSpecialPageName == "Contributions" ) addOnloadHook(contribstools);
if (wgCanonicalSpecialPageName == 'IPBlockList' || wgCanonicalSpecialPageName == 'Log' && (location.href.search(/\/block|type=block/) != -1 )) addOnloadHook(blockhist);
if (wgIsArticle == true && (wgAction == "history" || wgAction == "view" || wgAction == "purge")) addOnloadHook(lastdiff);
if (wgNamespaceNumber == 2 || wgNamespaceNumber == 3) addOnloadHook(userlogs);
$(addtoolboxlinks);
$(edittop);
//end addtools.js