1 Star 3 Fork 2

刘大/京东校时抢券

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
jdtc.js 3.25 KB
一键复制 编辑 原始数据 按行查看 历史
刘大 提交于 2018-06-21 15:49 . 减去传输时间差
// ==UserScript==
// @name 京东校时抢券
// @namespace http://tampermonkey.net/
// @version 0.2
// @description try to take over the world!
// @author You
// @match https://credit.jd.com/channel/coupon.html?couponBusinessId=*&actId=*&agreementSource=*
// @grant none
// ==/UserScript==
// 使用方法:
// window.JDC.start('2018-06-21 00:41:00', 'User.grabCoupon(true)');
// 此页面 第二个参数不用改,第一个参数改成抢券的准确时间。
// 注意 alert confirm等 会阻塞时间的正常计算。
var JDTime = {
init: function(){
this.time = (new Date()).getTime();
this.setItv();
this.correctTime();
setInterval(() => {
this.correctTime();
}, 60000)
},
setItv: function () {
clearInterval(this.itv);
this.itv = setInterval(() => {
this.time += 1000;
console.log(this.getDate());
}, 1000);
},
getServerTime: function(){
return (new Date($.ajax({async: false}).getResponseHeader("Date"))).getTime();
},
getTime: function() {
return this.time;
},
getDate: function() {
return new Date(this.time);
},
correctTime: function() {
console.log('开始校时');
let tmpTime = this.getServerTime();
let newTime = null;
let ping = null;
let tmpTime1 = null;
for(var i = 0; i < 9999999999; i ++) {
tmpTime1 = (new Date()).getTime();
newTime = this.getServerTime();
ping = (new Date()).getTime() - tmpTime1;
console.log(ping);
if(newTime <= tmpTime) {
continue;
} else {
this.time = newTime - parseInt(ping / 2);
this.setItv();
break;
}
}
console.log('完成校时');
}
}
JDTime.init();
var JDC = null;
$(function() {
'use strict';
var JDC = {
bidTime: null,
funcStr: null,
tm2: null, //倒计时定时器
start: function(timeStr, fn) {
this.bidTime = (new Date(timeStr)) . getTime();
this.funcStr = fn;
this.logFunc('开始..');
this.bidTm();
},
bidTm: function(){
var _this = this;
var now = JDTime.getTime();
clearTimeout(this.tm2);
var tmm = this.bidTime - now;
if (tmm < 0) {
_this.logFunc('时间已过');
} else {
_this.logFunc(tmm + 'ms 后开抢');
this.tm2 = setTimeout(function(){
_this.bidFunc();
},this.bidTime - now);
}
},
bidFunc: function(){
if(this.funcStr){
eval(this.funcStr);
} else {
this.logFunc('未传入函数');
}
},
logFunc: function(info){
var d = JDTime.getDate();
var time = d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()+"."+d.getMilliseconds();
console.log("["+time+"]"+info);
},
};
window.JDC = JDC;
});
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/aduil/jdtc.git
[email protected]:aduil/jdtc.git
aduil
jdtc
京东校时抢券
master

搜索帮助