// ==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(", "));
}
}