Mejoras Visuales a JkAnime.net

Fuerza el modo oscuro, personaliza el menú y ajusta estilos visuales a JkAnime.

  1. // ==UserScript==
  2. // @name Mejoras Visuales a JkAnime.net
  3. // @namespace https://greasyfork.org/es/scripts/481481
  4. // @version 1/2/2025 07:00
  5. // @description Fuerza el modo oscuro, personaliza el menú y ajusta estilos visuales a JkAnime.
  6. // @author tivp
  7. // @license Unlicenced
  8. // @match *://jkanime.net/*
  9. // @match *://jkanime.bz/*
  10. // @icon https://t3.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://jkanime.net/&size=48
  11. // @icon64 https://t3.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://jkanime.net/&size=64
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16.  
  17. // Función para leer cookies
  18. const obtenerCookie = (nombre) => document.cookie.match(new RegExp(`(^| )${nombre}=([^;]+)`))?.[2] || null;
  19.  
  20. // Función para actualizar o crear una cookie con duración
  21. const actualizarCookie = (nombre, valor, duracionMinutos) => {
  22. const fecha = new Date();
  23. fecha.setMinutes(fecha.getMinutes() + duracionMinutos); // Establecer la fecha de expiración
  24. document.cookie = `${nombre}=${valor}; path=/; expires=${fecha.toUTCString()}`;
  25. };
  26.  
  27. // Función para activar el modo oscuro si no está habilitado
  28. const activarModoOscuro = () => {
  29. if (obtenerCookie("darkmode") !== "true") {
  30. document.cookie = "darkmode=true; path=/;";
  31. }
  32. };
  33.  
  34. // Función para personalizar el menú
  35. const personalizarMenu = () => {
  36. // Cambiar el enlace de "Noticias"
  37. document.querySelectorAll('.active.hentai.tip').forEach(btn => {
  38. btn.innerHTML = '<a href="https://www.anmtvla.com/search/label/doblaje%20latino" target="_blank">Noticias</a>';
  39. });
  40.  
  41. // Eliminar elementos sociales
  42. document.querySelectorAll('.active.social').forEach(btn => btn.innerHTML = '');
  43.  
  44. // Modificar el botón de inicio de sesión y añadir el estilo si no es jkanime.bz
  45. const menuUsuario = document.querySelector('.usr-menu.entrar');
  46. if (menuUsuario && window.location.hostname !== "jkanime.bz") {
  47. // Añadir el estilo al atributo 'style' existente
  48. menuUsuario.style.right = '-90px';
  49. }
  50.  
  51. // Cambiar el icono de "Mirando"
  52. const btnMirando = document.querySelectorAll('.btn.btn-light.btn-sm.ml-2');
  53. if (btnMirando.length > 1) {
  54. btnMirando[1].innerHTML = '<i class="fa fa-eye"></i>';
  55. }
  56.  
  57. // Ajustar el estilo del campo de búsqueda
  58. const inputBuscar = document.querySelector('.buscanime');
  59. if (inputBuscar) inputBuscar.style.paddingTop = '13px';
  60.  
  61. // Ajustar padding de los enlaces del menú
  62. document.querySelectorAll('.header__menu ul li a').forEach(link => {
  63. link.style.padding = '13px 19px';
  64. });
  65.  
  66. // Alinear el menú a la izquierda
  67. const headerMenu = document.querySelector('.header__menu');
  68. if (headerMenu) headerMenu.style.textAlign = 'left';
  69. };
  70.  
  71. // Función para evitar que el usuario desmarque el modo oscuro
  72. const evitarDesmarcarModoOscuro = () => {
  73. const switchBtn = document.querySelector('.switchBtn');
  74. if (switchBtn) {
  75. switchBtn.addEventListener('click', (e) => {
  76. e.preventDefault();
  77. switchBtn.checked = true;
  78. });
  79. }
  80. };
  81.  
  82. // Función para centrar el fondo de los servidores
  83. const centrarFondoServidores = () => {
  84. const bgServers = document.querySelector('.bg-servers');
  85. if (bgServers) {
  86. bgServers.style.textAlign = 'center';
  87. }
  88. };
  89.  
  90. // Función para aplicar todas las mejoras
  91. const aplicarMejoras = () => {
  92. console.log("Página cargada completamente.");
  93. if (window.location.hostname === "jkanime.net" || window.location.hostname === "jkanime.bz") {
  94. activarModoOscuro();
  95. evitarDesmarcarModoOscuro();
  96. }
  97.  
  98. personalizarMenu();
  99. centrarFondoServidores();
  100. };
  101.  
  102. // Función para verificar si las mejoras ya se aplicaron
  103. const verificarAplicacionMejoras = () => {
  104. // Aplicar mejoras
  105. aplicarMejoras();
  106.  
  107. // Marcar que las mejoras se aplicaron y hacer que la cookie dure 1 minuto
  108. if (obtenerCookie("mejoras_aplicadas") !== "true") {
  109. actualizarCookie("mejoras_aplicadas", "true", 1);
  110.  
  111. // Recargar la página
  112. window.location.reload();
  113. }
  114. };
  115.  
  116. // Ejecutar las mejoras al cargar la página
  117. window.addEventListener('load', verificarAplicacionMejoras);
  118. })();