NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name AniDB.net restricted icon // @namespace maralexbar // @description Show R18 emoji on Restricted Anime // @match http://anidb.net/* // @match https://anidb.net/* // @grant none // @license MIT // @version 1.0 // ==/UserScript== /* Primera version */ (function() { const selector = "#layout-main" //Si se cargo la pagina completamente const selector_list = "tr.restricted"; //Para las tablas en Lista, Busquedas o Creadores const selector_chart = "div.restricted"; //Para Schedule y Season Chart function main_list(){ const rows = document.querySelectorAll(selector_list); // Selecciona todas las filas tr con la clase restricted rows.forEach(row => { if (row.hasAttribute('role')) { // Si el elemento tiene el atributo role="row" entonces es una pagina de creador (Seiyuu, Creditos etc) const link = row.querySelector('td.name.anime > a'); // Dentro de cada <tr> 'restricted', selecciona el <a> dentro de td.name.anime ya que "name" solo es Rol. if (link) { // Agrega el emoji 18 al final del texto del enlace link.textContent += ' 🔞'; } } else { // Caso contrario es una pagina de Mylist o Busqueda const link = row.querySelector('td.name > a'); // Dentro de cada <tr> 'restricted', selecciona el <a> dentro de td.name if (link) { // Agrega el emoji 18 al final del texto del enlace link.textContent += ' 🔞'; } } }); } function main_chart(){ const restrictedDivs = document.querySelectorAll(selector_chart); restrictedDivs.forEach(div => { // Dentro de cada <div> 'restricted', selecciona el <a> dentro de la jerarquÃa especificada const link = div.querySelector('div.data div.wrap.name a.name-colored'); if (link) { // Agrega el emoji 18 al final del texto del enlace link.textContent += ' 🔞'; } }); } function waitForElement(query, callback) { console.log('Esperando...'); const interval = setInterval(() => { const element = document.querySelector(query); if (element) { clearInterval(interval); callback(element); } }, 100); // Revisa cada 100 ms } waitForElement(selector, (element) => { // Espera a que se cargue el conetenedor principal console.log('Encontrado:', element.id); if (document.querySelector(selector_list)) { //Si es una pagina Creator, Mylist o Busqueda main_list(); } if (document.querySelector(selector_chart)) { //Si es una pagina de Temporada o Calendario main_chart(); } }); })();