{
"name": "block zhihu",
"version": "0.1",
"description": "Notify dingding every 5 minuntes for browsing zhihu",
"permissions": [
"tabs",
"storage",
"alarms",
"idle",
"https://oapi.dingtalk.com/"
],
"background": {
"scripts": ["jquery-3.2.1.min.js","bg.js"]
},
"manifest_version": 2
}
"manifest_version": 2
这个也不用改,是 chrome 的 manifest 文件格式版本。permissions
:chrome 插件要调用 chrome 的接口,就需要在这里声明权限,tabs、alarms、idle 都是 chrome API。storage 是 localStorage 存储。下面那个钉钉地址是跨域请求权限。background
:这个列表里面的脚本会在后台运行。要知道后台运行的脚本和网页本身的脚本并不在一个进程里,所以直接打开网页审查是看不到这个后台脚本的,如果要调试插件程序的话,要去 extension - inspect views 里面找。如果需要跟网页脚本本身做交互的话,需要增加 content_scripts
项。alert
在 chrome 上面弹窗。track_sites
:这里其实可以增加更多的域名,比如 youtube.com
、weibo.com
之类的,毕竟能刷的又不止知乎。GMT
:时间按东八区的时间来算,主要是为了在每天零点清空数据用的。MINUTE_PER_DAY
:每天有 1440 分钟,不解释。TIMEPACE
:每刷几分钟就给出提醒,这里是每 5 分钟就提醒一次。NOTIFY_URL
、MOBILE_NUMBER
:发送钉钉机器人的链接,为什么要用钉钉机器人: http://www.jianshu.com/p/418e4ffbb4e3 track_sites
这个是小写,其他都是大写?因为(忘记改了,划掉)这个以后做个接口在前台手动增加域名的话,会是个变量。initLocalStorage()
:清空本地存储,然后增加一些变量,比如 is_idle
电脑是不是在休眠,last_site
上一个访问的站点,total_elapsed_time
总共浪费了多少时间,next_alarm_time
刷到这个时间点就提醒,然后就是以每个域名为 key 的每个域名访问了多少时间的表,虽然逻辑上并不需要用这个字典,但将来可以扩展成特定的网站每天或者每周给予特定的访问时长。timeNow()
:获取当前时间戳。checkCurrentTab()
,获取当前活跃的 tab 的域名,然后去 updateDomin()
去确认这个域名是不是在黑名单里面,然后再去 addTimeDelta()
「更新浏览时间」,注:代码中 addTimeDelta()
会在下文实现。checkCurrentTab()
函数绑到这三个事件上。idle.onStateChanged
从电脑休眠中苏醒和恢复时,记录一下 idle 状态,同时如果是从休眠到 active 的状态,等同于 windows focus Changed 事件。isElapsedTime()
根据上一次事件时正在访问的站点域名,来判断上一段时间是不是在刷知乎。updateLocalStorageTime()
更新一下 localStorage 的各站点访问时间。WX20170823-151825.png
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有