前言
最近突发奇想,写了一个js插件,用来防止上班摸鱼,插件仅知乎页面有效,别做的太绝。。。
启动该插件后,打开知乎页面,标题会改成 “摸鱼中。。。” ,背景被替换成咸鱼。每隔一分钟,背景就会变的透明一下。
10分钟后,页面提示同时发送钉钉机器人报警。20分钟后,页面报警同时发送机器人报警并主动关闭知乎页面。同时2小时内禁止再次访问知乎页面。效果和代码如下。
-
// ==UserScript==
-
// @name 上班防摸鱼插件
-
// @namespace http://tampermonkey.net/
-
// @version 0.1
-
// @description 上班防摸鱼,自动关闭知乎页面,发送钉钉机器人报警。
-
// @author 大话家
-
// @include *://*.zhihu.com/*
-
// @require https://cdn.bootcss.com/jquery/1.11.1/jquery.min.js
-
// @require https://res.layui.com/layui/release/layer/dist/layer.js?v=3111
-
// @require http://pv.sohu.com/cityjson?ie=utf-8
-
// ==/UserScript==
-
-
(
function() {
-
'use strict';
-
// 背景透明值
-
var opacityNum =
1.0;
-
// 页面打开的时间
-
var startTime = dateFormat(
"YYYY年MM月dd日 HH时mm分ss秒",
new
Date());
-
// 主机IP
-
var ip = returnCitySN.cip;
-
// 员工唯一标识
-
var userId =
360945;
-
var flag =
localStorage.getItem(
"flag");
-
if(flag ==
"" || flag ==
undefined){
-
flag =
0;
-
localStorage.setItem(
"flag",
1);
-
}
-
if(flag ==
2){
-
var banTime =
localStorage.getItem(
"banTime");
-
// 2小时后可解封
-
if(
Date.now() - banTime >
2*
60*
60*
1000){
-
localStorage.setItem(
"flag",
0);
-
-
}
else{
-
// 关闭页面
-
window.opener =
null;
-
window.open(
'',
'_self');
-
window.close();
-
}
-
}
-
-
// 设置摸鱼壁纸
-
document.body.style.background =
"url('https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1272729702,676992708&fm=26&gp=0.jpg')";
-
// 设置摸鱼标题
-
setTimeout(
function(){
-
document.title =
'摸鱼中。。。';
-
},
3*
1000);
-
-
// 摸鱼过程中,每一分钟背景逐渐透明
-
setInterval(
function(){
-
$(
"body").css({
opacity: opacityNum });
-
opacityNum = opacityNum
-0.04;
-
},
60*
1000);
-
-
// 10分钟内,页面警告;20分钟内强制退出!
-
setInterval(
function(){
-
if(flag ==
0){
-
layer.msg(
"你已摸鱼10分钟,请注意用时!\n上班要专心!", {
icon:
7,
time:
10000 });
-
localStorage.setItem(
"flag",
1);
-
var dingMsg1 =
"提示:"+userId+
"("+ip+
")用户从"+startTime+
"开始摸鱼10分钟,上班要认真!";
-
$.ajax({
-
url:
'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx',
-
type:
"POST",
-
async:
false,
-
beforeSend:
function (xhr){
-
xhr.setRequestHeader(
'Content-Type',
'application/json,application/x-www-form-urlencoded');
-
},
-
data:
JSON.stringify({
"msgtype":
"text",
"text": {
"content": dingMsg1}}),
-
success:
function (res){
-
console.log(res);
-
},
-
error:
function (err){
-
console.log(err);
-
}
-
});
-
-
// 强制退出
-
}
else{
-
layer.msg(
"你已摸鱼20分钟,您将禁止访问知乎页面2小时!", {
icon:
7,
time:
10000 });
-
localStorage.setItem(
"flag",
2);
-
var dingMsg2 =
"提示:"+userId+
"("+ip+
")用户从"+startTime+
"开始摸鱼20分钟!插件将屏蔽该用户访问知乎页面2小时。";
-
$.ajax({
-
url:
'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxx',
-
type:
"POST",
-
async:
false,
-
beforeSend:
function (xhr){
-
xhr.setRequestHeader(
'Content-Type',
'application/json,application/x-www-form-urlencoded');
-
},
-
data:
JSON.stringify({
"msgtype":
"text",
"text": {
"content": dingMsg2}}),
-
success:
function (res){
-
console.log(res);
-
},
-
error:
function (err){
-
console.log(err);
-
}
-
});
-
localStorage.setItem(
"banTime",
Date.now());
-
setTimeout(
function(){
-
window.opener =
null;
-
window.open(
'',
'_self');
-
window.close();
-
},
12*
1000);
-
}
-
},
10*
60*
1000);
-
-
// 获取格式化时间
-
function dateFormat(fmt, date) {
-
let ret;
-
const opt = {
-
"Y+": date.getFullYear().toString(),
// 年
-
"M+": (date.getMonth() +
1).toString(),
// 月
-
"d+": date.getDate().toString(),
// 日
-
"H+": date.getHours().toString(),
// 时
-
"m+": date.getMinutes().toString(),
// 分
-
"s+": date.getSeconds().toString()
// 秒
-
// 有其他格式化字符需求可以继续添加,必须转化成字符串
-
};
-
for (
let k
in opt) {
-
ret =
new
RegExp(
"(" + k +
")").exec(fmt);
-
if (ret) {
-
fmt = fmt.replace(ret[
1], (ret[
1].length ==
1) ? (opt[k]) : (opt[k].padStart(ret[
1].length,
"0")))
-
};
-
};
-
return fmt;
-
}
-
-
})();
转载:https://blog.csdn.net/qq_41057885/article/details/109215579
查看评论