- // ==UserScript==
- // @name Watch Order & Adaptations Finder
- // @namespace Search for Live-Actions\Doramas\All Related Entries + Correct Watch Order + Copy Entry Title
- // @version 54
- // @description See the franchise's correct watch order and all entries. Easily check if an entry has Live-Action/Dorama adaptations, and copy the entry or all franchise entries' title(s).
- // @author hacker09
- // @include https://myanimelist.net/forum/?topicid=1863965
- // @include https://myanimelist.net/editclub.php?cid=5450&action=details
- // @include /^https:\/\/myanimelist\.net\/((anime|manga)(id=)?(\.php\?id=)?)(\/)?([\d]+)/
- // @exclude https://myanimelist.net/anime/genre/*
- // @exclude https://myanimelist.net/anime/producer/*
- // @icon https://t3.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://myanimelist.net&size=64
- // @run-at document-end
- // @connect chiaki.site
- // @connect mydramalist.com
- // @grant GM.xmlHttpRequest
- // @grant GM_openInTab
- // ==/UserScript==
-
- (function() {
- 'use strict';
- var hasRun = true; //Create a new variable
- async function Prog() { //Run the program
- if (document.hasFocus() && hasRun) //If the tab has focus and it's the first time the script runs
- { //Starts the if condition
- hasRun = false; //Change the var condition
- if (location.href === 'https://myanimelist.net/editclub.php?cid=5450&action=details' && document.querySelector(".header-profile-link").innerText.match(/hacker09|IridescentJaune|tsubasalover/)) { //If the user is on the [[ Live Action Adaptations ]] Edit Club page
- document.querySelectorAll('[id*="Relation"]').forEach((element, i) => { //ForEach list
- element.style.display = 'none'; //Hide all 3 lists
- element.insertAdjacentHTML('beforebegin', `<div class="toggle-icon${i}" style=" width: 0; height: 0; border-top: 10px solid transparent; border-bottom: 10px solid transparent; border-left: 10px solid black; cursor: pointer; display: inline-block; margin-right: 5px; "></div>`); //Create the toggle icon HTML string
-
- const toggleIcon = element.previousElementSibling; //Add the toggle icon
-
- toggleIcon.addEventListener('click', () => { //Add a click event listener to the toggle icon
- if (element.style.display === 'none') { //if the list is hidden
- element.style.display = ''; //Show the list
- // Change the triangle to point down
- toggleIcon.style.borderTop = '10px solid black';
- toggleIcon.style.borderBottom = '0';
- toggleIcon.style.borderLeft = '10px solid transparent';
- toggleIcon.style.borderRight = '10px solid transparent';
- } else { //If the list is visible
- element.style.display = 'none'; //Hide the list
- // Change the triangle to point right
- toggleIcon.style.borderTop = '10px solid transparent';
- toggleIcon.style.borderBottom = '10px solid transparent';
- toggleIcon.style.borderLeft = '10px solid black';
- toggleIcon.style.borderRight = '0';
- }
- });
- });
-
- document.querySelectorAll('[valign="top"]')[6].insertAdjacentHTML('beforeend', ` <div style="margin: 10px 0;"> <input type="text" id="SearchNum" placeholder="ID" style="padding: 5px;width: 57px;height: 7px;"> <button id="SearchBTN" style=" margin-top: 5px; background-color: #4065ba; border: none; color: #fff; cursor: pointer; font-size: 11px; padding: 4px 8px; ">Search</button> </div> `);
-
- // Add event listeners for search
- document.getElementById('SearchBTN').addEventListener('click', performSearch);
- document.getElementById('SearchBTN').addEventListener('keypress', function(e) {
- if (e.key === 'Enter') {
- performSearch();
- }
- });
-
- function performSearch() {
- event.preventDefault(); // Prevent default action
- document.querySelectorAll('[id*="Relation"]').forEach((element) => { //ForEach list
- element.style.display = ''; //Display all lists
- });
- document.querySelectorAll('a').forEach(link => {
- const onclickValue = link.getAttribute('onclick');
- if (onclickValue) {
- const uniqueNumbers = new Set(onclickValue.match(/\d+/g));
- if (uniqueNumbers.has(document.getElementById('SearchNum').value)) {
- link.parentNode.style.backgroundColor = 'cyan';
- link.scrollIntoView({ behavior: 'smooth', block: 'center' });
- }
- }
- });
- }
-
- document.querySelectorAll('[valign="top"]').forEach((el,i) => { //ForEach row
- if (document.querySelector(".header-profile-link").innerText.match(/IridescentJaune|tsubasalover/) && i !== 6) { //Show only the Club Relations
- el.parentNode.style.display = 'none'; //Hide everything besides the Club Relations
- }
- });
- } //Finishes the if condition
-
- if (location.href === 'https://myanimelist.net/forum/?topicid=1863965') { //If the user is on the Official Guidex Index
- $("b:contains('Guides available:')")[0].innerHTML = '<b style="font-weight: normal;">(Click on the letter you want to jump to.)</b><br><div style="cursor: pointer;"><b id="GoToA">Guides available: A</b> | <b id="GoToB">B</b> | <b id="GoToC">C</b> | <b id="GoToD">D</b> | <b id="GoToE">E</b> | <b id="GoToF">F</b> | <b id="GoToG">G</b> | <b id="GoToH">H</b> | <b id="GoToI">I</b> | <b id="GoToJ">J</b> | <b id="GoToK">K</b> | <b id="GoToL">L</b> | <b id="GoToM">M</b> | <b id="GoToN">N</b> | <b id="GoToO">O</b> | <b id="GoToP">P</b> | <b id="GoToQ">Q</b> | <b id="GoToR">R</b> | <b id="GoToS">S</b> | <b id="GoToT">T</b> | <b id="GoToU">U</b> | <b id="GoToV">V</b> | <b id="GoToW">W</b> | <b id="GoToX">X</b> | <b id="GoToY">Y</b> | <b id="GoToZ">Z</b><div> <style>#topBtn {display: block;position: fixed;bottom: 20px;right: 30px;z-index: 99;font-size: 18px;border: none;outline: none;background-color: #2e51a2;color: white;cursor: pointer;padding: 15px;border-radius: 4px;}</style><button onclick="document.documentElement.scrollTop = 0;" id="topBtn" title="Go to top" style="transform: rotate(90deg); display: block;"><</button>'; //Adds a text and makes the letters clickable. Also adds a scroll to top button on the page
-
- for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); ++i) { //For every charCode
- document.querySelector(`b#GoTo${String.fromCharCode(i)}`).onclick = () => document.querySelectorAll('b')[i - 36].scrollIntoView(); //Scroll the page until the letter can be seen
- } //Finishes the for condition
- } //Finishes the if condition
- else //If the user isn't on any Guide Index
- { //Starts the else condition
-
- const findButton = document.createElement("a"), copyButton = document.createElement("a"), chiakiButton = document.createElement("a"); //Creates an "a" element so the button will appear
- var ChiakiFranchiseTitle, ChiakiFranchiseTitleWithSymbols, MalClubText, ChiakiDocument, IMDBAsianWiki, hasAnime = '', ChiakiTextData = [], ChiakientryidSArray = [], MyDramaListText = ' and MyDramaList', MyDramaListCheck = '👍 Found on MyDramaList.'; //Create new global variables
-
- if (location.pathname.split('/')[1] === 'manga') { //If the user is in an manga entry
- const Relations = await (await fetch('https://api.jikan.moe/v4/' + location.href.split('/')[3] + '/' + location.pathname.match(/\d+/)[0] + '/relations')).json(); //Fetch
- hasAnime = Relations.data.flatMap(relation => relation.entry).find(entry => entry.type === "anime"); //Try getting 1 entry that is an anime
- } //Finishes the if condition
-
- var entryid = hasAnime !== undefined && hasAnime !== '' ? hasAnime.mal_id : location.pathname.match(/\d+/)[0]; //Get the anime id
-
- GM.xmlHttpRequest({ //Starts the xmlHttpRequest
- method: "GET",
- url: 'https://chiaki.site/?/tools/watch_order/id/' + entryid,
- onload: (response) => { //Starts the onload event listener
- ChiakiDocument = new DOMParser().parseFromString(response.responseText, 'text/html'); //Parses the fetch response
-
- if (ChiakiDocument.querySelector("h2") !== null) { //Starts the if condition
- ChiakiFranchiseTitle = ChiakiDocument.querySelector("h2").innerText.split(' Watch Order')[0].replace(/[^a-zA-Z0-9]+/g, " ").trim(); //Get the anime title on the h2 element and remove the Watch Order text, symbols, and whitespaces
- ChiakiFranchiseTitleWithSymbols = ChiakiDocument.querySelector("h2").innerText.split(' Watch Order')[0].trim(); //Get the anime title on the h2 element (with symbols) and remove the Watch Order text, and whitespaces
- } //Finishes the if condition
-
- ChiakiDocument.querySelectorAll("span.uk-text-muted.uk-text-small").forEach((TextElement, i) => { //Loop through the elements
- ChiakientryidSArray.push(ChiakiDocument.querySelectorAll("span.uk-text-muted.uk-text-small > a:nth-child(1)")[i].href.match(/\d+/)[0]); //Add All Anime Links on chiaki to an Array
-
- const TotalRawDuration = TextElement.textContent.split("×")[1].split("|")[0].trim(); //Creates a variable to hold the total unprocessed times
- const ALLChiakiTitles = ChiakiDocument.querySelectorAll("span.wo_title")[i].innerText; //Creates a variable to get all the anime titles on chiaki site
- const TotalEpisodes = TextElement.textContent.split("|")[2].match(/\d+|\?/g)[0]; //Creates a variable to hold the total episodes
- const EpisodeType = TextElement.textContent.split("|")[1].trim(); //Creates a variable to get the episode types
- var eps = ' eps'; //Create a variable called eps
- var Duration = ''; //Creates a blank variable
- var PerEp = ' per ep'; //Create a variable called PerEp
- if (TotalEpisodes === '1') { //If the entry has only 1 ep
- eps = ' ' + EpisodeType; //Change the variable called eps
- PerEp = ''; //Change the variable called PerEp
- } //Finishes the if condition
- if (EpisodeType !== 'TV') { //If the entry type isn't TV
- if (TotalEpisodes !== '1') { //If the entry doesn't have only 1 ep
- eps = ' ' + EpisodeType + 's'; //Change the variable called eps
- } //Finishes the if condition
- Duration = ' of ' + TotalRawDuration + PerEp; //Defines the Duration variable if the episode type isn't TV
- } //Finishes the if condition
- ChiakiTextData.push(ALLChiakiTitles + ',, ' + TotalEpisodes + eps + Duration + ',\n'); //Add Everything to an Array
- }); //Finishes the for condition
-
- } //Finishes the onload event listener
- }); //Finishes the xmlHttpRequest
-
- GM.xmlHttpRequest({ //Starts the xmlHttpRequest
- method: "GET",
- url: "https://mydramalist.com/search?q=" + (hasAnime !== undefined ? ChiakiFranchiseTitle : document.querySelector("[itemprop*='name']").innerText.split('\n')[0]) + '&adv=titles&ty=68,77,83,86',
- onload: (response) => { //Starts the onload event listener
- const MyDramaListDocument = new DOMParser().parseFromString(response.responseText, 'text/html'); //Parses the fetch response
- if (MyDramaListDocument.querySelector(".m-b-sm") === null) { //If MyDramaList did not return any results
- MyDramaListText = ''; //Display to the user that MyDramaList Won't be opened if OK is clicked
- MyDramaListCheck = '✖ NOT Found on MyDramaList.'; //Display the confirmation that the anime doesn't have any adaptations found on MyDramaList
- } //Finishes the if condition
- } //Finishes the onload event listener
- }); //Finishes the xmlHttpRequest
-
- copyButton.addEventListener("click", () => {
- navigator.clipboard.writeText(document.querySelector("[itemprop*='name']").innerText.split('\n')[0]); //Copy the entry title with symbols
- }); //Detect the single mouse click
- copyButton.addEventListener("dblclick", () => {
- navigator.clipboard.writeText(document.querySelector("[itemprop*='name']").innerText.split('\n')[0].replace(/[^a-zA-Z0-9]+/g, " ")); //Copy the entry title without symbols
- }); //Detect the double mouse click
-
- copyButton.addEventListener("contextmenu", (e) => { //Detect a mouse click
- hasAnime !== undefined ? navigator.clipboard.writeText(ChiakiTextData.join('').trim()) : ''; //Copy the array to the clipboard
- e.preventDefault(); //Don't show the right-click default context menu
- }); //Detect the mouse right click
-
- hasAnime !== undefined ? copyButton.setAttribute("title", "Click To Copy Entry Title (+ Symbols)\n2 Clicks To Copy Entry Title (Without Symbols)\n\nRight click to Copy ALL Anime Only Entry Titles on The Broadcast Order With EP Numbers, Entry Types and Duration Times") : copyButton.setAttribute("title", "1 Click To Copy Entry Title (+ Symbols)\n2 Clicks To Copy Entry Title (Without Symbols)"); //Detect a mouse hover on the button and shows an explanation text
-
- copyButton.setAttribute("style", "cursor: pointer;margin-left: 13px;height: 10px;width: 10px;background-size: cover;display: inline-block;transform: scale(1.8);vertical-align: top;margin-top: 7px;"); //The CSS for the copy button
- copyButton.style.backgroundImage = `url(${document.querySelector(".dark-mode") !== null ? 'https://i.imgur.com/hIfOM22.png' : 'https://i.imgur.com/vU0m0ye.png'})`; //The copy button image
-
- findButton.addEventListener("click", async () => { //Detect the mouse click and search for the anime title
- if (location.pathname.split('/')[1] === 'manga' || confirm('If you want to search using the Entry Title instead of the Franchise Title\nPress OK')) { //Show the confirmation alert box text
- ChiakiFranchiseTitle = document.querySelector("[itemprop*='name']").innerText.split('\n')[0]; //Change the Franchise title we got from Chiaki to the entry title (to search on mydramalist)
- ChiakiFranchiseTitleWithSymbols = document.querySelector("[itemprop*='name']").innerText.split('\n')[0]; //Change the Franchise title we got from Chiaki to the entry title (to search on the mal club)
- } //Finishes the if condition
-
- if ([...ChiakiDocument.querySelectorAll('span.uk-text-muted.uk-text-small')].find(el => el.innerText.includes('TV')) !== null) { //If the Franchise has at least 1 entry that the type is TV
- const response = await (await fetch('https://myanimelist.net/clubs.php?cid=5450')).text(); //Fetch
-
- new DOMParser().parseFromString(response, 'text/html').body.innerText.search(ChiakiFranchiseTitleWithSymbols) > -1 ? MalClubText = '👍 Found on the [[ Live Action Adaptations ]] MAL Club' : MalClubText = '✖ NOT found on the [[ Live Action Adaptations ]] MAL Club'; //If the title is found on the MALClub, display the confirmation whether or not the anime has adaptations found on the MALClub
-
- MyDramaListCheck.match('👍') !== null || MalClubText.match('👍') !== null ? IMDBAsianWiki = 'IMDB, AsianWiki' : IMDBAsianWiki = 'IMDB and AsianWiki'; //Change the IMDBAsianWiki variable depending on if mydramalist or the mal club returned any results or not
-
- if (confirm('Franchise Title: ' + ChiakiFranchiseTitle + '\n\n' + MyDramaListCheck + '\n' + MalClubText + '\n\nDo you want to open ' + IMDBAsianWiki + MyDramaListText + ' to confirm that information and get more detailed info?')) { //Show the confirmation alert box text
- GM_openInTab("https://www.imdb.com/find?s=tt&q=" + ChiakiFranchiseTitle + "&ref_=nv_sr_sm"); //Open IMDB on a new tab
- GM_openInTab("https://asianwiki.com/index.php?title=Special%3ASearch&search=" + ChiakiFranchiseTitle); //Open AsianWiki on a new tab
- if (MyDramaListCheck.match('NOT') === null) { //If MyDramaList returned any results
- GM_openInTab("https://mydramalist.com/search?q=" + ChiakiFranchiseTitle + '&adv=titles&ty=68,77,83,86'); //Open MyDramaList on a new tab
- } //Open MyDramaList on a new tab only if any results were found on the website
- } //Finishes the if condition
- } //Finishes the if condition
- else { //If the anime doesn't have any entry type = TV
- alert("This Franchise doesn't even have any TV type entries, it's very likely that there are adaptations of any kind for this Franchise, so there's no need to search."); //Show a message to the user
- } //Finishes the else condition
- }); //Finishes the event listener
-
- findButton.setAttribute("title", "Search for Live-Actions/Doramas"); //Detects a mouse hover on the button and show the text Find Live-Actions
- findButton.setAttribute("style", "cursor: pointer;margin-left: 15px;height: 10px;width: 10px;background-size: cover;display: inline-block;transform: scale(1.8);vertical-align: top;margin-top: 7px;"); //The CSS for the findButton
- findButton.style.backgroundImage = `url(${document.querySelector(".dark-mode") !== null ? 'https://i.imgur.com/TEPmlyF.png' : 'https://i.imgur.com/2XQm3qI.png'})`; //The find button image
-
- function Append(element) { //Creates a new Append function
- document.querySelector(".title-english") === null ? document.querySelector("[itemprop*='name']").append(element) : document.querySelector(".title-english").previousElementSibling.parentNode.insertBefore(element, document.querySelector(".title-english").previousElementSibling); //Append depending on if the entry has an English title or not
- } //Finishes the Append function
-
- chiakiButton.addEventListener('mousedown', async function(e) { //Detects when the user middle clicks on the chiakiButton
- if (e.button === 1 && hasAnime !== undefined) //If the middle mouse button was clicked
- { //Starts the if condition
- e.preventDefault(); //Prevent the default middle button action from executing
- var IsBroadcast = false; //Check if the franchise should be watched using the broadcast order or not
- const response = await (await fetch('https://myanimelist.net/forum/?topicid=1890672')).text(); //Fetch
- const GuideIndexnewDocument = new DOMParser().parseFromString(response, 'text/html'); //Parses the fetch response
- const GuideIndexLinkElement = [...GuideIndexnewDocument.querySelectorAll('b')].find(el => el.innerText.includes('|' + entryid + '|')); //Gets the topic element that probably has the link of the Franchise and adds that to a variable
-
- const FinalArray = ChiakientryidSArray.filter(d => !GuideIndexnewDocument.querySelector(".body.clearfix").innerText.match(/(?<=\|\b)\d+/gi).includes(d)); //Get the ids that chiaki.site has and the Guide is missing
- const GuideMissingIds = document.createElement("div"); //Creates a div element
- GuideMissingIds.setAttribute("style", "font-size: 80%;display: none;"); //Set the CSS for the button
- FinalArray.forEach(function(entryid) { //For every anime id that the guide index is missing
- GuideMissingIds.innerHTML += GuideMissingIds.innerHTML = `<br><a href="https://myanimelist.net/anime/${entryid}">https://myanimelist.net/anime/${entryid}</a>`; //Add to the GuideMissingIds div a line break + the anime link with the link as text too
- }); //Finishes the foreach condition
-
- const condition = IsBroadcast === false && FinalArray.length !== 0 && FinalArray.length !== ChiakientryidSArray.length; //If the entry isn't broadcast and there's at least 1 missing id on the guide index and if the guide index is not missing the same amount of total links that Chiaki has for the franchise
- const target = condition ? "_blank" : "_self"; //Open on a new tab or on the same tab depending on the condition
-
- if (GuideIndexLinkElement !== undefined) { //If the anime id was found on the guide index
- if (GuideIndexLinkElement.previousElementSibling.innerText.match('あ') !== null) { //If the anime name has the あ symbol in it on the guide index
- alert('Recommended watch order:\nBroadcast order.'); //Shows an alert
- IsBroadcast = true; //Check if the franchise should be watched using the broadcast order or not
- open("https://chiaki.site/?/tools/watch_order/id/" + entryid, target); //Opens the chiaki.site in a new tab
- } //Finishes the if condition
- else { //If the anime name doesn't have the あ symbol in it on the guide index
- alert('Recommended watch order:\nAEGC Guide Order.'); //Shows a text
- open(GuideIndexLinkElement.previousElementSibling.href, target); //Opens the GuideIndexLink in the a new tab
- } //Finishes the if condition
- } //Finishes the if condition
- else { //If the anime ID was NOT found on the guide index
- alert("Not found on the AEGC Club!\nOnly chiaki.site will be opened."); //Show a message
- open("https://chiaki.site/?/tools/watch_order/id/" + entryid, "_self"); //Open chiaki.site in a new tab
- } //Finishes the else condition
-
- if (condition) { //If the condition is met
- var LinksButton = document.createElement("button"); //Creates a button element
- LinksButton.innerHTML = 'Show AEGC Club Missing Links'; //Defines the element text
- LinksButton.setAttribute("style", "margin-left: 10px; background-color: red; color: white; font-weight: bold;"); //Set the CSS for the button
- LinksButton.onclick = function() { //Detects the mouse click on the Show Links Button
- if (GuideMissingIds.style.display === "none") { //If the Show missing links button is hidden
- GuideMissingIds.style.display = ''; //Show the missing links button
- LinksButton.innerHTML = 'Hide AEGC Club Missing Links'; //Defines the element text
- } else { //If the Show missing links button is being shown
- GuideMissingIds.style.display = "none"; //Hide the missing links button
- LinksButton.innerHTML = 'Show AEGC Club Missing Links'; //Defines the element text
- } //Finishes the else condition
- }; //FInishes the onclick event listener
- Append(LinksButton); //Display the button to show the IDs that chiaki.site has and the Guide is missing
- Append(GuideMissingIds); //Display the IDs that chiaki.site has and the Guide is missing
- } //Finishes the if condition
-
- if (GuideIndexLinkElement !== undefined && FinalArray.length === ChiakientryidSArray.length - 1) { //If the anime id was found on the guide index and the missing links are equal to all of the chiaki.site total links -1
- LinksButton.remove(); //Remove the button that shows the missing links
- const TwoFranchises = document.createElement("a"); //Creates an a element
- TwoFranchises.innerHTML = "<br>It seems that this entry is related to 2 Anime Franchises.<br>Both chiaki.site and the AEGC Club will be opened."; //Defines the element text
- TwoFranchises.setAttribute("style", "font-size: 80%;text-decoration: none;"); //Set the CSS for the button
- Append(TwoFranchises); //Append the NotFoundMessage close to the title element
-
- open("https://chiaki.site/?/tools/watch_order/id/" + entryid, "_self"); //Opens chiaki.site in the same tab to show all the related anime entries on MAL on the correct watch order for the anime franchise and specifies that chiaki.site should be opened on a new tab
- } //Finishes the if condition
-
- if (GuideIndexnewDocument.querySelector(".body.clearfix").innerText.match(new RegExp('(?:\\|' + entryid + '\\|)', 'gi')).length > 1) { //If 2 identical anime ids were found on the guide index
- const OtherFranchiseMessage = document.createElement("a"); //Creates an a element
- OtherFranchiseMessage.innerHTML = "<br>According to the AEGC club this entry also has another related entry that chiaki.site consider as being from another franchise."; //Defines the element text
- OtherFranchiseMessage.setAttribute("style", "font-size: 80%;text-decoration: none;"); //Set the CSS for the button
- Append(OtherFranchiseMessage); //Append the OtherFranchiseMessage close to the title element
- } //Finishes the if condition
- } //Finishes the if condition
- }); //Finishes the mousedown event listener
-
- chiakiButton.addEventListener("click", () => { //Detect the mouse click
- open(hasAnime !== undefined ? "https://chiaki.site/?/tools/watch_order/id/" + entryid : "https://relatedanime.com/manga/" + entryid, "_self"); //Opens chiaki.site in the same tab to show all the related anime entries on MAL on the correct watch order for the anime franchise and specifies that chiaki.site should be opened on a new tab
- }); //Finishes the addEventListener click
-
- chiakiButton.addEventListener("contextmenu", (e) => { //Detect a mouse click
- open(hasAnime !== undefined ? "https://relatedanime.com/anime/" + entryid : "https://relatedanime.com/manga/" + entryid, "_self"); //Open relatedanime.com in the same tab to show all the related anime entries on MAL on the correct watch order for the anime franchise, including reading material
- e.preventDefault(); //Don't show the right-click default context menu
- }); //Detect the mouse right click
-
- chiakiButton.setAttribute("style", "cursor: pointer;margin-left: 15px;height: 10px;width: 10px;background-size: cover;display: inline-block;transform: scale(1.8);vertical-align: top;margin-top: 7px;"); //The CSS for the chiakiButton
-
- chiakiButton.setAttribute("title", hasAnime !== undefined ? "Click to see all related anime entries only on the Broadcast Watch Order\nMiddle Click to see all related anime entries only on the Broadcast/Chronological Watch Order\nRight Click to see all related entries on the Broadcast Watch Order. (Including reading material)" : "This franchise has no anime adaptations!\nClick to open relatedanime.com to show all related entries on the Broadcast Watch Order. (Including reading material)"); //Detects a mouse hover on the button and shows some text info
-
- chiakiButton.style.backgroundImage = `url(${hasAnime !== undefined ? 'https://i.imgur.com/i635kBp.png' : 'https://i.imgur.com/7tUhvqf.png'})`; //The chiaki.site/relatedanime.com button favicon
- Append(copyButton); //Append the button next to the title element
- Append(findButton); //Append the button next to the title element
- Append(chiakiButton); //Append the button next to the title element
- } //Finishes the else condition
- } //Finishes the Prog function
- } //Finishes the if condition
- Prog(); //Run the program
- window.addEventListener('focus', () => { Prog(); }, { once: true }); //Run the program when the tab gets focus
- })(); //Finishes the whole function