MediaWiki:Gadget-ReverseIP.js

From AnOtherWiki, the free encyclopedia written by, for, and about the Otherkin community.
Revision as of 21:57, 13 September 2023 by Jarandhel (talk | contribs) (Updating links)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.


// ==UserScript==
// @name           Wiki WHOIS linker
// @author         Jarandhel (adapted from version from Arendedwinter)
// @description    Creates a link next to each anon IP for easy WHOIS searches.  Should work on all language Wikis
// ==/UserScript==


// NOTIFICATION TEXT : REMOVE IF YOU DON'T WANT IT
var Notify = document.createElement("p");
var txt = "WHOIS lookup enabled";
var newT = document.createTextNode(txt);
                Notify.appendChild(newT);
                Notify.setAttribute("style", "position: fixed; z-index: 99; left: 0; bottom: 0; font-size: 7pt; background-color: #E9E9E9; color: #000000;");

var AppendSwitcher = document.getElementsByTagName('body')[0];
                AppendSwitcher.appendChild(Notify);
//--DON'T REMOVE BELOW HERE--

//SET SOME VARIABLES
var Link = document.getElementsByTagName('a');
var IPFilter = /^.*([0-9]{1,2})+\.([0-9]{1,2})+\.([0-9]{1,2})+\.([0-9]{1,2})+$/;

var ExtraLinkURL = 'https://dnslytics.com/ip/';
var ExtraSecondLinkURL = 'http://ip-api.com/line/';
var ExtraThirdLinkURL = 'https://extreme-ip-lookup.com/';
var ExtraLinkTarget = '_blank';
var ExtraLinkTitle = 'WHOIS this IP';
var ExtraLinkText = ' <font size="1"><font color="black">(</font><u><font>WHOIS</font></u><font color="black">)</font></font>';
var ExtraSecondLinkText = ' <font size="1"><font color="black">(</font><u><font>RBLS</font></u><font color="black">)</font></font>';
var ExtraThirdLinkText = ' <font size="1"><font color="black">(</font><u><font>WHOIS2</font></u><font color="black">)</font></font>';


//DO STUFF!
//Yes I'm aware this can be written better...
for (var i = 0; i < Link.length; i++){

        //Filter out external links (eg: Enzyme Commission codes are the same format as an IP)
        var InWikipedia = /anotherwiki.org/.test(Link[i].href);

        if (InWikipedia == true){
        
                if (Link[i].textContent.match(IPFilter)){
                        
                        ExtraLinkSpan = document.createElement('span');
                        
                        if (Link[i].textContent.match(/\:/g)){
                                var NewLink = Link[i].textContent.split(/\:/g);
                                NewLink = NewLink[1];
                                
                                if (NewLink.match(/\//g)){
                                        var NewLink = Link[i].textContent.split(/\//g);
                                        NewLink = NewLink[1];
                                }
                                
                        }else{
                                var NewLink = Link[i].textContent;
                        }
        
                        ExtraLink = '<a class="reverseipeditlink" href="' + ExtraLinkURL + NewLink + '" target="' + ExtraLinkTarget + '" title="' + ExtraLinkTitle + '">' + ExtraLinkText + '</a>'+'<a class="reverseipeditlink" href="' + ExtraSecondLinkURL + NewLink + '" target="' + ExtraLinkTarget + '" title="RBLS">' + ExtraSecondLinkText + '</a>'+'<a class="reverseipeditlink" href="' + ExtraThirdLinkURL + NewLink + '" target="' + ExtraLinkTarget + '" title="RBLS">' + ExtraThirdLinkText + '</a>';

                        ExtraLinkSpan.innerHTML = ExtraLink;
                        
                        Link[i].parentNode.insertBefore(ExtraLinkSpan, Link[i].nextSibling);
        
                }
        }
}