🏠 Home 

Anilist more links (MAL/AniDB)

adds links to anilist/mal site to anilist (uses just the duckduckgo I'm feeling ducky feature with the anime name)

// ==UserScript==
// @name         Anilist more links (MAL/AniDB)
// @namespace    https://github.com/Alistair1231/my-userscripts/
// @version      0.5.1
// @description  adds links to anilist/mal site to anilist (uses just the duckduckgo I'm feeling ducky feature with the anime name)
// @author       Alistair1231
// @match        https://anilist.co/*
// @icon         https://icons.duckduckgo.com/ip2/anilist.co.ico
// @license      MIT
// ==/UserScript==
function createButton(linkcolor="#5B0BB5e0", link, text, iconDomain) {
const anchorTag = document.createElement('a');
anchorTag.setAttribute('data-v-c1b7ee7c', '');
anchorTag.setAttribute('href', link);
anchorTag.setAttribute('target', '_blank');
anchorTag.setAttribute('class', 'external-link');
anchorTag.setAttribute('style', `--link-color:${linkcolor};`);
const divTag = document.createElement('div');
divTag.setAttribute('data-v-c1b7ee7c', '');
divTag.setAttribute('class', 'icon-wrap');
divTag.setAttribute('style', `background:black;`);
const imgTag = document.createElement('img');
imgTag.setAttribute('data-v-c1b7ee7c', '');
imgTag.setAttribute('src', 'https://icons.duckduckgo.com/ip2/' + iconDomain + '.ico');
imgTag.setAttribute('class', 'icon');
// min-width: 25px;
imgTag.style.minWidth = "25px";
const spanTag = document.createElement('span');
spanTag.setAttribute('data-v-c1b7ee7c', '');
spanTag.setAttribute('class', 'name');
spanTag.textContent = text;
divTag.appendChild(imgTag);
anchorTag.appendChild(divTag);
anchorTag.appendChild(spanTag);
return anchorTag;
}
function run() {
// if no external links there, add the div to the sidebar
if (document.querySelectorAll("div.external-links h2~div").length === 0) {
var myDiv = document.createElement("div");
myDiv.setAttribute("data-v-7a1f9df8", "");
myDiv.setAttribute("data-v-1c97ba07", "");
myDiv.setAttribute("class", "external-links");
myDiv.innerHTML = "<h2 data-v-7a1f9df8=\"\">External &amp; Streaming links<\/h2><div data-v-7a1f9df8=\"\" class=\"external-links-wrap\"><\/div>";
document.querySelector("div.sidebar").appendChild(myDiv);
}
var linkBar = document.querySelectorAll("div.external-links h2~div");
var name = document.querySelector(".content h1").innerText.replace(':','');
var mal = "https://duckduckgo.com/?q=!myanimelist+" + name;
var malButton = createButton(linkcolor="#5B0BB5e0", link=mal, text="MAL",iconDomain="myanimelist.net");
var anidb = "https://duckduckgo.com/?q=!anidb+" + name;
var anidbButton = createButton(linkcolor="#5B0BB5e0", link=anidb, text="AniDB",iconDomain="anidb.net");
if (document.querySelectorAll("a.external-link[href*='https://duckduckgo.']").length === 0) {
linkBar[0].prepend(malButton);
linkBar[0].prepend(anidbButton);
}
}
function checkReady() {
var contentH1 = document.querySelector(".content h1");
if (contentH1) {
run();
}
else{
console.log("title not loaded, trying again in 200ms");
setTimeout(checkReady, 200);
}
}
(function() {
let url;
let lastUrl = location.href;
let mutationObserver = new MutationObserver(() => {
url = location.href;
if (url !== lastUrl) {
lastUrl = url;
checkReady();
}
})
mutationObserver.observe(document, { subtree: true, childList: true });
checkReady();
})();