1 Star 0 Fork 8

铭萱2021/55a14dab8766eedda13268e931a4d09e

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
get-jd-coupon.js 5.02 KB
一键复制 编辑 原始数据 按行查看 历史
zhanglianxin 提交于 2019-11-10 01:03 . fix scroll
// ==UserScript==
// @name get-jd-coupon
// @namespace http://tampermonkey.net/
// @version 0.1
// @description get specific coupons
// @author Coolman
// @match https://birth.m.jd.com/babelDiy/Zeus/3DMauchBtuvSfu5XwMW1hgdZeLxr/index.html*
// @grant none
// ==/UserScript==
(() => {
'use strict';
// 超级百亿补贴
// https://birth.m.jd.com/babelDiy/Zeus/3DMauchBtuvSfu5XwMW1hgdZeLxr/index.html
const keywords = ['鸡蛋', '爱媛38号果冻橙柑橘', '京觅 精品琯溪蜜柚', '脱脂纯牛奶',
'电饭煲电饭锅', '金龙鱼 长粒香大米 东北大米 5kg', '云南玉溪高山冰糖橙',
'陕西徐香绿心猕猴桃', '洁柔(C&S)抽纸',
]; // 想要的关键词
const truePrice = 9.9; // 券后九块九的我都要辣!!
const moment = '2019-11-09 14:00'; // 抢购时间
const ms = +new Date(moment); // 抢购时间毫秒值
const pre = +new Date(ms - 1000 * 10); // 提前 10 秒钟准备
const end = +new Date(ms + 1000 * 60 * 3); // 三分钟之后结束
const reloadedKey = 'reloaded' + moment;
const getAllLessThan = (price) => {
const items = document.querySelectorAll('div.BillionSubsidy-content-item-coupon');
for (let item of items) {
const name = item.querySelector('div.BillionSubsidy-content-item-coupon-name');
const truePrice = item.querySelector('div.BillionSubsidy-content-item-coupon-true-price-container > span');
if (truePrice.innerText <= price) {
console.log(`matched: [${ name.innerText }]`);
const right = item.querySelector('div.BillionSubsidy-content-item-coupon-right-container');
const down = item.querySelector('div.BillionSubsidy-content-item-coupon-right-down');
if (right.innerText.includes('限量') && !right.innerText.includes('开抢')) {
if (down) {
console.info(`--- ${ name.innerText } ---`);
// down.click();
// down.remove();
console.info(`*** u get it ***`);
}
}
}
}
}
const doTask = () => {
const items = document.querySelectorAll('div.BillionSubsidy-content-item-coupon');
for (let item of items) {
const name = item.querySelector('div.BillionSubsidy-content-item-coupon-name');
for (let key of keywords) {
if (name.innerText.includes(key)) {
console.log(`key: [${ key }], matched: [${ name.innerText }]`);
const right = item.querySelector('div.BillionSubsidy-content-item-coupon-right-container');
const down = item.querySelector('div.BillionSubsidy-content-item-coupon-right-down');
if (right.innerText.includes('限量') && !right.innerText.includes('开抢')) {
console.log(`wanna [${ key }], matched ${ name.innerText }`);
if (down) {
console.info(`--- ${ name.innerText } ---`);
// down.click();
// down.remove();
console.info(`*** u get it ***`);
}
}
}
}
}
};
// 滚动百亿补贴列表,使其全部加载出来
document.onreadystatechange = () => {
if ('complete' == document.readyState) {
document.querySelector('div.container') && setTimeout(() => {
document.querySelector('div.container').scrollIntoView(false);
}, 600);
}
};
// 获取服务器时间戳
const getServerTime = async () => {
return +new Date((await fetch(`?${ +new Date() }`, {
method: 'head',
}).then((res) => res.headers)).get("Date"));
};
const intervalId = setInterval(() => {
console.log(`it is running...`);
getServerTime().then(now => {
console.log(`server time: ${ now }`);
// 结束了
if (now >= end) {
console.info(`it's time to end.`);
clearInterval(intervalId);
return;
}
// 准备时间
if (now >= pre) {
console.log(`it's time to go...`);
const reloadedValue = sessionStorage.getItem(reloadedKey);
if (now >= ms) {
// 到点页面不会自动刷新,需要手动加载一下
if ('true' != reloadedValue) {
sessionStorage.setItem(reloadedKey, 'true');
location.reload();
}
doTask();
// getAllLessThan(truePrice);
} else {
if ('false' != reloadedValue) {
sessionStorage.setItem(reloadedKey, 'false');
}
}
}
});
}, 800);
})();
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/doudabao_admin/55a14dab8766eedda13268e931a4d09e.git
git@gitee.com:doudabao_admin/55a14dab8766eedda13268e931a4d09e.git
doudabao_admin
55a14dab8766eedda13268e931a4d09e
55a14dab8766eedda13268e931a4d09e
master

搜索帮助