This commit is contained in:
Faker 2022-09-14 10:25:48 +08:00
parent 49735986d4
commit 1d6f4efe97
4 changed files with 268 additions and 284 deletions

View File

@ -1,55 +1,35 @@
/* /*
https://github.com/feverrun/my_scripts
如果想自己设置token,则设置以下的变量
export dpqd_token="token1&token2&token3..."
店铺签到各类店铺签到有新的店铺直接添加token即可 店铺签到各类店铺签到有新的店铺直接添加token即可
============Quantumultx=============== 店铺签到的定时可采取随机定时,每天运行一次即可
[task_local] cron "15 0,4 * * *" script-path=jd_dpqd.js,tag=店铺签到
#店铺签到
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 $ = new Env('店铺签到');
const notify = $.isNode() ? require('./sendNotify') : ''; const notify = $.isNode() ? require('./sendNotify') : '';
//Node.js用户请在jdCookie.js处填写京东ck;
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
//IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [], cookie = '', allMessage = '', message; let cookiesArr = [], cookie = '', allMessage = '', message;
const JD_API_HOST = 'https://api.m.jd.com/api?appid=interCenter_shopSign'; const JD_API_HOST = 'https://api.m.jd.com/api?appid=interCenter_shopSign';
let activityId='' let activityId = ''
let vender='' let vender = ''
let num=0 let num = 0
let shopname='' let token = []
const token = [ let tokens = [];
"C71B8EE9D6C7F2B0DF3AF65E3829DAA4", let dpqd_token = ''
"91A41C0A7B4F22EDF887D47F168555FD",
"42061FBDA6C967439D321F7D486421ED",
"2DC699241BEA638476AD834668CE68C7",
"8500B16BACB6E88500C0F24A1106EF26",
"98A309279322102F1C0B73D19FF28E19",
"6E866708B29EB404975EF6692F2B77D6",
"F8771E215FB565AC5CB001AD68870BFA",
"E92431BDF2EE7E630C48B4FB1E440427",
"A49EE21FD3AAAF20F71BDF96A72E7326",
"7A43D1847847DD1857A2BA1F27FBF638",
"D07F1272CA61B9D4FD45082B19DADC54",
"C2F1EE1845057F573BA89C4CB370EB56",
"FBFF1D26CD47CA07DE296A8D5C7464A5",
"8500B16BACB6E88500C0F24A1106EF26",
"A91FA0869F8D6DC14D824F85176BFAC0",
"B70A83AD9737E1B3DD78FC1A69F35323",
"0CE352C49E77D6354F8F12DD5D6745ED"
]
// const token = []
if ($.isNode()) { if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => { Object.keys(jdCookieNode).forEach((item) => {
cookiesArr.push(jdCookieNode[item]) cookiesArr.push(jdCookieNode[item])
}) })
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; 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 { } else {
let cookiesData = $.getdata('CookiesJD') || "[]"; let cookiesData = $.getdata('CookiesJD') || "[]";
cookiesData = jsonParse(cookiesData); cookiesData = jsonParse(cookiesData);
@ -65,6 +45,34 @@ 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"}); $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
return; return;
} }
// token = await getRemoteData();
// token = token ? token : [];
token = [
"C71B8EE9D6C7F2B0DF3AF65E3829DAA4",
"CDE42328CFCB396AF93D28520AE10A72",
"F85E04D01415868AB0790FDBC3409F10",
"2DC699241BEA638476AD834668CE68C7",
"8500B16BACB6E88500C0F24A1106EF26",
"98A309279322102F1C0B73D19FF28E19",
"6E866708B29EB404975EF6692F2B77D6",
"F8771E215FB565AC5CB001AD68870BFA",
"E92431BDF2EE7E630C48B4FB1E440427",
"A49EE21FD3AAAF20F71BDF96A72E7326",
"7A43D1847847DD1857A2BA1F27FBF638",
"D07F1272CA61B9D4FD45082B19DADC54",
"C2F1EE1845057F573BA89C4CB370EB56",
"FBFF1D26CD47CA07DE296A8D5C7464A5",
"8500B16BACB6E88500C0F24A1106EF26",
"A91FA0869F8D6DC14D824F85176BFAC0",
"B70A83AD9737E1B3DD78FC1A69F35323",
"0CE352C49E77D6354F8F12DD5D6745ED"
];
token = dpqd_token ? tokens : token;
await $.wait(parseInt(Math.random(2500) + 250, 10));
for (let i = 0; i < cookiesArr.length; i++) { for (let i = 0; i < cookiesArr.length; i++) {
if (cookiesArr[i]) { if (cookiesArr[i]) {
cookie = cookiesArr[i]; cookie = cookiesArr[i];
@ -73,18 +81,12 @@ if ($.isNode()) {
$.isLogin = true; $.isLogin = true;
$.nickName = ''; $.nickName = '';
message = ''; message = '';
//await TotalBean();
console.log(`\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`); 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 dpqd()
await showMsg() await showMsg()
await $.wait(1500) await $.wait(1000)
} }
} }
if ($.isNode() && allMessage) { if ($.isNode() && allMessage) {
@ -99,23 +101,27 @@ if ($.isNode()) {
}) })
//开始店铺签到 //开始店铺签到
async function dpqd(){ async function dpqd() {
for (var j = 0; j < token.length; j++) { for (var j = 0; j < token.length; j++) {
num=j+1 num = j + 1
if (token[j]=='') {continue} if (token[j] == '') {
getUA() continue
}
await getvenderId(token[j]) await getvenderId(token[j])
if (vender=='') {continue} if (vender == '') {
continue
}
await getvenderName(vender) await getvenderName(vender)
await getActivityInfo(token[j],vender) await getActivityInfo(token[j], vender)
await signCollectGift(token[j],vender,activityId) await signCollectGift(token[j], vender, activityId)
await taskUrl(token[j],vender) await taskUrl(token[j], vender)
} }
} }
//获取店铺ID //获取店铺ID
function getvenderId(token) { async function getvenderId(token) {
return new Promise(resolve => { await $.wait(300);
return new Promise(async resolve => {
const options = { 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`, 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: { headers: {
@ -124,10 +130,10 @@ function getvenderId(token) {
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"cookie": cookie, "cookie": cookie,
"referer": 'https://h5.m.jd.com/', "referer": 'https://h5.m.jd.com/',
"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`
// "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) => { $.get(options, (err, resp, data) => {
try { try {
if (err) { if (err) {
@ -136,12 +142,12 @@ function getvenderId(token) {
} else { } else {
//console.log(data) //console.log(data)
data = JSON.parse(/{(.*)}/g.exec(data)[0]) data = JSON.parse(/{(.*)}/g.exec(data)[0])
if (data.code==402) { if (data.code == 402) {
vender='' vender = ''
console.log(``+num+`个店铺签到活动已失效`) console.log(`` + num + `个店铺签到活动已失效`)
message +=``+num+`个店铺签到活动已失效\n` message += `` + num + `个店铺签到活动已失效\n`
}else{ } else {
vender=data.data.venderId vender = data.data.venderId
} }
} }
} catch (e) { } catch (e) {
@ -154,8 +160,9 @@ function getvenderId(token) {
} }
//获取店铺名称 //获取店铺名称
function getvenderName(venderId) { async function getvenderName(venderId) {
return new Promise(resolve => { await $.wait(200);
return new Promise(async resolve => {
const options = { const options = {
url: `https://wq.jd.com/mshop/QueryShopMemberInfoJson?venderId=${venderId}`, url: `https://wq.jd.com/mshop/QueryShopMemberInfoJson?venderId=${venderId}`,
headers: { headers: {
@ -163,10 +170,10 @@ function getvenderName(venderId) {
"accept-encoding": "gzip, deflate, br", "accept-encoding": "gzip, deflate, br",
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"cookie": cookie, "cookie": cookie,
"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`
// "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) => { $.get(options, (err, resp, data) => {
try { try {
if (err) { if (err) {
@ -176,8 +183,8 @@ function getvenderName(venderId) {
//console.log(data) //console.log(data)
data = JSON.parse(data) data = JSON.parse(data)
shopName = data.shopName shopName = data.shopName
console.log(``+shopName+``) console.log(`` + shopName + ``)
message +=``+shopName+`` message += `` + shopName + ``
} }
} catch (e) { } catch (e) {
$.logErr(e, resp); $.logErr(e, resp);
@ -190,8 +197,9 @@ function getvenderName(venderId) {
//获取店铺活动信息 //获取店铺活动信息
function getActivityInfo(token,venderId) { async function getActivityInfo(token, venderId) {
return new Promise(resolve => { await $.wait(400);
return new Promise(async resolve => {
const options = { 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`, 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: { headers: {
@ -200,10 +208,10 @@ function getActivityInfo(token,venderId) {
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"cookie": cookie, "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`, "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": $.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`
// "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) => { $.get(options, (err, resp, data) => {
try { try {
if (err) { if (err) {
@ -213,13 +221,13 @@ function getActivityInfo(token,venderId) {
} else { } else {
//console.log(data) //console.log(data)
data = JSON.parse(/{(.*)}/g.exec(data)[0]) data = JSON.parse(/{(.*)}/g.exec(data)[0])
activityId=data.data.id activityId = data.data.id
//console.log(data) //console.log(data)
let mes=''; let mes = '';
for (let i = 0; i < data.data.continuePrizeRuleList.length; i++) { for (let i = 0; i < data.data.continuePrizeRuleList.length; i++) {
const level=data.data.continuePrizeRuleList[i].level const level = data.data.continuePrizeRuleList[i].level
const discount=data.data.continuePrizeRuleList[i].prizeList[0].discount const discount = data.data.continuePrizeRuleList[i].prizeList[0].discount
mes += "签到"+level+"天,获得"+discount+'豆' mes += "签到" + level + "天,获得" + discount + '豆'
} }
// console.log(message+mes+'\n') // console.log(message+mes+'\n')
// message += mes+'\n' // message += mes+'\n'
@ -234,8 +242,9 @@ function getActivityInfo(token,venderId) {
} }
//店铺签到 //店铺签到
function signCollectGift(token,venderId,activitytemp) { async function signCollectGift(token, venderId, activitytemp) {
return new Promise(resolve => { await $.wait(500);
return new Promise(async resolve => {
const options = { 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`, 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: { headers: {
@ -244,10 +253,10 @@ function signCollectGift(token,venderId,activitytemp) {
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"cookie": cookie, "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`, "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": $.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`
// "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) => { $.get(options, (err, resp, data) => {
try { try {
if (err) { if (err) {
@ -267,8 +276,9 @@ function signCollectGift(token,venderId,activitytemp) {
} }
//店铺获取签到信息 //店铺获取签到信息
function taskUrl(token,venderId) { async function taskUrl(token, venderId) {
return new Promise(resolve => { await $.wait(300);
return new Promise(async resolve => {
const options = { 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`, 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: { headers: {
@ -277,10 +287,10 @@ function taskUrl(token,venderId) {
"accept-language": "zh-CN,zh;q=0.9", "accept-language": "zh-CN,zh;q=0.9",
"cookie": cookie, "cookie": cookie,
"referer": `https://h5.m.jd.com/`, "referer": `https://h5.m.jd.com/`,
"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`
// "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) => { $.get(options, (err, resp, data) => {
try { try {
if (err) { if (err) {
@ -289,8 +299,8 @@ function taskUrl(token,venderId) {
} else { } else {
//console.log(data) //console.log(data)
data = JSON.parse(/{(.*)}/g.exec(data)[0]) data = JSON.parse(/{(.*)}/g.exec(data)[0])
console.log(`已签到:`+data.data.days+``) console.log(`已签到:` + data.data.days + ``)
message +=`已签到:`+data.data.days+`\n` message += `已签到:` + data.data.days + `\n`
} }
} catch (e) { } catch (e) {
$.logErr(e, resp); $.logErr(e, resp);
@ -308,51 +318,6 @@ 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) { function jsonParse(str) {
if (typeof str == "string") { if (typeof str == "string") {
try { try {
@ -365,16 +330,38 @@ function jsonParse(str) {
} }
} }
function randomString(e) { function getRemoteData()
e = e || 32; {
let t = "abcdef0123456789", a = t.length, n = ""; return new Promise(resolve => {
for (i = 0; i < e; i++) const options = {
n += t.charAt(Math.floor(Math.random() * a)); url: `https://feverrun.coding.net/p/feverrun/d/cdn/git/raw/master/dpqd.json`,
return n headers: {
} "accept": "application/json",
"accept-encoding": "gzip, deflate, br",
function getUA() { "accept-language": "zh-CN,zh;q=0.9",
$.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;` "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 || []);
}
})
})
} }
// prettier-ignore // prettier-ignore

File diff suppressed because one or more lines are too long

View File

@ -1,16 +1,16 @@
/* /*
* 2022-07-20 修复获取试用列表风控问题
* 2022-08-12 修复申请试用风控更换nolan接口 * 2022-08-12 修复申请试用风控更换nolan接口
* 2022-9-5 某个商品timeout继续下一个不中断 * 如需运行请自行添加环境变量JD_TRY值填 true 即可运行
* By https://github.com/6dylan6/jdpro/ * 上一作者说了每天最多300个商店总上限为500个jd_unsubscribe.js我已更新为批量取关版
* 基于X1a0He版本修改 * 请提前取关至少250个商店确保京东试用脚本正常运行
* @Address: https://github.com/X1a0He/jd_scripts_fixed/blob/main/jd_try_xh.js
如需运行请自行添加环境变量JD_TRY="true" 即可运行
脚本是否耗时只看args_xh.maxLength的大小申请数量默认50个申请100个差不多15分钟 脚本是否耗时只看args_xh.maxLength的大小申请数量默认50个申请100个差不多15分钟
上一作者说每天申请上限300个自测没有申请过上限关注店铺上限500个 上一作者说每天申请上限300个自测没有申请过上限关注店铺上限500个
关注店铺满了就无法继续申请可用批量取关店铺取消关注 关注店铺满了就无法继续申请可用批量取关店铺取消关注
部分环境变量说明详细请参考58行往下 部分环境变量说明详细请参考58行往下
export JD_TRY="true"是否允许默认false
export JD_TRY_PASSZC="false" #不过滤种草官类试用默认true过滤 export JD_TRY_PASSZC="false" #不过滤种草官类试用默认true过滤
export JD_TRY_MAXLENGTH="50" #商品数组的最大长度默认50个 export JD_TRY_MAXLENGTH="50" #商品数组的最大长度默认50个
export JD_TRY_PRICE="XX"#商品原价格大于XX才申请默认20 export JD_TRY_PRICE="XX"#商品原价格大于XX才申请默认20
@ -19,13 +19,13 @@ export JD_TRY_APPLYNUMFILTER="10000" #过滤大于设定值的已申请人数
export JD_TRY_MINSUPPLYNUM="1" #最小提供数量 export JD_TRY_MINSUPPLYNUM="1" #最小提供数量
export JD_TRY_SENDNUM="10" #每隔多少账号发送一次通知默认为4 export JD_TRY_SENDNUM="10" #每隔多少账号发送一次通知默认为4
export JD_TRY_UNIFIED="false" 默认采用不同试用组 export JD_TRY_UNIFIED="false" 默认采用不同试用组
export JD_TRY_NUM="5" 最多跑多少个CK默认10 export JD_TRY_NUM="7" 最多跑多少个CK默认10
定时自定义能用多久随缘了 cron "1 1 1 1 1" jd_try.js
*/ */
const $ = new Env('京东试用') const $ = new Env('京东试用')
const URL = 'https://api.m.jd.com/client.action' const URL = 'https://api.m.jd.com/client.action'
let trialActivityIdList = [] let trialActivityIdList = []
let trialActivityTitleList = [] let trialActivityTitleList = []
let notifyMsg = '' let notifyMsg = ''
@ -41,19 +41,18 @@ $.getNum = 0;
$.try = true; $.try = true;
$.sentNum = 0; $.sentNum = 0;
$.cookiesArr = [] $.cookiesArr = []
//默认的过滤关键词
$.innerKeyWords = $.innerKeyWords =
[ [
"幼儿园", "教程", "英语", "辅导", "培训", "幼儿园", "教程", "英语", "辅导", "培训",
"孩子", "小学", "成人用品", "套套", "情趣", "孩子", "小学", "成人用品", "套套", "情趣",
"自慰", "阳具", "飞机杯", "男士用品", "女士用品", "自慰", "阳具", "飞机杯", "男士用品", "女士用品",
"内衣", "高潮", "避孕", "乳腺", "肛塞", "肛门", "内衣", "高潮", "避孕", "乳腺", "肛塞", "肛门",
"宝宝", "芭比", "娃娃", "男用", "宝宝", "玩具", "芭比", "娃娃", "男用",
"女用", "神油", "足力健", "老年", "老人", "女用", "神油", "足力健", "老年", "老人",
"宠物", "饲料", "丝袜", "黑丝", "磨脚", "宠物", "饲料", "丝袜", "黑丝", "磨脚",
"脚皮", "除臭", "性感", "内裤", "跳蛋", "脚皮", "除臭", "性感", "内裤", "跳蛋",
"安全套", "龟头", "阴道", "阴部", "手机卡", "电话卡", "流量卡", "安全套", "龟头", "阴道", "阴部", "手机卡", "电话卡", "流量卡",
"习题", "试卷", "玉坠","和田玉","习题","试卷","手机壳","钢化膜"
] ]
//下面很重要,遇到问题请把下面注释看一遍再来问 //下面很重要,遇到问题请把下面注释看一遍再来问
let args_xh = { let args_xh = {
@ -188,8 +187,7 @@ let args_xh = {
!(async () => { !(async () => {
await $.wait(500) await $.wait(500)
// 如果你要运行京东试用这个脚本,麻烦你把环境变量 JD_TRY 设置为 true // 如果你要运行京东试用这个脚本,麻烦你把环境变量 JD_TRY 设置为 true
if (process.env.JD_TRY && process.env.JD_TRY === 'true') { if (1) {
$.log('\n遇到问题请先看脚本内注释解决不了可联系https://t.me/dylan_jdpro\n');
await requireConfig() await requireConfig()
if (!$.cookiesArr[0]) { if (!$.cookiesArr[0]) {
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {
@ -205,15 +203,15 @@ let args_xh = {
$.index = i + 1; $.index = i + 1;
$.isLogin = true; $.isLogin = true;
$.nickName = ''; $.nickName = '';
await totalBean(); //await totalBean();
console.log(`\n开始【京东账号${$.index}${$.nickName || $.UserName}\n`); console.log(`\n开始【京东账号${$.index}${$.nickName || $.UserName}\n`);
$.except = false; $.except = false;
if (args_xh.except.includes($.UserName)) { if(args_xh.except.includes($.UserName)){
console.log(`跳过账号:${$.nickName || $.UserName}`) console.log(`跳过账号:${$.nickName || $.UserName}`)
$.except = true; $.except = true;
continue continue
} }
if (!$.isLogin) { if(!$.isLogin){
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { $.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" "open-url": "https://bean.m.jd.com/bean/signIndex.action"
}); });
@ -226,7 +224,7 @@ let args_xh = {
$.nowPage = 1; $.nowPage = 1;
$.nowItem = 1; $.nowItem = 1;
$.retrynum = 0 $.retrynum = 0
$.jda = '__jda=' + _jda('1xxxxxxxx.164xxxxxxxxxxxxxxxxxxx.164xxxxxxx.165xxxxxx.165xxxxxx.1xx') $.jda='__jda='+_jda('1xxxxxxxx.164xxxxxxxxxxxxxxxxxxx.164xxxxxxx.165xxxxxx.165xxxxxx.1xx')
if (!args_xh.unified) { if (!args_xh.unified) {
trialActivityIdList = [] trialActivityIdList = []
trialActivityTitleList = [] trialActivityTitleList = []
@ -256,11 +254,11 @@ let args_xh = {
await $.wait(2000); await $.wait(2000);
for (let i = 0; i < trialActivityIdList.length && $.isLimit === false; i++) { for (let i = 0; i < trialActivityIdList.length && $.isLimit === false; i++) {
if ($.isLimit) { if ($.isLimit) {
console.log("试用上限"); console.log("试用上限")
break break
} }
if ($.isForbidden) { console.log('403了跳出'); break }; if ($.isForbidden) { console.log('403了跳出'); break }
await try_apply(trialActivityTitleList[i], trialActivityIdList[i]); await try_apply(trialActivityTitleList[i], trialActivityIdList[i])
//console.log(`间隔等待中,请等待 ${args_xh.applyInterval} ms\n`) //console.log(`间隔等待中,请等待 ${args_xh.applyInterval} ms\n`)
const waitTime = generateRandomInteger(args_xh.applyInterval, 9000); const waitTime = generateRandomInteger(args_xh.applyInterval, 9000);
console.log(`随机等待${waitTime}ms后继续`); console.log(`随机等待${waitTime}ms后继续`);
@ -499,7 +497,8 @@ function try_feedsList(tabId, page) {
}) })
} }
async function try_apply(title, activityId) { function try_apply(title, activityId) {
return new Promise(async (resolve, reject) => {
console.log(`申请试用商品提交中...`) console.log(`申请试用商品提交中...`)
args_xh.printLog ? console.log(`商品:${title}`) : '' args_xh.printLog ? console.log(`商品:${title}`) : ''
args_xh.printLog ? console.log(`id为${activityId}`) : '' args_xh.printLog ? console.log(`id为${activityId}`) : ''
@ -523,7 +522,6 @@ async function try_apply(title, activityId) {
'Content-Type': 'application/x-www-form-urlencoded', 'Content-Type': 'application/x-www-form-urlencoded',
}, },
} }
return new Promise(async (resolve, reject) => {
$.get(opt, (err, resp, data) => { $.get(opt, (err, resp, data) => {
try { try {
if (err) { if (err) {
@ -739,13 +737,12 @@ function geth5st(body) {
try { try {
if (err) { if (err) {
console.log(JSON.stringify(err)); console.log(JSON.stringify(err));
console.log('连接服务失败\n');
} else { } else {
data = JSON.parse(data); data = JSON.parse(data);
if (data.code == 200) { if (data.code == 200) {
str = data.body; str = data.body;
} else { } else {
$.log('获取失败',data.msg); $.log('连接服务失败',data.msg);
} }
} }
} catch (e) { } catch (e) {

File diff suppressed because one or more lines are too long