Sleazy Fork is available in English.

AniDB.net restricted icon

Show R18 emoji on Restricted Anime

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


});


})();