This commit is contained in:
Faker 2022-09-09 10:31:20 +08:00
parent 26a1ae9fa7
commit 9c602a0b71
2 changed files with 148 additions and 135 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,35 +1,57 @@
/*
https://github.com/feverrun/my_scripts
如果想自己设置token,则设置以下的变量
export dpqd_token="token1&token2&token3..."
店铺签到各类店铺签到有新的店铺直接添加token即可
店铺签到的定时可采取随机定时,每天运行一次即可
cron "15 0,4 * * *" script-path=jd_dpqd.js,tag=店铺签到
============Quantumultx===============
[task_local]
#店铺签到
15 2,14 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_shop_sign.js, tag=店铺签到, enabled=true
===========Loon============
[Script]
cron "15 2,14 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_shop_sign.js,tag=店铺签到
============Surge=============
店铺签到 = type=cron,cronexp="15 2,14 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_shop_sign.js
===========小火箭========
店铺签到 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_shop_sign.jss, cronexpr="15 2,14 * * *", timeout=3600, enable=true
*/
const $ = new Env('店铺签到');
const notify = $.isNode() ? require('./sendNotify') : '';
//Node.js用户请在jdCookie.js处填写京东ck;
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
//IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [], cookie = '', allMessage = '', message;
const JD_API_HOST = 'https://api.m.jd.com/api?appid=interCenter_shopSign';
let activityId = ''
let vender = ''
let num = 0
let token = []
let tokens = [];
let dpqd_token = ''
let activityId=''
let vender=''
let num=0
let shopname=''
const token = [
"1F00BB7363612C2383557E0270B2970E",
"91A41C0A7B4F22EDF887D47F168555FD",
"FAE250D8456681EDBD6BB57AF1FC7BC2",
"ED130D17BCE3FA96DAD611A2A2ABD170",
"8500B16BACB6E88500C0F24A1106EF26",
"CE2645E1DB3648186A51CE4B9C0A1EF9",
"E2BBCFB0AB8EC48F003B86C4323E2717",
"07E913C217F4A260A2525793769E0FA7",
"E92431BDF2EE7E630C48B4FB1E440427",
"F30279867E8D74DF33E90DAC33738165",
"7A43D1847847DD1857A2BA1F27FBF638",
"D07F1272CA61B9D4FD45082B19DADC54",
"10D78DB822E2A8F13816A601E5729367",
"36B2476C222357AB2E08B9D7EE2A319A",
"1F34207EEB6D381E88F36F58FA260092",
"8500B16BACB6E88500C0F24A1106EF26",
"A91FA0869F8D6DC14D824F85176BFAC0",
"B70A83AD9737E1B3DD78FC1A69F35323",
"0CE352C49E77D6354F8F12DD5D6745ED",
"ED130D17BCE3FA96DAD611A2A2ABD170"
]
// const token = []
if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => {
cookiesArr.push(jdCookieNode[item])
})
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {};
dpqd_token = process.env.dpqd_token ? process.env.dpqd_token : '';
if (dpqd_token != '') {
tokens = dpqd_token.split('&');
}
} else {
let cookiesData = $.getdata('CookiesJD') || "[]";
cookiesData = jsonParse(cookiesData);
@ -45,36 +67,6 @@ if ($.isNode()) {
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
return;
}
// token = await getRemoteData();
// token = token ? token : [];
token = [
"1F00BB7363612C2383557E0270B2970E",
"91A41C0A7B4F22EDF887D47F168555FD",
"26DB859B3FE57E3C6361B892264BB055",
"ED130D17BCE3FA96DAD611A2A2ABD170",
"8500B16BACB6E88500C0F24A1106EF26",
"B8F0FA48DDC739BA4F5AEF821BFE9121",
"BAC43CC0A564B627C34DA11745AE7DC6",
"8066A55555BB082F4F8918D439B432C4",
"8C45E9DCFBF0086E78627FFDCF0A54E4",
"2559F6F396915BF6466A5E482CBEA81D",
"B8F0FA48DDC739BA4F5AEF821BFE9121",
"3E4ECDF47C7BE3CA16A4BA3B0AA78D5E",
"10D78DB822E2A8F13816A601E5729367",
"0CCDAE15A9752A480881361DB2198ACD",
"75E907EE0108AA1658692B8180C6CB02",
"8500B16BACB6E88500C0F24A1106EF26",
"A91FA0869F8D6DC14D824F85176BFAC0",
"B70A83AD9737E1B3DD78FC1A69F35323",
"DAA803812A89F93828536BFDED91E7BA",
"ED130D17BCE3FA96DAD611A2A2ABD170"
];
token = dpqd_token ? tokens : token;
await $.wait(parseInt(Math.random(2500) + 250, 10));
for (let i = 0; i < cookiesArr.length; i++) {
if (cookiesArr[i]) {
cookie = cookiesArr[i];
@ -83,12 +75,18 @@ if ($.isNode()) {
$.isLogin = true;
$.nickName = '';
message = '';
//await TotalBean();
console.log(`\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`);
if (!$.isLogin) {
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
if ($.isNode()) {
await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`);
}
continue
}
await dpqd()
await showMsg()
await $.wait(1000)
await $.wait(1500)
}
}
if ($.isNode() && allMessage) {
@ -103,27 +101,23 @@ if ($.isNode()) {
})
//开始店铺签到
async function dpqd() {
async function dpqd(){
for (var j = 0; j < token.length; j++) {
num = j + 1
if (token[j] == '') {
continue
}
num=j+1
if (token[j]=='') {continue}
getUA()
await getvenderId(token[j])
if (vender == '') {
continue
}
if (vender=='') {continue}
await getvenderName(vender)
await getActivityInfo(token[j], vender)
await signCollectGift(token[j], vender, activityId)
await taskUrl(token[j], vender)
await getActivityInfo(token[j],vender)
await signCollectGift(token[j],vender,activityId)
await taskUrl(token[j],vender)
}
}
//获取店铺ID
async function getvenderId(token) {
await $.wait(300);
return new Promise(async resolve => {
function getvenderId(token) {
return new Promise(resolve => {
const options = {
url: `https://api.m.jd.com/api?appid=interCenter_shopSign&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:%22%22}&jsonp=jsonp1000`,
headers: {
@ -132,10 +126,10 @@ async function getvenderId(token) {
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"cookie": cookie,
"referer": 'https://h5.m.jd.com/',
"User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
"User-Agent": $.UA
// "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
}
}
await $.wait(400);
$.get(options, (err, resp, data) => {
try {
if (err) {
@ -144,12 +138,12 @@ async function getvenderId(token) {
} else {
//console.log(data)
data = JSON.parse(/{(.*)}/g.exec(data)[0])
if (data.code == 402) {
vender = ''
console.log(`` + num + `个店铺签到活动已失效`)
message += `` + num + `个店铺签到活动已失效\n`
} else {
vender = data.data.venderId
if (data.code==402) {
vender=''
console.log(``+num+`个店铺签到活动已失效`)
message +=``+num+`个店铺签到活动已失效\n`
}else{
vender=data.data.venderId
}
}
} catch (e) {
@ -162,9 +156,8 @@ async function getvenderId(token) {
}
//获取店铺名称
async function getvenderName(venderId) {
await $.wait(200);
return new Promise(async resolve => {
function getvenderName(venderId) {
return new Promise(resolve => {
const options = {
url: `https://wq.jd.com/mshop/QueryShopMemberInfoJson?venderId=${venderId}`,
headers: {
@ -172,10 +165,10 @@ async function getvenderName(venderId) {
"accept-encoding": "gzip, deflate, br",
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"cookie": cookie,
"User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
"User-Agent": $.UA
// "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
}
}
await $.wait(600);
$.get(options, (err, resp, data) => {
try {
if (err) {
@ -185,8 +178,8 @@ async function getvenderName(venderId) {
//console.log(data)
data = JSON.parse(data)
shopName = data.shopName
console.log(`` + shopName + ``)
message += `` + shopName + ``
console.log(``+shopName+``)
message +=``+shopName+``
}
} catch (e) {
$.logErr(e, resp);
@ -199,9 +192,8 @@ async function getvenderName(venderId) {
//获取店铺活动信息
async function getActivityInfo(token, venderId) {
await $.wait(400);
return new Promise(async resolve => {
function getActivityInfo(token,venderId) {
return new Promise(resolve => {
const options = {
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:${venderId}}&jsonp=jsonp1005`,
headers: {
@ -210,10 +202,10 @@ async function getActivityInfo(token, venderId) {
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"cookie": cookie,
"referer": `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16105853541009626903&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_1001280291_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`,
"User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
"User-Agent": $.UA
// "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
}
}
await $.wait(700);
$.get(options, (err, resp, data) => {
try {
if (err) {
@ -223,13 +215,13 @@ async function getActivityInfo(token, venderId) {
} else {
//console.log(data)
data = JSON.parse(/{(.*)}/g.exec(data)[0])
activityId = data.data.id
activityId=data.data.id
//console.log(data)
let mes = '';
let mes='';
for (let i = 0; i < data.data.continuePrizeRuleList.length; i++) {
const level = data.data.continuePrizeRuleList[i].level
const discount = data.data.continuePrizeRuleList[i].prizeList[0].discount
mes += "签到" + level + "天,获得" + discount + '豆'
const level=data.data.continuePrizeRuleList[i].level
const discount=data.data.continuePrizeRuleList[i].prizeList[0].discount
mes += "签到"+level+"天,获得"+discount+'豆'
}
// console.log(message+mes+'\n')
// message += mes+'\n'
@ -244,9 +236,8 @@ async function getActivityInfo(token, venderId) {
}
//店铺签到
async function signCollectGift(token, venderId, activitytemp) {
await $.wait(500);
return new Promise(async resolve => {
function signCollectGift(token,venderId,activitytemp) {
return new Promise(resolve => {
const options = {
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_signCollectGift&body={%22token%22:%22${token}%22,%22venderId%22:688200,%22activityId%22:${activitytemp},%22type%22:56,%22actionType%22:7}&jsonp=jsonp1004`,
headers: {
@ -255,10 +246,10 @@ async function signCollectGift(token, venderId, activitytemp) {
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"cookie": cookie,
"referer": `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16105853541009626903&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_1001280291_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`,
"User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
"User-Agent": $.UA
// "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
}
}
await $.wait(800);
$.get(options, (err, resp, data) => {
try {
if (err) {
@ -278,9 +269,8 @@ async function signCollectGift(token, venderId, activitytemp) {
}
//店铺获取签到信息
async function taskUrl(token, venderId) {
await $.wait(300);
return new Promise(async resolve => {
function taskUrl(token,venderId) {
return new Promise(resolve => {
const options = {
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getSignRecord&body={%22token%22:%22${token}%22,%22venderId%22:${venderId},%22activityId%22:${activityId},%22type%22:56}&jsonp=jsonp1006`,
headers: {
@ -289,10 +279,10 @@ async function taskUrl(token, venderId) {
"accept-language": "zh-CN,zh;q=0.9",
"cookie": cookie,
"referer": `https://h5.m.jd.com/`,
"user-agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
"User-Agent": $.UA
// "user-agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
}
}
await $.wait(800);
$.get(options, (err, resp, data) => {
try {
if (err) {
@ -301,8 +291,8 @@ async function taskUrl(token, venderId) {
} else {
//console.log(data)
data = JSON.parse(/{(.*)}/g.exec(data)[0])
console.log(`已签到:` + data.data.days + ``)
message += `已签到:` + data.data.days + `\n`
console.log(`已签到:`+data.data.days+``)
message +=`已签到:`+data.data.days+`\n`
}
} catch (e) {
$.logErr(e, resp);
@ -320,6 +310,51 @@ async function showMsg() {
}
}
function TotalBean() {
return new Promise(async resolve => {
const options = {
"url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`,
"headers": {
"Accept": "application/json,text/plain, */*",
"Content-Type": "application/x-www-form-urlencoded",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-cn",
"Connection": "keep-alive",
"Cookie": cookie,
"Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2",
"User-Agent": `jdapp;android;9.3.5;10;3353234393134326-3673735303632613;network/wifi;model/MI 8;addressid/138719729;aid/3524914bc77506b1;oaid/274aeb3d01b03a22;osVer/29;appBuild/86390;psn/Mp0dlaZf4czQtfPNMEfpcYU9S/f2Vv4y|2255;psq/1;adk/;ads/;pap/JA2015_311210|9.3.5|ANDROID 10;osv/10;pv/2039.1;jdv/0|androidapp|t_335139774|appshare|QQfriends|1611211482018|1611211495;ref/com.jingdong.app.mall.home.JDHomeFragment;partner/jingdong;apprpd/Home_Main;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36`
}
}
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
if (data) {
data = JSON.parse(data);
if (data['retcode'] === 13) {
$.isLogin = false; //cookie过期
return
}
if (data['retcode'] === 0) {
$.nickName = data['base'].nickname;
} else {
$.nickName = $.UserName
}
} else {
console.log(`京东服务器返回空数据`)
}
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve();
}
})
})
}
function jsonParse(str) {
if (typeof str == "string") {
try {
@ -332,38 +367,16 @@ function jsonParse(str) {
}
}
function getRemoteData()
{
return new Promise(resolve => {
const options = {
url: `https://feverrun.coding.net/p/feverrun/d/cdn/git/raw/master/dpqd.json`,
headers: {
"accept": "application/json",
"accept-encoding": "gzip, deflate, br",
"accept-language": "zh-CN,zh;q=0.9",
"user-agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
},
timeout: 30000,
}
$.get(options, (err, resp, data) => {
console.log(`data:${data}`);
try {
if (err) {
console.log(`\n${$.name}: API查询请求失败 ‼️‼️`)
$.logErr(err);
} else {
data = data;
if(typeof(data) == 'string') {
data = JSON.parse(data)
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data || []);
}
})
})
function randomString(e) {
e = e || 32;
let t = "abcdef0123456789", a = t.length, n = "";
for (i = 0; i < e; i++)
n += t.charAt(Math.floor(Math.random() * a));
return n
}
function getUA() {
$.UA = `jdapp;iPhone;10.2.2;13.1.2;${randomString(40)};M/5.0;network/wifi;ADID/;model/iPhone8,1;addressid/2308460611;appBuild/167863;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;`
}
// prettier-ignore