您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prevents being on social media too long
// ==UserScript== // @name Social Limit // @namespace Fusir Projects // @description Prevents being on social media too long // @match *://*/* // @grant GM_setValue // @grant GM_getValue // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js // @version 0.0.1.20190309201947 // ==/UserScript== const LIMIT = 1000*60*15; const COOLDOWN = 1000*60*15; var socialmedia = ['voat.co','phuks.co','notabug.io','hooktube.com','invidio.us', 'reddit.com','facebook.com','twitter.com','gab.io','poal.co','instagram.com', 'youtube.com']; socialmedia = new Set(socialmedia); var isalert=false; //Used to not count visits while being alerted so going back prematurely doesn't reset the whole cool down. function onfocus() { var earliest = GM_getValue('earliest') || null; var latest = GM_getValue('latest') || 0; if(Date.now()-latest>COOLDOWN) { console.log('Set new earliest'); earliest=Date.now(); } latest=Date.now(); if(earliest && Date.now()-earliest>LIMIT) { isalert=true; alert('Close all social media'); } else { alerttimeout = setTimeout(()=>{ isalert=true; alert('Close all social media'); },LIMIT+earliest-Date.now()); isalert = false; GM_setValue('latest',latest); } GM_setValue('earliest',earliest); } if(socialmedia.has(location.hostname)) { console.log('Is social media'); var alerttimeout = null; onfocus(); $(window).focus(onfocus); $(window).blur(()=>{ if(alerttimeout) { clearTimeout(alerttimeout); } if(!isalert) { //If we are being alerted don't count it as a view. GM_setValue('latest',Date.now()); } }); }