JustPaste.it

// ==UserScript==
// @name           Manga-Updates External Links
// @namespace      none
// @include        http://www.mangaupdates.com/series.html?id=*
// @include        https://www.mangaupdates.com/series.html?id=*
// @grant          none
// @version        v1.1
// @description    Adds an external links section to MU's series info page, with Anime-Planet, MAL, MangaFox, MangaHere and (not working) Batoto links.
// ==/UserScript==


function getElementByClassName(elementType, className, src)
{
    if (src == null)
    {
        src = document;
    }
    var tags = src.getElementsByTagName(elementType);
    var i;
    for (i = 0; i < tags.length; i++)
    {
        if (tags[i].className == className)
        {
            return tags[i];
        }
    }
    return null;
}

function redirect(link)
{
    var uriSite;
    uriSite = '<meta http-equiv=refresh content=\"0;url=' +encodeURIComponent(link)+ '\">';
    return 'data:text/html;charset=utf-8,' + uriSite;
}

var title = getElementByClassName("span", "releasestitle tabletitle").innerHTML;
var table = getElementByClassName("div", "sContainer").children[0];//document.evaluate("/html/body/div/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td/table[2]/tbody/tr/td/div/div[2]/div", document, null, XPathResult.ANY_TYPE, null).iterateNext();
var lastTableElement = table.children[39];
var adsCat = document.evaluate("/html/body/div/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td/table[2]/tbody/tr/td/div/div[2]/div/div[27]", document, null, XPathResult.ANY_TYPE, null).iterateNext();
var linksCat = document.createElement('div');
linksCat.className = "sCat";
linksCat.innerHTML = "<b>External Links</b>";
var linksContent = document.createElement('div');
linksContent.className = "sContent";

table.insertBefore(linksCat, lastTableElement);
table.insertBefore(linksContent, lastTableElement);
table.insertBefore(document.createElement('br'), lastTableElement);

var pageNames = new Array();
var pageAdressBeginning = new Array();
var pageAdressEnding = new Array();
var searchName = new Array();

// Anime-Planet link
pageNames.push("Anime-Planet");
pageAdressBeginning.push("http://www.anime-planet.com/manga/all?name=");
searchName.push(encodeURIComponent(title));
pageAdressEnding.push("");

//MAL
pageNames.push("MAL");
pageAdressBeginning.push("http://myanimelist.net/manga.php?q=");
searchName.push(encodeURIComponent(title));
pageAdressEnding.push("");

// Mangafox link
pageNames.push("Mangafox");
pageAdressBeginning.push("http://www.mangafox.com/search.php?name_method=cw&name=");
var mangaFoxName = encodeURIComponent(title).replace(/%20/g, "+");
searchName.push(mangaFoxName);
pageAdressEnding.push("&type=&author_method=cw&author=&artist_method=cw&artist=&genres[Action]=0&genres[Adult]=0&genres[Adventure]=0&genres[Comedy]=0&genres[Doujinshi]=0&genres[Drama]=0&genres[Ecchi]=0&genres[Fantasy]=0&genres[Gender+Bender]=0&genres[Harem]=0&genres[Historical]=0&genres[Horror]=0&genres[Josei]=0&genres[Martial+Arts]=0&genres[Mature]=0&genres[Mecha]=0&genres[Mystery]=0&genres[One+Shot]=0&genres[Psychological]=0&genres[Romance]=0&genres[School+Life]=0&genres[Sci-fi]=0&genres[Seinen]=0&genres[Shoujo]=0&genres[Shoujo+Ai]=0&genres[Shounen]=0&genres[Shounen+Ai]=0&genres[Slice+of+Life]=0&genres[Smut]=0&genres[Sports]=0&genres[Supernatural]=0&genres[Tragedy]=0&genres[Webtoons]=0&genres[Yaoi]=0&genres[Yuri]=0&released_method=eq&released=&rating_method=eq&rating=&is_completed=&advopts=1");

// mangahere link
pageNames.push("Mangahere");
pageAdressBeginning.push("http://www.mangahere.co/search.php?name=");
searchName.push(encodeURIComponent(title));
//pageAdressEnding.push(mangaFoxName);

// KissManga link
pageNames.push("KissManga");
pageAdressBeginning.push("http://kissmanga.com/Search/Manga/");
searchName.push(encodeURIComponent(title));
pageAdressEnding.push("");

// MangaPark link
pageNames.push("MangaPark");
pageAdressBeginning.push("https://mangapark.me/search?q=");
searchName.push(encodeURIComponent(title));
pageAdressEnding.push("");

// broken
pageNames.push("broken");
pageAdressBeginning.push("http://0.0.0.0/");
searchName.push(encodeURIComponent(title));
pageAdressEnding.push("");

var tagsNode = document.getElementById("ajax_tag_data");
if (tagsNode != null)
{
    var tags = tagsNode.innerHTML;
    //AniDB link
    if(tags.search("Adapted to Anime") >= 0 || tags.search("Based on an Anime") >= 0)
    {
        pageNames.push("AniDB");
        pageAdressBeginning.push("http://anidb.net/perl-bin/animedb.pl?show=animelist&adb.search=");
        searchName.push(encodeURIComponent(title));
        pageAdressEnding.push("&do.search=search");
    }
}

for(var i = 0; i < pageNames.length; i++)
{
    var newLink = document.createElement('a');
    newLink.href = redirect(pageAdressBeginning[i] + searchName[i] + pageAdressEnding[i]);
    newLink.innerHTML = pageNames[i];
    linksContent.appendChild(newLink);
    if (i < pageNames.length - 1)
    {
        linksContent.appendChild(document.createTextNode(", "));
    }
}