Greasy Fork is available in English.

dominios molestos de Para TMO

Un script unico que elimina los dominios fantasmas de TMO

// ==UserScript==
// @name dominios molestos de Para TMO
// @namespace TUMANGAONLINE
// @version 2.5
// @description Un script unico que elimina los dominios fantasmas de TMO
// @homepageURL      https://greasyfork.org/es/users/1211940-mao-oaks
// @icon         https://visortmo.com/favicon/android-chrome-192x192.png
// @author mao_oaks
// @connect        *
// @license Copyright MIT
// @match *://*lectortmo.com/*
// @match *://*/*

// ==/UserScript==

// Directorio de paginas permitidas
var paginas = {
  // Nombre de la pagina
  visortmo:
    // url del boton compartir en telegram
    document.getElementsByClassName("btn-telegram")[0],
  // Agrega más claves y valores según sea necesario
};

var superregex = /\w+\/\w+\/[0-9a-f]{12,32}\/(cascade|paginated(?:\/\d{0,3})?)$/gm;
var regexbasico = /\w+\/\w+\/[0-9a-f]{32}\/(cascade|paginated(?:\/\d{0,3})?)$/gm;

var urlLimpia;
// Obtener el href actual del window.location para comprobar si esta en el diccionario
var href_mask = window.location.hostname.replace(".com", "");

urlLimpia = regexbasico.test(window.location.href)
  ? location.href.replace(/\w+.\w+\/\w{4,8}\//gm, "visortmo.com/viewer/"): false;

// Verificar si el href coincide con la expresión regular
if (superregex.test(window.location.href)) {
  // verifica que la url (href_mask) no este en el diccionario y que asu vez el nombre del nav este entre el diccionario
  if (href_mask in paginas == false && urlLimpia === false) {
    // Busca el metodoa ejecutar en el diccionario
    var BuscarElement =
      paginas[
        document.getElementsByClassName("navbar-brand")[0].toString().match(/\w+\./gm)[0].replace(".","")
      ];

    // Intentar obtener el elemento con el href deseado
    try {
      var href = BuscarElement.getAttribute("href");
    } catch (error) {
      // En caso de error, esperar 21ms ( para dar tiempo a que el elemento se cargue)

        setTimeout(function () {
            // Intentar obtener el href nuevamente después de esperar
            try {
              href = BuscarElement.getAttribute("href");
            } catch (error) {
              console.error("No se pudo obtener el href deseado:", error);
            }
          },50);

    }
    // Decodificar la URL para obtener la URL limpia
    urlLimpia = decodeURIComponent(href.split("url=")[1].split("&")[0]);
  }
  if (href_mask in paginas == false) {
    location.href = urlLimpia.replace(
        /paginated.*/,
        "cascade"
      );
  }else{

  document.addEventListener("keydown", logKey);
  function logKey(e) {
    if (e.code == "ArrowUp") {
      goNextPage();
    } else if (e.code == "ArrowDown") {
      goPrevPage();
    } else if (e.code == "ArrowRight") {
      location = document
        .querySelector(".chapter-next")
        .querySelector("a").href;
    } else if (e.code == "ArrowLeft") {
      location = document
        .querySelector(".chapter-prev")
        .querySelector("a").href;
    }
  }
}
} else {
  console.log("El href no coincide con el patrón esperado.");
}
// end of script