AniDB.net restricted icon

Show R18 emoji on Restricted Anime

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

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


});


})();