写了个油猴脚本,如果你在一个网页内最近30分钟中的每5分钟都有操作网页,那么就一键 The End
这个是的初心是提示不要过度沉迷网络世界
// ==UserScript==
// @name The End
// @namespace 入戏太深
// @version 2024-10-11
// @description 劇終
// @author You
// @match http://*/*
// @match https://*/*
// ==/UserScript==
// 创建一个 <style> 元素
const style = document.createElement('style');
style.type = 'text/css';
// 添加 CSS 规则
style.appendChild(document.createTextNode(`
.THEEND {
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background-color: rgba(124, 103, 10, 0.5);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 9999;
font-family: SimSun, serif;
color: white;
text-align: center;
}
.TheEnd_rxts {
white-space: pre;
font-size: 24px;
font-weight: bold;
position: fixed;
top: 0;
margin: 40px 0;
padding: 20px 0;
width: 100%;
background: #00000050;
}
@media (min-width: 600px) {
.TheEnd_rxts {
width: 300px !important;
}
}
`));
document.head.appendChild(style);
let userActivity = Array(6).fill(false);
let activityTimeout;
let theend = false;
const activityDuration = 5 * 60 * 1000;
const totalDuration = 30 * 60 * 1000;
function markUserActive() {
const currentSegment = Math.floor((Date.now() - activityStartTime) / activityDuration);
if (currentSegment < userActivity.length) {
userActivity[currentSegment] = true;
}
checkActivityStatus();
}
function checkActivityStatus() {
if (userActivity.every(segment => segment)) {
TheEnd();
resetActivity();
}
}
function resetActivity() {
userActivity.fill(false);
activityStartTime = Date.now();
}
let activityStartTime = Date.now();
resetActivity();
document.addEventListener('mousemove', markUserActive);
document.addEventListener('keydown', markUserActive);
setInterval(checkActivityStatus, activityDuration);
window.onload = function() {
setInterval(resetActivity, totalDuration);
};
function TheEnd() {
if (theend) return;
theend = true;
const overlay = document.createElement('div');
overlay.classList.add("THEEND");
const mainText = document.createElement('div');
mainText.textContent = '劇終';
mainText.style.fontSize = '48px';
mainText.style.fontWeight = "bold";
overlay.appendChild(mainText);
const subText = document.createElement('div');
subText.textContent = 'T h e E n d';
subText.style.whiteSpace = "pre";
subText.style.fontSize = '24px';
subText.style.fontWeight = "bold";
overlay.appendChild(subText);
const RXTS = document.createElement('div');
RXTS.textContent = '入戏太深';
RXTS.classList.add("TheEnd_rxts");
overlay.appendChild(RXTS);
const audio = document.createElement('audio');
audio.src = 'https://camo.hach.chat/?proxyUrl=https://files.catbox.moe/em9lsq.mp3&mine=audio/mpeg';
audio.autoplay = true;
audio.loop = true;
audio.addEventListener('canplaythrough', () => {
setTimeout(()=>{
document.body.appendChild(overlay);
window.addEventListener('click', removeOverlay);
window.addEventListener('keydown', removeOverlay);
audio.play();
}, 2222);
});
document.body.appendChild(audio);
const removeOverlay = () => {
document.body.removeChild(overlay);
document.body.removeChild(audio);
window.removeEventListener('click', removeOverlay);
window.removeEventListener('keydown', removeOverlay);
theend = false;
};
}
