团订定时抢购

团订定时抢购js

// ==UserScript==
// @name         团订定时抢购
// @namespace    
// @version      02
// @description  团订定时抢购js
// @author       fengz1
// @match        *://oa.vemic.com/teambuy
// @icon         https://www.google.com/s2/favicons?sz=64&domain=vemic.com
// @grant        none
// @require      https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js
// @license MIT
// ==/UserScript==

this.$ = this.jQuery = jQuery.noConflict(true);
(function () {
    var qdmap=new  Map();
    $('.buy-act').after("<div class='qddiv'><input type='number' class='hours' style='border: 1px solid #000; width:30px' min=0 max=23><span>:</span><input type='number' class='minutes' style='border: 1px solid #000; width:30px' min='0' max='59'><a class='btn qdbtn' style='background:#694c43' class='btn qdbtn' type=0>开始定时抢</a></div>");

    //事件绑定
    $('.qdbtn').on('click', function () {
          let auth_code=$(this).closest('.buy-item').find('button.buy_instant').attr('auth_code');
    if($(this).attr('type')==0){
        cssqding(this);
        let hours =$(this).closest('.buy-item').find('.hours').val();
        let minutes =$(this).closest('.buy-item ').find('.minutes').val();
         // 获取当前日期和时间
        const qdTime = new Date();
        qdTime.setHours(hours);
        qdTime.setMinutes(minutes);
        qdTime.setSeconds(0);
        qdTime.setMilliseconds(0);
        qdmap.set(auth_code,qdTime);
        console.log("添加任务key="+auth_code+"时间="+hours+":"+minutes);
    }else{
        cssqdstar(this);
        qdmap.delete(auth_code);
        console.log("取消任务key="+auth_code);
    }
    });


    //定时器
        setInterval(function () {
             qdmap.forEach((value, key) => {
                 if(value-new Date()<800){
                      const authCode = key;
                     $(`button[auth_code="${authCode}"]`).prop('disabled', false);
                     $(`button[auth_code="${authCode}"]`).trigger('click');
                     qdmap.delete(key);
                     cssqdstar($(`button[auth_code="${authCode}"]`).closest('.buy-item').find('qdbtn'));
                    console.log("已经触发抢定"+key);
                 }
                 console.log("任务执行中key="+key);
             });
       }, 1000);

})();

function cssqding(e){
    $(e).attr('type',1);
    $(e).text("自动抢定中...");
    $(e).css('background', '#388e3c');
    $(e).closest('.buy-item').find('.hours,.minutes').prop('disabled',true );
}
function cssqdstar(e){
    $(e).attr('type',0);
    $(e).text("开始定时抢");
    $(e).css('background', '#694c43');
    $(e).closest('.buy-item').find('.hours,.minutes').prop('disabled',false );
}