Adds a Button that fetches the MAL(My Anime List) link for anime on Anime-Watching-Websites such as Aniwatch.to (Zoro.to)
// ==UserScript== // @name Anime 2 MAL // @namespace https://github.com/longkidkoolstar // @version 1.0.1 // @author longkidkoolstar // @description Adds a Button that fetches the MAL(My Anime List) link for anime on Anime-Watching-Websites such as Aniwatch.to (Zoro.to) // @match https://aniwatch.to/* // @grant GM_xmlhttpRequest // @license CC BY-NC-ND 4.0 // @icon https://repository-images.githubusercontent.com/62559339/bef33a00-628e-11e9-8c12-e36b0cb6c734 // ==/UserScript== (function() { 'use strict'; // Find the anime name using DOM manipulation const animeNameElement = document.querySelector('h2.film-name.dynamic-name'); if (animeNameElement) { const animeName = animeNameElement.textContent.trim(); console.log('Anime Name:', animeName); // Construct the Jikan API request const malApiUrl = `https://api.jikan.moe/v4/anime?q=${encodeURIComponent(animeName)}`; console.log('API URL:', malApiUrl); GM_xmlhttpRequest({ method: 'GET', url: malApiUrl, onload: function(response) { const responseData = JSON.parse(response.responseText); console.log('API Response:', responseData); if (responseData.data && responseData.data.length > 0) { const malAnimeLink = responseData.data[0].url; console.log(`MAL Link for "${animeName}": ${malAnimeLink}`); // Create a new button and add it to the DOM const newButton = document.createElement('a'); newButton.setAttribute('class', 'btn btn-radius btn-primary ml-2'); newButton.textContent = 'Open In MAL'; // Add an event listener to open the MAL link when clicked newButton.addEventListener('click', function() { window.open(malAnimeLink, '_blank'); }); // Find the existing button and its parent element const existingButton = document.querySelector('.dr-fav a.btn-light'); const parentElement = existingButton.parentElement; // Insert the new button next to the existing button parentElement.insertBefore(newButton, existingButton.nextSibling); } else { console.log(`Anime "${animeName}" not found on MAL.`); } }, onerror: function(error) { console.error('Error fetching data from MAL API:', error); } }); } else { console.log('Anime name element not found.'); } })();