NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name CatWar Chat Enhancer (Kiwi Browser) // @namespace https://catwar.net/ // @version 1.2 // @description Улучшение чата CatWar: добавление таймера и счетчика сообщений до спама (адаптация для мобильных браузеров) // @author kayosha // @match https://catwar.net/chat // @license MIT // @grant none // ==/UserScript== (function() { 'use strict'; // Добавление элементов интерфейса const chatForm = document.getElementById('mess_form'); if (chatForm) { const uiContainer = document.createElement('div'); uiContainer.style.marginTop = '10px'; uiContainer.innerHTML = ` <div style="font-size: 14px;"> <b>Время до обновления чата:</b> <span id="refreshed">0</span> сек<br> <b>Сообщений до спама:</b> <span id="messenger">11</span><br> <form id="nummState" style="margin-top: 5px;"> <button id="numm" type="button" style="padding: 8px; font-size: 14px;">Обновить числа</button> <input type="text" id="numm_input" placeholder="Введите число" style="width: 90%; margin-top: 5px; font-size: 14px; padding: 5px;"> </form> </div> `; chatForm.appendChild(uiContainer); } // Переменные const command = `/number `; let number = ''; let numberInput = ''; const messenger = document.getElementById("messenger"); const refreshed = document.getElementById("refreshed"); let timer = 60; let pressed = false; let allowedMessages = 11; // Функции function TextInputation() { const input = document.getElementById('numm_input'); if (input) { number = input.value.trim(); if (number) { numberInput = command + number; const messField = document.getElementById('mess'); if (messField) { messField.value = numberInput; // Используем value для работы с текстовыми полями } unMessage(); if (!pressed) { setTimeout(updateTimer, 1000); pressed = true; refreshed.innerText = timer; } } else { alert('Введите корректное число!'); } } } function updateTimer() { timer -= 1; refreshed.innerText = timer; if (timer > 0) { setTimeout(updateTimer, 1000); } else { pressed = false; allowedMessages = 10; timer = 60; messenger.innerText = allowedMessages; } } function unMessage() { if (allowedMessages > 0) { allowedMessages -= 1; messenger.innerText = allowedMessages; } else { alert('Достигнут лимит сообщений. Подождите, пока таймер сбросится.'); } } // Привязка событий const nummButton = document.getElementById('numm'); if (nummButton) { nummButton.addEventListener('click', TextInputation); } // Обработка нажатия Enter document.addEventListener("keydown", (e) => { if (e.key === "Enter") { const focusedElement = document.activeElement; if (focusedElement && focusedElement.id === 'numm_input') { e.preventDefault(); // Предотвращаем стандартное поведение TextInputation(); } } }); // Исправление для фокусировки полей на мобильных устройствах const inputs = document.querySelectorAll('input[type="text"]'); inputs.forEach(input => { input.addEventListener('focus', () => { input.scrollIntoView({ behavior: "smooth", block: "center" }); }); }); })();