您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Spamuj "pepeW" na kick.com z panelem, tłem, animacją, dragowaniem i przyciskiem start/stop w minimalizacji i obrazkiem
// ==UserScript== // @name pepeW Spammer // @namespace http://tampermonkey.net/ // @version 2.1 // @description Spamuj "pepeW" na kick.com z panelem, tłem, animacją, dragowaniem i przyciskiem start/stop w minimalizacji i obrazkiem // @author Ty // @match https://kick.com/* // @grant none // ==/UserScript== (function() { 'use strict'; const pepewImg = "https://i.pinimg.com/originals/02/06/8e/02068e2e1a90365496eebe40702f87d4.gif"; const style = document.createElement("style"); style.textContent = ` @import url('https://fonts.googleapis.com/css2?family=Inter&display=swap'); #pepewPanel { position: fixed; top: 12px; right: 12px; width: 320px; background: url('https://i.pinimg.com/originals/02/06/8e/02068e2e1a90365496eebe40702f87d4.gif') no-repeat center center / cover; border-radius: 12px; box-shadow: 0 8px 24px rgba(0, 255, 165, 0.3); font-family: 'Inter', sans-serif; color: #d0d0d0; user-select: none; z-index: 99999999; transition: height 0.3s ease, opacity 0.3s ease, background-color 0.5s ease; overflow: hidden; display: flex; flex-direction: column; cursor: default; } #pepewPanel::before { content: ""; position: absolute; inset: 0; border-radius: 12px; background-color: rgba(0, 0, 0, 0.6); pointer-events: none; z-index: 0; backdrop-filter: brightness(0.75); transition: background-color 0.3s ease, backdrop-filter 0.3s ease; } #pepewPanel.minimized::before { background-color: rgba(0,0,0,0.4); backdrop-filter: brightness(0.8); } #pepewPanel.minimized { height: 40px !important; opacity: 0.95; cursor: pointer; background: transparent; display: flex !important; justify-content: space-between; align-items: center; padding: 0 12px; font-weight: 600; font-size: 16px; color: #00ffa0; text-shadow: 0 0 5px #00ffa0cc; } #pepewPanel.minimized #pepewPanelHeader, #pepewPanel.minimized #pepewPanelContent { display: none !important; } #minimizedPanelContent { display: none; width: 100%; justify-content: space-between; align-items: center; user-select: none; gap: 12px; z-index: 1; position: relative; } #minimizedPanelContent .label { flex-grow: 1; text-align: center; font-size: 15px; font-weight: bold; color: #00ffa0; text-shadow: 0 0 5px #00ffa0cc; } #minimizedStartStopBtn { background: #00ffa0; border: none; border-radius: 6px; padding: 4px 8px; font-weight: 600; cursor: pointer; color: #000; box-shadow: 0 0 5px #00ffa0cc; font-size: 14px; transition: background 0.3s ease; flex-shrink: 0; } #minimizedStartStopBtn:hover { background: #00cc80; } #minimizedPanelImage { width: 24px; height: 24px; flex-shrink: 0; } #pepewPanel #pepewPanelHeader { background: transparent; padding: 8px 12px; font-weight: 600; font-size: 16px; cursor: move; user-select: none; display: flex; justify-content: space-between; align-items: center; color: #00ffa0; text-shadow: 0 0 5px #00ffa0cc; position: relative; z-index: 1; } #pepewPanel #pepewPanelContent { display: flex; flex-direction: column; gap: 10px; padding: 12px; position: relative; z-index: 1; } #pepewPanel label { font-size: 14px; color: #a0a0a0; } #pepewPanel input[type="text"] { width: 100%; padding: 6px 8px; border-radius: 6px; border: none; font-family: 'Inter', sans-serif; font-size: 14px; background: #111; color: #eee; box-shadow: inset 0 0 5px #00ffa0cc; } #pepewPanel input[type="range"] { width: 100%; } #pepewPanel #pepewPanelContent > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; } #pepewPanel button { background: #00ffa0; border: none; border-radius: 6px; padding: 8px 16px; font-weight: 600; cursor: pointer; color: #000; box-shadow: 0 0 8px #00ffa0cc; transition: background 0.3s ease; } #pepewPanel button:hover { background: #00cc80; } #pepewPanel #counterDisplay { font-size: 14px; color: #00ffa0; text-align: center; font-weight: 600; text-shadow: 0 0 5px #00ffa0cc; } `; document.head.appendChild(style); const panel = document.createElement("div"); panel.id = "pepewPanel"; panel.innerHTML = ` <div id="pepewPanelHeader"><div>pepeW Spammer</div><button id="toggleMinimizeBtn">−</button></div> <div id="pepewPanelContent"> <label for="messageInput">Wiadomość:</label> <input type="text" id="messageInput" value="pepeW" /> <div><label>Min (s): <span id="minValDisplay">1.0</span></label><input type="range" id="minDelay" min="0" max="12" step="0.5" value="1" /></div> <div><label>Max (s): <span id="maxValDisplay">2.0</span></label><input type="range" id="maxDelay" min="0" max="12" step="0.5" value="2" /></div> <button id="startStopBtn">Start</button> <div id="counterDisplay">Wysłano wiadomości: 0</div> </div> <div id="minimizedPanelContent"> <button id="minimizedStartStopBtn">Start</button> <div class="label">pepeW Spammer</div> <img id="minimizedPanelImage" src="${pepewImg}" alt="pepeW" /> </div> `; document.body.appendChild(panel); // Elementy const input = document.getElementById("messageInput"); const minSlider = document.getElementById("minDelay"); const maxSlider = document.getElementById("maxDelay"); const startStopBtn = document.getElementById("startStopBtn"); const toggleMinimizeBtn = document.getElementById("toggleMinimizeBtn"); const counterDisplay = document.getElementById("counterDisplay"); const header = document.getElementById("pepewPanelHeader"); const panelContent = document.getElementById("pepewPanelContent"); const minimizedPanelContent = document.getElementById("minimizedPanelContent"); const minimizedStartStopBtn = document.getElementById("minimizedStartStopBtn"); let running = false; let timeoutId; let messageCount = 0; const updateSlidersDisplay = () => { document.getElementById("minValDisplay").textContent = minSlider.value; document.getElementById("maxValDisplay").textContent = maxSlider.value; }; const updateMinimizedStartStopBtn = () => { minimizedStartStopBtn.textContent = running ? "Stop" : "Start"; }; const updateCounter = () => { counterDisplay.textContent = `Wysłano wiadomości: ${messageCount}`; }; const sendMessage = msg => { const inputDiv = document.querySelector('div.editor-input[contenteditable="true"][data-testid="chat-input"]'); if (!inputDiv) return false; inputDiv.focus(); inputDiv.textContent = ""; document.execCommand('insertText', false, msg); inputDiv.dispatchEvent(new Event('input', { bubbles: true })); inputDiv.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, key: 'Enter', code: 'Enter', which: 13, keyCode: 13 })); return true; }; const getRandomDelay = () => { const min = parseFloat(minSlider.value); const max = parseFloat(maxSlider.value); return (Math.random() * (max - min) + min) * 1000; }; const spamLoop = () => { if (!running) return; const msg = input.value.trim(); if (!msg) return stopSpamming(); if (sendMessage(msg)) { messageCount++; updateCounter(); } timeoutId = setTimeout(spamLoop, getRandomDelay()); }; const startSpamming = () => { if (running) return; running = true; startStopBtn.textContent = "Stop"; updateMinimizedStartStopBtn(); spamLoop(); }; const stopSpamming = () => { running = false; startStopBtn.textContent = "Start"; updateMinimizedStartStopBtn(); clearTimeout(timeoutId); }; startStopBtn.onclick = () => running ? stopSpamming() : startSpamming(); minimizedStartStopBtn.onclick = e => { e.stopPropagation(); running ? stopSpamming() : startSpamming(); }; toggleMinimizeBtn.onclick = e => { e.stopPropagation(); const minimized = panel.classList.toggle("minimized"); toggleMinimizeBtn.textContent = minimized ? "+" : "−"; panelContent.style.display = minimized ? "none" : "flex"; minimizedPanelContent.style.display = minimized ? "flex" : "none"; header.style.display = minimized ? "none" : "flex"; panel.style.cursor = minimized ? "pointer" : "default"; }; panel.onclick = () => { if (panel.classList.contains("minimized")) { panel.classList.remove("minimized"); toggleMinimizeBtn.textContent = "−"; panelContent.style.display = "flex"; minimizedPanelContent.style.display = "none"; header.style.display = "flex"; panel.style.cursor = "default"; } }; // tutaj zmiana: zabezpieczenie wartości sliderów minSlider.oninput = () => { // jeśli min > max, ustaw max na min if (parseFloat(minSlider.value) > parseFloat(maxSlider.value)) { maxSlider.value = minSlider.value; } updateSlidersDisplay(); }; maxSlider.oninput = () => { // jeśli max < min, ustaw min na max if (parseFloat(maxSlider.value) < parseFloat(minSlider.value)) { minSlider.value = maxSlider.value; } updateSlidersDisplay(); }; // Drag let isDragging = false, dragStartX, dragStartY, startLeft, startTop; header.onmousedown = e => { isDragging = true; dragStartX = e.clientX; dragStartY = e.clientY; const rect = panel.getBoundingClientRect(); startLeft = rect.left; startTop = rect.top; document.body.style.userSelect = "none"; }; document.onmousemove = e => { if (!isDragging) return; const newX = Math.max(0, Math.min(window.innerWidth - panel.offsetWidth, startLeft + (e.clientX - dragStartX))); const newY = Math.max(0, Math.min(window.innerHeight - panel.offsetHeight, startTop + (e.clientY - dragStartY))); panel.style.left = `${newX}px`; panel.style.top = `${newY}px`; panel.style.right = "auto"; panel.style.bottom = "auto"; }; document.onmouseup = () => { isDragging = false; document.body.style.userSelect = "auto"; }; updateSlidersDisplay(); updateMinimizedStartStopBtn(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址