AniDB.net restricted icon

Show R18 emoji on Restricted Anime

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==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();
  }


});


})();