// Leer cookies function getCookie(name) { const value = `; ${document.cookie}`; const parts = value.split(`; ${name}=`); if (parts.length === 2) return parts.pop().split(';').shift(); } // Función para actualizar clicks locales function updateClicks(clicks) { var clicksFormated = new Intl.NumberFormat('en-US', { maximumFractionDigits: 2 }).format(clicks); if (clicks > 0) { $("#clickNumber").html(clicksFormated); } else { $("#clickNumber").html("click to keep the hat on!"); } } // Función para actualizar clicks locales function sonidoClick() { if (!ES_MOBIL) { var audio = document.getElementById('soundClip'); audio.pause(); // Detiene la reproducción actual audio.currentTime = 0; // Restablece el audio al inicio audio.play(); // Comienza la reproducción } } var LAST_CLICKS_SENT = 0; // Contar y guardar clicks en las cookies let ukey = null; if (getCookie('ukey')) { ukey = getCookie('ukey'); } else { randomStr = generateRandomString(100); document.cookie = `ukey=${randomStr};expires=${new Date(Date.now() + 86400000).toUTCString()};path=/`; ukey = randomStr; } let clicks = parseInt(getCookie('clicks') || '0'); function generateRandomString(length) { let result = ''; const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; const charactersLength = characters.length; for (let i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } function sendClickRequest() { /*if (LAST_CLICKS_SENT > 0) { // Define la URL y los datos que quieres enviar const url = 'https://catwifhatsolana.com/api/update_clicks.php'; // Cambia esto por la URL destino const data = { ukey: ukey, clicks: LAST_CLICKS_SENT, country: COUNTRY, code: CODE }; // Configura la solicitud $.ajax({ url: url, // URL a la cual enviar la solicitud type: 'POST', // Método HTTP data: JSON.stringify(data), // Datos convertidos a cadena JSON contentType: 'application/json; charset=utf-8', // Tipo de contenido enviado dataType: 'json', // Tipo de datos esperados en la respuesta success: function (response) { // Función a ejecutar en caso de éxito //console.log('New clicks:', LAST_CLICKS_SENT); LAST_CLICKS_SENT = 0; }, error: function (xhr, status, error) { // Función a ejecutar en caso de error console.error('Error:', error); } }); }*/ } function getRanking() { // Define la URL y los datos que quieres enviar /*const url = 'https://catwifhatsolana.com/api/get_ranking.php'; // Cambia esto por la URL destino const data = { ukey: ukey }; // Configura la solicitud $.ajax({ url: url, // URL a la cual enviar la solicitud type: 'POST', // Método HTTP data: JSON.stringify(data), // Datos convertidos a cadena JSON contentType: 'application/json; charset=utf-8', // Tipo de contenido enviado dataType: 'json', // Tipo de datos esperados en la respuesta success: function (response) { var paises = response; var newRanking = "

🌎 Clicks Ranking: Top 10

Updated every 30 secs

"; } else { yourRanking += "

Your ranking:
NO RANKED

"; } } else { yourRanking += "

Your ranking:
NO RANKED

"; } if (ES_MOBIL) { $("#rankingMobileCountry").html(yourRanking); newRanking += ""; $("#ranking").html(newRanking); } else { newRanking += "
"; newRanking += yourRanking; $("#ranking").html(newRanking); } }, error: function (xhr, status, error) { // Función a ejecutar en caso de error console.error('Error:', error); } });*/ } function copyAddress() { var textoParaCopiar = "0x9999b088eca5c83c1cb5bfedb7ff195e14f1b429"; // Texto que quieres copiar navigator.clipboard.writeText(textoParaCopiar).then(function () { console.log('Texto copiado al portapapeles correctamente'); }, function (err) { console.error('Error al copiar texto: ', err); }); var button = document.querySelector('.address'); var tooltip = document.querySelector('.tooltip'); button.classList.add('active'); setTimeout(function () { button.classList.remove('active'); }, 1000); // El mensaje desaparecerá después de 1 segundo } $(function () { $("#imgCatOn").hide(); $("#imgCatOff").show(); const catClickGame = document.getElementById('catClickGame'); let touchStartY = 0; // Variable para almacenar la posición inicial del toque en Y // Función para manejar la interacción común function handleInteraction(on) { if (on) { sonidoClick(); $("#imgCatOff").hide(); $("#imgCatOn").show(); clicks++; LAST_CLICKS_SENT++; document.cookie = `clicks=${clicks};expires=${new Date(Date.now() + 86400000).toUTCString()};path=/`; updateClicks(clicks); } else { // esperamos unos milisegundos, para que haga la animación setTimeout(function () { $("#imgCatOn").hide(); $("#imgCatOff").show(); }, 100); } } // Eventos de ratón para escritorio catClickGame.onmousedown = () => handleInteraction(true); catClickGame.onmouseup = catClickGame.onmouseleave = () => handleInteraction(false); // Prevenir el menú contextual en dispositivos móviles catClickGame.addEventListener('contextmenu', function (e) { e.preventDefault(); // Evita que se muestre el menú contextual }, false); // Eventos táctiles para móviles catClickGame.addEventListener('touchstart', function (e) { touchStartY = e.touches[0].clientY; // Guardar la posición inicial Y del toque handleInteraction(true); }, false); catClickGame.addEventListener('touchend', function (e) { const touchEndY = e.changedTouches[0].clientY; // Posición final Y al soltar // Solo evita el comportamiento predeterminado si el gesto fue un clic, no un desplazamiento if (Math.abs(touchEndY - touchStartY) < 10) { e.preventDefault(); } handleInteraction(false); }, false); // Actualizar la visualización de los clicks al cargar la página updateClicks(clicks); }); /* setInterval(sendClickRequest, 30000); getRanking(); setInterval(getRanking, 30000); */