// ==UserScript== // @name Anilist External Links // @include http://anilist.co/manga/* // @include https://anilist.co/manga/* // @icon https://www.google.com/s2/favicons?domain=anilist.co // @grant none // @author kpossibles // @version 1.0.3 // @description Adds external link section to Anilist manga pages, with Anime-Planet, MyAnimeList, MangaUpdates, MangaDex, and AniSearch. // @namespace https://greasyfork.org/users/787696 // @downloadURL https://update.greasyfork.cloud/scripts/442599/Anilist%20External%20Links.user.js // @updateURL https://update.greasyfork.cloud/scripts/442599/Anilist%20External%20Links.meta.js // ==/UserScript== var appendButtons = function() { var btnCont = document.createElement('div'); btnCont.className = "comicInfo__btns"; // Pick class location where buttons show up document.querySelector("div.content h1").appendChild(btnCont); // Search query = title (class name search query) var title = findNative(); var searchAP = document.createElement('a') searchAP.className = "comicInfo__btnView"; searchAP.style = "margin-left: 0px;flex: 0 0 auto;width: 48.7%;padding: 0px 8px;cursor: pointer;line-height: 42px;"; searchAP.innerHTML = ``; btnCont.appendChild(searchAP); searchAP.addEventListener("click", function() {open(encodeURI("https://www.anime-planet.com/manga/all?name=" + title), "")}); var searchMAL = document.createElement('a') searchMAL.className = "comicInfo__btnView"; searchMAL.style = "margin-left: 0px;flex: 0 0 auto;width: 48.7%;padding: 0px 8px;cursor: pointer;line-height: 42px;"; searchMAL.innerHTML = ``; btnCont.appendChild(searchMAL); searchMAL.addEventListener("click", function() {open(encodeURI("https://myanimelist.net/manga.php?q=" + title+ "&cat=manga"), "")}); var searchMU = document.createElement('a') searchMU.className = "comicInfo__btnView"; searchMU.style = "margin-left: 0px;flex: 0 0 auto;width: 48.7%;padding: 0px 8px;cursor: pointer;line-height: 42px;"; searchMU.innerHTML = ``; btnCont.appendChild(searchMU); searchMU.addEventListener("click", function() { open(encodeURI("https://www.mangaupdates.com/site/search/result?search=" + title), "") }); var searchMD = document.createElement('a') searchMD.className = "comicInfo__btnView"; searchMD.style = "margin-left: 0px;flex: 0 0 auto;width: 48.7%;padding: 0px 8px;cursor: pointer;line-height: 42px;"; searchMD.innerHTML = ``; btnCont.appendChild(searchMD); searchMD.addEventListener("click", function() {open(encodeURI("https://mangadex.org/titles?q=" + title), "")}); var searchAnisearch = document.createElement('a') searchAnisearch.className = "comicInfo__btnView"; searchAnisearch.style = "margin-left: 0px;flex: 0 0 auto;width: 48.7%;padding: 0px 8px;cursor: pointer;line-height: 42px;"; searchAnisearch.innerHTML = ``; btnCont.appendChild(searchAnisearch); searchAnisearch.addEventListener("click", function() {open(encodeURI("https://www.anisearch.com/manga/index?text=" + title), "")}); } var findNative = function() { // find dataset = native, get value var elements = document.getElementsByClassName('data-set'); // get the elements var nativeTitle = ""; for (var i = 0; i < elements.length; i++) { if (elements[i].getElementsByClassName('type')[0].innerText == 'Native') { nativeTitle = elements[i].getElementsByClassName('value')[0].innerText; if(!!nativeTitle){ return nativeTitle; } else { //Use main title if empty return document.querySelector("div.content h1").innerText; } } } console.log("Native title not found."); return document.querySelector("div.content h1").innerText; } var checkElems = function() { if (document.querySelector('div.content')) { setTimeout(appendButtons, 1000); } else { setTimeout(checkElems, 100); }; }; checkElems();