摸鱼神器老板告警

本文介绍了一种巧妙的方法实现「老板告警」功能,通过轮询门禁记录接口,监控公司员工出入情况,并使用浏览器Notification推送最新记录,确保在老板出现时及时提醒。关键点包括:利用同域cookie免设置token、配置SSL证书以启用浏览器通知、以及通过nginx隐藏日志。该系统旨在保障适度的摸鱼时间,同时也展示了技术在日常趣味应用的一面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

适当摸鱼,有助于身心健康,本文带来摸鱼小技巧。
在这里插入图片描述

环境

本公司的门禁功能以及其它摄像头的人脸识别对接由本人开发,所以可以借助这两个功能实现老板告警功能。

选型考虑

优雅的方式——在业务识别入库服务中调用自己编写的独立服务,无论server方式还是webhook都行,独立服务实现调用im推送以及各种告警方式,且部署在私有服务器可以有效防止摸鱼计划败露后证据外泄。

毕竟修改代码有svn记录,所以直接通过canal监控数据库,再告警也不失为一个好方法。

再三考虑下,决定怎么简单怎么来,轮询查询接口方式实现。

实现

监听页面

以最简洁的html来实现
ajax请求门禁记录分页查询接口limit3,将最新3条记录的人名回显至页面,将最新的记录人名回显至titile,和计算统计定时器执行次数以防假死了还没发现
最关键判断count改变然后通过浏览器Notification推送最新记录弹窗,首次必推以测试弹窗。
当然可以比对名字再推送,我这是宁可错杀不可放过。

在这里插入图片描述
在这里插入图片描述

监听html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>bbq</title>
<script src="/js/jquery.min.js"></script>
</head>
<body >
<P id='p'></p>
</body>
<script>
var i = 0;
var count = 0;
var token = "token。。。";
var url = "https://domain/nolog/a/.../api/get-data?"
 //+"token=" + token 
 + "&pageNo=1&pageSize=3";
var bbq=document.getElementById("p");

var interval;
interval=window.setInterval(function(){
i=i+1;
$.ajax({
    url: url,
	type: "POST",
    success: function (data) {
		document.title=data.data.list[0].personName + i;
		bbq.innerText = data.data.list[0].personName + "\n" 
		+ data.data.list[1].personName + "\n" + data.data.list[2].personName + "\n" + i + "\n" + data.data.count;
		if(data.data.count != count) {
			showNotice(data.data.list[0].personName, data.data.list[0].imgUrl);
		}
		count= data.data.count;
    }
})
},2000)

// 发送通知
function showNotice(msg, url) {
    newNotify = function () {
        var notification = new Notification("通知:", {
            dir: "auto",
            lang: "hi",
            requireInteraction: true,
            icon: url,
            body: msg
        });
        notification.onclick = function (event) {
            window.focus();
        }
    }
    if (Notification.permission == "granted") {
        newNotify();
    } else {
        Notification.requestPermission(function (perm) {
            if (perm == "granted") {
                newNotify();
            }
        })
    }
}
</script>
</html>

细节

① 免设置token:html丢到门禁接口同域名下,可以利用同域cookie自动携带而不用设置token(实为sessionID),
如果丢在私服或者本地,得设置token。

② 直接html方式打开无法弹窗,Notification需要https才能弹窗,所以不论部署线上还是本地,都要配置ssl证书。

③ 接口免log:
nginx配置中偷偷加上一个代理,且配置access_log off,防止轮询被elk统计进去;

location /nolog/{
	proxy_pass   http://doman/;
	#proxy_connect_timeout 1;
	access_log off;
	proxy_set_header isMobile weixin;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Forwarded-Proto $scheme;
	proxy_set_header Connection "";
}

最后

这样即可实现老板告警功能,duang~
来了,撤了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值