您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
this site is ass
// ==UserScript== // @name donutgang fixer // @namespace http://tampermonkey.net/ // @version 1.4 // @description this site is ass // @author aprilfools // @match *://donutgang.vercel.app/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // List of Family Guy clip URLs const clips = [ 'https://www.youtube.com/embed/lO5UR0cIThQ?autoplay=1', 'https://www.youtube.com/embed/qMTY4l8_miI?autoplay=1', 'https://www.youtube.com/embed/VvALFQDWj6Q?autoplay=1', 'https://www.youtube.com/embed/bQ5kejGjA4Y?autoplay=1', 'https://www.youtube.com/embed/h_r8sVdY7do?autoplay=1', 'https://www.youtube.com/embed/7ghSziUQnhs?autoplay=1', 'https://www.youtube.com/embed/dvjy6V4vLlI?autoplay=1', 'https://www.youtube.com/embed/L_fcrOyoWZ8?autoplay=1', 'https://www.youtube.com/embed/ObhmrE6FyNs?autoplay=1', 'https://www.youtube.com/embed/fXCUaRE-5Rc?autoplay=1', 'https://www.youtube.com/embed/u7kdVe8q5zs?autoplay=1', 'https://www.youtube.com/embed/vXc0Jmn-frw?autoplay=1', 'https://www.youtube.com/embed/uVKxtdMgJVU?autoplay=1', 'https://www.youtube.com/embed/ZtLrNBdXT7M?autoplay=1', 'https://www.youtube.com/embed/2LaCKzfTEoA?autoplay=1' ]; let spawningEnabled = true; let limitedto10 = false; let howMuchTo10 = 0; let bounceSpeed = 4; // Default bounce speed function spawnIframe() { // Randomly select a clip const randomClip = clips[Math.floor(Math.random() * clips.length)]; // Create an iframe element const iframe = document.createElement('iframe'); iframe.width = '300'; // Set smaller width for easier bouncing iframe.height = '170'; iframe.src = randomClip; iframe.frameBorder = '0'; iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'; iframe.allowFullscreen = true; // Initial position of the iframe (center of the screen) iframe.style.position = 'fixed'; iframe.style.top = `${(window.innerHeight / 2) - (iframe.height / 2)}px`; iframe.style.left = `${(window.innerWidth / 2) - (iframe.width / 2)}px`; iframe.style.zIndex = '1000'; // Append the iframe to the body document.body.appendChild(iframe); // Bouncing logic let x = Math.random() * 2 + bounceSpeed; let y = Math.random() * 2 + bounceSpeed; const interval = setInterval(() => { let rect = iframe.getBoundingClientRect(); // Reverse direction if hitting a boundary if (rect.left + x < 0 || rect.right + x > window.innerWidth) { x = -x; if (spawningEnabled && !limitedto10) { spawnIframe(); howMuchTo10 += 1; } } if (rect.top + y < 0 || rect.bottom + y > window.innerHeight) { y = -y; if (spawningEnabled && !limitedto10) { spawnIframe(); howMuchTo10 += 1; } } // Move the iframe iframe.style.left = rect.left + x + 'px'; iframe.style.top = rect.top + y + 'px'; }, 10); // Add the interval ID to the iframe so it can be cleared when removed iframe.dataset.intervalId = interval; } // Button to stop spawning new iframes const stopButton = document.createElement('button'); stopButton.textContent = 'Stop Spawning Iframes'; stopButton.style.position = 'fixed'; stopButton.style.bottom = '50px'; stopButton.style.left = '10px'; stopButton.style.zIndex = '10000'; stopButton.onclick = () => { spawningEnabled = false; }; document.body.appendChild(stopButton); // Input box and button to set the iframe limit const limitInput = document.createElement('input'); limitInput.type = 'number'; limitInput.placeholder = 'Set IFrame Limit'; limitInput.style.position = 'fixed'; limitInput.style.bottom = '90px'; limitInput.style.left = '10px'; limitInput.style.zIndex = '10000'; document.body.appendChild(limitInput); const limitButton = document.createElement('button'); limitButton.textContent = 'Set Limit'; limitButton.style.position = 'fixed'; limitButton.style.bottom = '90px'; limitButton.style.left = '140px'; limitButton.style.zIndex = '10000'; limitButton.onclick = () => { limitedto10 = true; howMuchTo10 = parseInt(limitInput.value) || 0; }; document.body.appendChild(limitButton); // Button and input to change bounce speed const speedInput = document.createElement('input'); speedInput.type = 'number'; speedInput.placeholder = 'Set Bounce Speed'; speedInput.style.position = 'fixed'; speedInput.style.bottom = '130px'; speedInput.style.left = '10px'; speedInput.style.zIndex = '10000'; document.body.appendChild(speedInput); const speedButton = document.createElement('button'); speedButton.textContent = 'Set Speed'; speedButton.style.position = 'fixed'; speedButton.style.bottom = '130px'; speedButton.style.left = '140px'; speedButton.style.zIndex = '10000'; speedButton.onclick = () => { bounceSpeed = parseFloat(speedInput.value) || 4; }; document.body.appendChild(speedButton); // Button to remove the last iframe const removeButton = document.createElement('button'); removeButton.textContent = 'Remove Last Iframe'; removeButton.style.position = 'fixed'; removeButton.style.bottom = '10px'; removeButton.style.left = '10px'; removeButton.style.zIndex = '10000'; removeButton.onclick = () => { const iframes = document.querySelectorAll('iframe'); if (iframes.length > 0) { const lastIframe = iframes[iframes.length - 1]; clearInterval(lastIframe.dataset.intervalId); // Clear the bouncing interval lastIframe.remove(); // Remove the iframe howMuchTo10 -= 1; } }; document.body.appendChild(removeButton); // Start by spawning the first iframe spawnIframe(); })();