知乎定时屏蔽 userscript
项目
知乎每天限制使用时间, 防止一颓就是几个小时. 特判不限制来自搜索引擎的回答页面, 以便有需要的时候查找资料.
安装链接: GreasyFork
主要自用, 如果有其他功能需求请自己动手丰衣足食.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
(function () { "use strict"; if (localStorage.getItem("timeLimit") === null) { var timeLimit = ""; timeLimit = prompt("请设置限制时间(秒), 请自觉保证它是一个整数"); localStorage.setItem("timeLimit", timeLimit); console.log(`限制时间设置为 ${timeLimit} 秒`); }
if ( (document.referrer.includes("baidu.com") || document.referrer.includes("google.com") || document.referrer.includes("bing.cn")) && window.location.href.includes("question") ) { console.log("不限制从搜索引擎打开的知乎页面"); return; }
var isBlocked = false;
function checkTime() { function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var year = date.getFullYear(); var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } var currentdate = year + seperator1 + month + seperator1 + strDate; return currentdate; } var lastDate = localStorage.getItem("lastDate"); if (lastDate === getNowFormatDate()) { var timeUsed = Number.parseInt(localStorage.getItem("timeUsed")); if (isNaN(timeUsed)) timeUsed = 0; timeUsed += secondBetweenCheck; var timeLimit = Number.parseInt(localStorage.getItem("timeLimit")); if (timeUsed > timeLimit) { if (!isBlocked) { alert("今天的知乎使用时间已到, 按确定关闭知乎."); document.body.innerHTML = "<h1>知乎已屏蔽</h1>"; isBlocked = true; } } else { localStorage.setItem("timeUsed", timeUsed.toString()); } } else { localStorage.setItem("lastDate", getNowFormatDate()); localStorage.setItem("timeUsed", "0"); console.log("这是今天第一次打开知乎"); } }
var secondBetweenCheck = 2; var intervalOutput = setInterval(checkTime, secondBetweenCheck * 1000); window.onblur = () => clearInterval(intervalOutput); window.onfocus = () => { intervalOutput = setInterval(checkTime, secondBetweenCheck * 1000); }; console.log("已加载知乎限制脚本."); })();
|