您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
每天0点、10点、15点、18点、20点和22点自动抢京东优惠券
// ==UserScript== // @name 京东自动抢话费券 // @license MIT // @version 1.1 // @description 每天0点、10点、15点、18点、20点和22点自动抢京东优惠券 // @author Bingo95 // @match https://h5static.m.jd.com/mall/active/3aEzDU3fpqYYtnNTFPAkyY3tRY8Y/index.html* // @grant none // @namespace https://greasyfork.org/users/1312821 // ==/UserScript== (function() { 'use strict'; // 创建UI元素 function createUI() { // 创建状态显示 const statusDisplay = document.createElement('div'); statusDisplay.id = 'coupon-status'; statusDisplay.style.cssText = ` position: fixed; top: 10px; left: 10px; padding: 10px 15px; background: rgba(0, 0, 0, 0.7); color: #fff; border-radius: 5px; font-size: 14px; z-index: 9999; `; // 创建倒计时显示 const countdownDisplay = document.createElement('div'); countdownDisplay.id = 'countdown-display'; countdownDisplay.style.cssText = ` position: fixed; top: 60px; left: 10px; padding: 10px 15px; background: rgba(0, 0, 0, 0.7); color: #fff; border-radius: 5px; font-size: 14px; z-index: 9999; `; // 创建手动抢券按钮 const grabButton = document.createElement('button'); grabButton.textContent = '立即抢券'; grabButton.style.cssText = ` position: fixed; top: 10px; right: 10px; padding: 0 20px; height: 40px; border: none; border-radius: 20px; background: #e93b3d; color: #fff; font-size: 16px; cursor: pointer; z-index: 9999; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); `; document.body.appendChild(statusDisplay); document.body.appendChild(countdownDisplay); document.body.appendChild(grabButton); return { statusDisplay, countdownDisplay, grabButton }; } // 获取下一个抢券时间 function getNextGrabTime() { const now = new Date(); const today0am = new Date(now); today0am.setHours(0, 0, 0, 0); const today10am = new Date(now); today10am.setHours(10, 0, 0, 0); const today3pm = new Date(now); today3pm.setHours(15, 0, 0, 0); const today6pm = new Date(now); today6pm.setHours(18, 0, 0, 0); const today8pm = new Date(now); today8pm.setHours(20, 0, 0, 0); const today10pm = new Date(now); today10pm.setHours(22, 0, 0, 0); const tomorrow0am = new Date(now); tomorrow0am.setDate(now.getDate() + 1); tomorrow0am.setHours(0, 0, 0, 0); const tomorrow10am = new Date(now); tomorrow10am.setDate(now.getDate() + 1); tomorrow10am.setHours(10, 0, 0, 0); if (now < today0am) { return { time: today0am, label: "今天0:00" }; } else if (now < today10am) { return { time: today10am, label: "今天10:00" }; } else if (now < today3pm) { return { time: today3pm, label: "今天15:00" }; } else if (now < today6pm) { return { time: today6pm, label: "今天18:00" }; } else if (now < today8pm) { return { time: today8pm, label: "今天20:00" }; } else if (now < today10pm) { return { time: today10pm, label: "今天22:00" }; } else if (now < tomorrow0am) { return { time: tomorrow0am, label: "明天0:00" }; } else { return { time: tomorrow10am, label: "明天10:00" }; } } // 更新倒计时 function updateCountdown(countdownDisplay) { const nextGrab = getNextGrabTime(); const now = new Date(); const diff = nextGrab.time - now; if (diff <= 0) { grabCoupon(); setTimeout(() => updateCountdown(countdownDisplay), 1000); return; } const hours = Math.floor(diff / (1000 * 60 * 60)); const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)); const seconds = Math.floor((diff % (1000 * 60)) / 1000); countdownDisplay.textContent = `${nextGrab.label}抢券倒计时: ${hours}时${minutes}分${seconds}秒`; setTimeout(() => updateCountdown(countdownDisplay), 1000); } // 抢券函数 function grabCoupon() { const statusDisplay = document.getElementById('coupon-status'); try { const couponWrapper = document.querySelector('.coupon_wrapper'); if (!couponWrapper) { statusDisplay.textContent = "未找到优惠券元素"; return; } statusDisplay.textContent = "正在抢券..."; couponWrapper.click(); setTimeout(() => { statusDisplay.textContent = "抢券操作已执行,即将刷新页面..."; // 抢券后3秒刷新页面 setTimeout(() => { location.reload(); }, 3000); }, 1000); } catch (error) { statusDisplay.textContent = `抢券出错: ${error.message}`; console.error("抢券出错:", error); } } // 检查是否到达抢券时间 function checkGrabTime() { const now = new Date(); const hour = now.getHours(); const minute = now.getMinutes(); const second = now.getSeconds(); // 在0:00:00、10:00:00、15:00:00、18:00:00、20:00:00和22:00:00准点抢券 if ((hour === 0 || hour === 10 || hour === 15 || hour === 18 || hour === 20 || hour === 22) && minute === 0 && second === 0) { grabCoupon(); } // 每秒检查一次 setTimeout(checkGrabTime, 1000); } // 初始化 function init() { const { statusDisplay, countdownDisplay, grabButton } = createUI(); // 添加手动抢券按钮事件 grabButton.addEventListener('click', grabCoupon); // 开始倒计时 updateCountdown(countdownDisplay); // 开始检查抢券时间 checkGrabTime(); statusDisplay.textContent = "京东自动抢券脚本已启动"; } // 等待页面加载完成后执行 if (document.readyState === 'complete') { init(); } else { window.addEventListener('load', init); } })();