open_card/jd_opencard141.js

831 lines
40 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
5.13-5.20 瓜分千万京豆 免费抽大奖 [gua_opencard130.js]
新增开卡脚本
一次性脚本
1.邀请一人20豆
2.开3组(共39张) 成功开1张 可能获得5京豆
每开完1组 可以抽1次奖
3.关注3豆
4.加购3京豆
(默认不加购 如需加购请设置环境变量[guaopencard_addSku130]为"true"
第一个账号助力作者 其他依次助力CK1
第一个CK失效会退出脚本
默认脚本不执行
如需执行脚本请设置环境变量
guaopencard130="true"
每个账号之间延迟 100=延迟100秒 0=延迟0秒会使用每3个账号延迟60秒
guaopenwait_All 所有
guaopenwait130="0"
All变量适用
————————————————
请求太频繁会被黑ip
过10分钟再执行
cron:0
============Quantumultx===============
[task_local]
# 5.13-5.20 瓜分千万京豆 免费抽大奖
0 https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard130.js, tag=5.13-5.20 瓜分千万京豆 免费抽大奖, enabled=true
*/
let guaopencard_addSku = "false"
let guaopencard = "true"
let guaopenwait = "1"
let guaopencard_draw = "0"
let token = process.env.h5token ? process.env.h5token : '' //h5token
const $ = new Env('5.13-5.20 瓜分千万京豆 免费抽大奖');
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
const notify = $.isNode() ? require('./sendNotify') : '';
//IOS等用户直接用NobyDa的jd cookie
$.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS;
//let cleanCart = ''
//if($.isNode()){
//try{
//const fs = require('fs');
//if (fs.existsSync('./cleancart_activity.js')) {
//cleanCart = require('./cleancart_activity');
//}
//}catch(e){
//}
//}
let cookiesArr = [],
cookie = '';
if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => {
cookiesArr.push(jdCookieNode[item])
})
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {};
} else {
cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item);
}
allMessage = ""
message = ""
$.hotFlag = false
$.outFlag = false
$.activityEnd = false
let lz_jdpin_token_cookie =''
let activityCookie =''
!(async () => {
if ($.isNode()) {
if(guaopencard+"" != "true"){
console.log('如需执行脚本请设置环境变量[guaopencard130]为"true"')
}
if(guaopencard+"" != "true"){
return
}
if (!token) {
console.log('请填写h5token');
return;
}
}
if (!cookiesArr[0]) {
$.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {
"open-url": "https://bean.m.jd.com/"
});
return;
}
$.activityId = "dz5d2b8478419089d38c2b31a2shop"
$.shareUuid = "cd8ca8d346a34226a58f9053cf16e416"
console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity?activityId=${$.activityId}&shareUuid=${$.shareUuid}`)
let shareUuidArr = [$.shareUuid,""]
let s = Math.floor((Math.random()*10))
let n = 0
if(s >= 1 && s<= 6) n = Math.floor((Math.random()*shareUuidArr.length))
$.shareUuid = shareUuidArr[n] ? shareUuidArr[n] : $.shareUuid
for (let i = 0; i < cookiesArr.length; i++) {
cookie = cookiesArr[i];
if (cookie) {
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
$.index = i + 1;
message = ""
$.bean = 0
$.hotFlag = false
$.nickName = '';
console.log(`\n\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`);
await getUA()
await run();
if(i == 0 && !$.actorUuid) break
if($.outFlag || $.activityEnd) break
}
}
if($.outFlag) {
let msg = '此ip已被限制请过10分钟后再执行脚本'
$.msg($.name, ``, `${msg}`);
if ($.isNode()) await notify.sendNotify(`${$.name}`, `${msg}`);
}
})()
.catch((e) => $.logErr(e))
.finally(() => $.done())
async function run() {
try {
$.hasEnd = true
$.endTime = 0
lz_jdpin_token_cookie = ''
$.Token = ''
$.Pin = ''
let flag = false
await takePostRequest('isvObfuscator');
if($.Token == ''){
console.log('获取[token]失败!')
return
}
await getCk()
if (activityCookie == '') {
console.log(`获取cookie失败`); return;
}
if($.activityEnd === true){
console.log('活动结束')
return
}
if($.outFlag){
console.log('此ip已被限制请过10分钟后再执行脚本\n')
return
}
await takePostRequest('getSimpleActInfoVo');
await takePostRequest('getMyPing');
if(!$.Pin){
console.log('获取[Pin]失败!')
return
}
await takePostRequest('accessLogWithAD');
await takePostRequest('getUserInfo');
await takePostRequest('activityContent');
if($.hotFlag) return
if(!$.actorUuid){
console.log('获取不到[actorUuid]退出执行,请重新执行')
return
}
if($.hasEnd === true || Date.now() > $.endTime){
$.activityEnd = true
console.log('活动结束')
return
}
await takePostRequest('drawContent');
await $.wait(1000)
$.openList = []
$.allOpenCard = false
await takePostRequest('checkOpenCard');
// console.log($.actorUuid)
// return
if($.allOpenCard == false){
console.log('开卡任务')
for(o of $.openList){
$.openCard = false
if(o.status == 0){
flag = true
$.joinVenderId = o.value
$.shopactivityId = ''
await getshopactivityId()
for (let i = 0; i < Array(7).length; i++) {
if (i > 0) console.log(`${i}次 重新开卡`)
await joinShop()
if ($.errorJoinShop.indexOf('活动太火爆,请稍后再试') == -1) {
break
}
}
if ($.errorJoinShop.indexOf('活动太火爆,请稍后再试') > -1) {
console.log("开卡失败❌ ,重新执行脚本")
allMessage += `【账号${$.index}】开卡失败❌ ,重新执行脚本\n`
} else {
$.joinStatus = true
}
await takePostRequest('drawContent');
await takePostRequest('checkOpenCard');
console.log()
await $.wait(parseInt(Math.random() * 1000 + 1500, 10))
}
}
await takePostRequest('activityContent');
}else{
console.log('已全部开卡')
}
if($.openCardScore1 == 1 && !$.outFlag){
$.startDraw = 1
flag = true
await takePostRequest('startDraw');
await $.wait(parseInt(Math.random() * 1000 + 1500, 10))
}
if($.openCardScore2 == 1 && !$.outFlag){
$.startDraw = 2
flag = true
await takePostRequest('startDraw');
await $.wait(parseInt(Math.random() * 1000 + 1500, 10))
}
if($.openCardScore3 == 1 && !$.outFlag){
$.startDraw = 3
flag = true
await takePostRequest('startDraw');
await $.wait(parseInt(Math.random() * 1000 + 1500, 10))
}
$.log("关注: " + $.followShop)
if(!$.followShop && !$.outFlag){
flag = true
$.followShopValue = 1
await takePostRequest('followShop');
await $.wait(parseInt(Math.random() * 1000 + 1500, 10))
}
$.log("加购: " + $.addSku)
if(!$.addSku && !$.outFlag){
if(guaopencard_addSku+"" == "true"){
flag = true
$.followShopValue = 2
//if(cleanCart){
//goodsArr = await cleanCart.clean(cookie,'https://jd.smiek.tk/jdcleancatr_21102717','')
// }
await takePostRequest('addSku');
await $.wait(parseInt(Math.random() * 1000 + 1500, 10))
//if(cleanCart && goodsArr !== false){
// await $.wait(parseInt(Math.random() * 1000 + 4000, 10))
// await cleanCart.clean(cookie,'https://jd.smiek.tk/jdcleancatr_21102717',goodsArr || [])
// }
//}else{
//console.log('如需加购请设置环境变量[guaopencard_addSku130]为"true"');
}
}
$.runFalag = true
if(flag){
await takePostRequest('activityContent');
}
await $.wait(parseInt(Math.random() * 1000 + 1500, 10))
await takePostRequest('getDrawRecordHasCoupon');
await takePostRequest('getShareRecord');
if($.outFlag){
console.log('此ip已被限制请过10分钟后再执行脚本\n')
return
}
console.log($.actorUuid)
console.log(`当前助力:${$.shareUuid}`)
if($.index == 1){
$.shareUuid = $.actorUuid
console.log(`后面的号都会助力:${$.shareUuid}`)
}
await $.wait(parseInt(Math.random() * 1000 + 2000, 10))
if(flag) await $.wait(parseInt(Math.random() * 1000 + 2000, 10))
if(guaopenwait){
if($.index != cookiesArr.length){
console.log(`等待${guaopenwait}`)
await $.wait(parseInt(guaopenwait, 10) * 1000)
}
}else{
if($.index % 3 == 0) console.log('休息1分钟别被黑ip了\n可持续发展')
if($.index % 3 == 0) await $.wait(parseInt(Math.random() * 5000 + 5000, 10))
}
} catch (e) {
console.log(e)
}
}
async function takePostRequest(type) {
if ($.outFlag) return
let domain = 'https://lzdz1-isv.isvjcloud.com';
let body = ``;
let method = 'POST'
let admJson = ''
switch (type) {
case 'isvObfuscator':
url = `https://api.m.jd.com/client.action?functionId=isvObfuscator`;
body = `body=%7B%22url%22%3A%22https%3A//lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&uuid=2e1e9953e65a9edf9c742ba36f07fb6b0fad9eb3&client=apple&clientVersion=10.1.4&st=1649781785957&sv=120&sign=e44437f6d87406dc35749bf81e2788f7`;
break;
case 'getSimpleActInfoVo':
url = `${domain}/dz/common/getSimpleActInfoVo`;
body = `activityId=${$.activityId}`;
break;
case 'getMyPing':
url = `${domain}/customer/getMyPing`;
body = `userId=${$.shopId || $.venderId || ''}&token=${$.Token}&fromType=APP`;
break;
case 'accessLogWithAD':
url = `${domain}/common/accessLogWithAD`;
let pageurl = `${domain}/dingzhi/shop/league/activity?activityId=${$.activityId}&shareUuid=${$.shareUuid}`
body = `venderId=${$.shopId || $.venderId || ''}&code=99&pin=${encodeURIComponent($.Pin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=app&adSource=`
break;
case 'getUserInfo':
url = `${domain}/wxActionCommon/getUserInfo`;
body = `pin=${encodeURIComponent($.Pin)}`;
break;
case 'activityContent':
url = `${domain}/dingzhi/shop/league/activityContent`;
body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}`
break;
case 'drawContent':
url = `${domain}/dingzhi/taskact/common/drawContent`;
body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}`
break;
case 'checkOpenCard':
url = `${domain}/dingzhi/shop/league/checkOpenCard`;
body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&shareUuid=${$.shareUuid}`
break;
case 'startDraw':
url = `${domain}/dingzhi/shop/league/startDraw`;
body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}${$.startDraw && '&type=' + $.startDraw || ''}`
break;
case 'followShop':
url = `${domain}/dingzhi/shop/league/saveTask`;
body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=1&taskValue=${$.followShopValue}`
break;
case 'viewVideo':
case 'visitSku':
case 'toShop':
case 'addSku':
url = `${domain}/dingzhi/shop/league/saveTask`;
let taskType = ''
let taskValue = ''
if (type == 'viewVideo') {
taskType = 31
taskValue = 31
} else if (type == 'visitSku') {
taskType = 5
taskValue = $.visitSkuValue || 5
} else if (type == 'toShop') {
taskType = 14
taskValue = $.toShopValue || 14
} else if (type == 'addSku') {
taskType = 2
taskValue = $.addSkuValue || 2
}
body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&taskType=${taskType}&taskValue=${taskValue}`
break;
case 'getDrawRecordHasCoupon':
url = `${domain}/dingzhi/taskact/common/getDrawRecordHasCoupon`;
body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}`
break;
case 'getShareRecord':
url = `${domain}/dingzhi/taskact/common/getShareRecord`;
body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}`
break;
case '邀请':
case '助力':
if (type == '助力') {
url = `${domain}/dingzhi/light/wishLamp/assist`;
} else {
url = `${domain}/dingzhi/linkgame/assist/status`;
}
body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&shareUuid=${$.shareUuid}`
break;
default:
console.log(`错误${type}`);
}
let myRequest = getPostRequest(url, body, method);
return new Promise(async resolve => {
$.post(myRequest, (err, resp, data) => {
try {
setActivityCookie(resp)
if (err) {
if (resp && typeof resp.statusCode != 'undefined') {
if (resp.statusCode == 493) {
console.log('此ip已被限制请过10分钟后再执行脚本\n')
$.outFlag = true
}
}
console.log(`${$.toStr(err, err)}`)
console.log(`${type} API请求失败请检查网路重试`)
} else {
dealReturn(type, data);
}
} catch (e) {
// console.log(data);
console.log(e, resp)
} finally {
resolve();
}
})
})
}
async function dealReturn(type, data) {
let res = ''
try {
if(type != 'accessLogWithAD' || type != 'drawContent'){
if(data){
res = JSON.parse(data);
}
}
} catch (e) {
console.log(`${type} 执行任务异常`);
console.log(data);
$.runFalag = false;
}
try {
switch (type) {
case 'isvObfuscator':
if(typeof res == 'object'){
if(res.errcode == 0){
if(typeof res.token != 'undefined') $.Token = res.token
}else if(res.message){
console.log(`isvObfuscator ${res.message || ''}`)
}else{
console.log(data)
}
}else{
console.log(data)
}
break;
case 'getSimpleActInfoVo':
if(typeof res == 'object'){
if(res.result && res.result === true){
if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId
if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId
}else if(res.errorMessage){
console.log(`${type} ${res.errorMessage || ''}`)
}else{
console.log(`${type} ${data}`)
}
}else{
console.log(`${type} ${data}`)
}
break;
case 'getMyPing':
if(typeof res == 'object'){
if(res.result && res.result === true){
if(res.data && typeof res.data.secretPin != 'undefined') $.Pin = res.data.secretPin
if(res.data && typeof res.data.nickname != 'undefined') $.nickname = res.data.nickname
}else if(res.errorMessage){
console.log(`${type} ${res.errorMessage || ''}`)
}else{
console.log(`${type} ${data}`)
}
}else{
console.log(`${type} ${data}`)
}
break;
case 'getUserInfo':
if(typeof res == 'object'){
if(res.result && res.result === true){
if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png"
}else if(res.errorMessage){
console.log(`${type} ${res.errorMessage || ''}`)
}else{
console.log(`${type} ${data}`)
}
}else{
console.log(`${type} ${data}`)
}
break;
case 'activityContent':
if(typeof res == 'object'){
if(res.result && res.result === true){
$.endTime = res.data.endTime || 0
$.hasEnd = res.data.hasEnd || false
$.actorUuid = res.data.actorUuid || ''
$.followShop = res.data.followShop.allStatus || false
$.addSku = res.data.addSku.allStatus || false
if(res.data.followShop && res.data.followShop.settings && res.data.followShop.settings[0]){
$.followShopValue = res.data.followShop.settings[0].value || 1
}
if(res.data.addSku && res.data.addSku.settings && res.data.addSku.settings[0]){
$.addSkuValue = res.data.addSku.settings[0].value || 2
}
}else if(res.errorMessage){
console.log(`${type} ${res.errorMessage || ''}`)
}else{
console.log(`${type} ${data}`)
}
}else{
console.log(`${type} ${data}`)
}
break;
case 'checkOpenCard':
if(typeof res == 'object'){
if(res.result && res.result === true){
let cardList1 = res.data.cardList1 || []
let cardList2 = res.data.cardList2 || []
let cardList = res.data.cardList || []
$.openList = [...cardList,...cardList1,...cardList2]
$.allOpenCard = res.data.allOpenCard || false
$.openCardScore1 = res.data.score1 || res.data.drawScore1 || 0
$.openCardScore2 = res.data.score2 || res.data.drawScore2 || 0
$.openCardScore3 = res.data.score3 || res.data.drawScore3 || 0
$.drawScore = res.data.drawScore || 0
if(res.data.sendBeanNum || res.data.addBeanNum) console.log(`开卡获得:${res.data.sendBeanNum || res.data.addBeanNum}`)
}else if(res.errorMessage){
console.log(`${type} ${res.errorMessage || ''}`)
}else{
console.log(`${type} ${data}`)
}
}else{
console.log(`${type} ${data}`)
}
break;
case 'startDraw':
case 'followShop':
case 'viewVideo':
case 'visitSku':
case 'toShop':
case 'addSku':
if(typeof res == 'object'){
if(res.result && res.result === true){
if(typeof res.data == 'object'){
let msg = ''
let title = '抽奖'
if(res.data.addBeanNum && res.data.sendStatus){
msg = `${res.data.addBeanNum}京豆`
}
if(type == 'followShop'){
title = '关注'
if(res.data.beanNumMember && res.data.assistSendStatus){
msg += ` 额外获得:${res.data.beanNumMember}京豆`
}
}else if(type == 'addSku'){
title = '加购'
}else if(type == 'viewVideo'){
title = '热门文章'
}else if(type == 'toShop'){
title = '浏览店铺'
}else if(type == 'visitSku'){
title = '浏览商品'
}else{
msg = res.data.drawOk == true && (res.data.drawInfoType == 6 && res.data.name || '') || '空气💨'
}
if(!msg){
msg = '空气💨'
}
console.log(`${title}获得:${msg || data}`)
}else{
console.log(`${type} ${data}`)
}
}else if(res.errorMessage){
$.runFalag = false;
console.log(`${type} ${res.errorMessage || ''}`)
}else{
console.log(`${type} ${data}`)
}
}else{
console.log(`${type} ${data}`)
}
break;
case 'getDrawRecordHasCoupon':
if(typeof res == 'object'){
if(res.result && res.result === true){
console.log(`我的奖品:`)
let num = 0
let value = 0
for(let i in res.data){
let item = res.data[i]
if(item.value == '邀请好友'){
num++;
value = item.infoName.replace('京豆','');
}else{
console.log(`${item.value} ${item.infoName}`)
}
}
if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 30}京豆`)
}else if(res.errorMessage){
console.log(`${type} ${res.errorMessage || ''}`)
}else{
console.log(`${type} ${data}`)
}
}else{
console.log(`${type} ${data}`)
}
break;
case 'getShareRecord':
if(typeof res == 'object'){
if(res.result && res.result === true && res.data){
$.ShareCount = res.data.length
$.log(`=========== 你邀请了:${res.data.length}`)
}else if(res.errorMessage){
console.log(`${type} ${res.errorMessage || ''}`)
}else{
console.log(`${type} ${data}`)
}
}else{
console.log(`${type} ${data}`)
}
break;
case 'accessLogWithAD':
case 'drawContent':
break;
default:
console.log(`${type}-> ${data}`);
}
if(typeof res == 'object'){
if(res.errorMessage){
if(res.errorMessage.indexOf('火爆') >-1 ){
$.hotFlag = true
}
}
}
} catch (e) {
console.log(e)
}
}
function getPostRequest(url, body, method="POST") {
let headers = {
"Accept": "application/json",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-cn",
"Connection": "keep-alive",
"Content-Type": "application/x-www-form-urlencoded",
"Cookie": cookie,
"User-Agent": $.UA,
"X-Requested-With": "XMLHttpRequest"
}
if(url.indexOf('https://lzdz1-isv.isvjcloud.com') > -1){
headers["Referer"] = `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity?activityId=${$.activityId}&shareUuid=${$.shareUuid}`
headers["Cookie"] = `${lz_jdpin_token_cookie && lz_jdpin_token_cookie || ''}${$.Pin && "AUTH_C_USER=" + $.Pin + ";" || ""}${activityCookie}`
}
// console.log(headers)
// console.log(headers.Cookie)
return {url: url, method: method, headers: headers, body: body, timeout:30000};
}
function getCk() {
return new Promise(resolve => {
let get = {
url:`https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity?activityId=${$.activityId}&shareUuid=${$.shareUuid}`,
followRedirect:false,
headers: {
"User-Agent": $.UA,
},
timeout:30000
}
$.get(get, async(err, resp, data) => {
try {
if (err) {
if(resp && typeof resp.statusCode != 'undefined'){
if(resp.statusCode == 493){
console.log('此ip已被限制请过10分钟后再执行脚本\n')
$.outFlag = true
}
}
console.log(`${$.toStr(err)}`)
console.log(`${$.name} cookie API请求失败请检查网路重试`)
} else {
let end = data.match(/(活动已经结束)/) && data.match(/(活动已经结束)/)[1] || ''
if(end){
$.activityEnd = true
console.log('活动已结束')
}
setActivityCookie(resp)
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve();
}
})
})
}
function setActivityCookie(resp){
let LZ_TOKEN_KEY = ''
let LZ_TOKEN_VALUE = ''
let lz_jdpin_token = ''
let setcookies = resp && resp['headers'] && (resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '') || ''
let setcookie = ''
if(setcookies){
if(typeof setcookies != 'object'){
setcookie = setcookies.split(',')
}else setcookie = setcookies
for (let ck of setcookie) {
let name = ck.split(";")[0].trim()
if(name.split("=")[1]){
// console.log(name.replace(/ /g,''))
if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';'
if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';'
if(name.indexOf('lz_jdpin_token=')>-1) lz_jdpin_token = ''+name.replace(/ /g,'')+';'
}
}
}
if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}`
if(lz_jdpin_token) lz_jdpin_token_cookie = lz_jdpin_token
}
async function getUA(){
$.UA = `jdapp;iPhone;10.1.4;13.1.2;${randomString(40)};network/wifi;model/iPhone8,1;addressid/2308460611;appBuild/167814;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`
}
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
}
async function joinShop() {
if (!$.joinVenderId) return
return new Promise(async resolve => {
$.errorJoinShop = '活动太火爆,请稍后再试'
let activityId = ``
if ($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}`
let body = `{"venderId":"${$.joinVenderId}","shopId":"${$.joinVenderId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}`
let params = {
functionId: 'bindWithVender',
body,
}
let h5stData = await h5stSign(params) || 'undefined'
const options = {
url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${body}&clientVersion=9.2.0&client=H5&uuid=88888&h5st=${h5stData.h5st}`,
headers: {
'accept': '*/*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
'cookie': cookie,
'origin': 'https://shopmember.m.jd.com/',
'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
}
}
$.get(options, async (err, resp, data) => {
try {
data = data && data.match(/jsonp_.*?\((.*?)\);/) && data.match(/jsonp_.*?\((.*?)\);/)[1] || data
// console.log(data)
let res = $.toObj(data, data);
if (res && typeof res == 'object') {
if (res && res.success === true) {
console.log(res.message)
$.errorJoinShop = res.message
if (res.result && res.result.giftInfo) {
for (let i of res.result.giftInfo.giftList) {
console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`)
}
}
} else if (res && typeof res == 'object' && res.message) {
$.errorJoinShop = res.message
console.log(`${res.message || ''}`)
} else {
console.log(data)
}
} else {
console.log(data)
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve();
}
})
})
}
async function getshopactivityId() {
return new Promise(async resolve => {
let body = `{"venderId":"${$.joinVenderId}","channel":406,"payUpShop":true}`
let h5st = 'undefined'
try {
h5st = await _0x511136(body, "getShopOpenCardInfo") || 'undefined'
} catch (e) {
h5st = 'undefined'
}
const options = {
url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${body}&clientVersion=9.2.0&client=H5&uuid=88888&h5st=${h5st}`,
headers: {
'accept': '*/*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
'cookie': cookie,
'origin': 'https://shopmember.m.jd.com/',
'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
}
}
$.get(options, async (err, resp, data) => {
try {
data = data && data.match(/jsonp_.*?\((.*?)\);/) && data.match(/jsonp_.*?\((.*?)\);/)[1] || data
// console.log(data)
let res = $.toObj(data, data);
if (res && typeof res == 'object') {
if (res && res.success == true) {
// console.log($.toStr(res.result))
console.log(`入会:${res.result.shopMemberCardInfo.venderCardName || ''}`)
$.shopactivityId = res.result.interestsRuleList && res.result.interestsRuleList[0] && res.result.interestsRuleList[0].interestsInfo && res.result.interestsRuleList[0].interestsInfo.activityId || ''
}
} else {
console.log(data)
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve();
}
})
})
}
function jsonParse(str) {
if (typeof str == "string") {
try {
return JSON.parse(str);
} catch (e) {
console.log(e);
$.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie')
return [];
}
}
}
var _0xodn='jsjiami.com.v6',_0xodn_=['_0xodn'],_0x136d=[_0xodn,'bG9n','YldLQlU=','d0ZacXo=','cGFyc2U=','ZGF0YQ==','ZnNvcEk=','ckRWamY=','U3JmZks=','bG9nRXJy','WWJFeG8=','V2pkaHU=','aGxremw=','Y3NkRFU=','VUNqcms=','dXhRVkw=','b2lVTmM=','ZHpLUEU=','WU1oTUk=','c3RyaW5naWZ5','cG9zdA==','bmFtZQ==','IEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','YkFFcVI=','WURDdXg=','jsjHliAMVamtFiI.cbXgomgT.vn6=='];if(function(_0x2203ac,_0x56d7ff,_0x270642){function _0x5bbf5b(_0x446d46,_0x557cb4,_0x297dfa,_0x1a88c1,_0x2dc8dd,_0x1d6823){_0x557cb4=_0x557cb4>>0x8,_0x2dc8dd='po';var _0x32ffad='shift',_0x4888d1='push',_0x1d6823='';if(_0x557cb4<_0x446d46){while(--_0x446d46){_0x1a88c1=_0x2203ac[_0x32ffad]();if(_0x557cb4===_0x446d46&&_0x1d6823===''&&_0x1d6823['length']===0x1){_0x557cb4=_0x1a88c1,_0x297dfa=_0x2203ac[_0x2dc8dd+'p']();}else if(_0x557cb4&&_0x297dfa['replace'](/[HlAMVtFIbXggTn=]/g,'')===_0x557cb4){_0x2203ac[_0x4888d1](_0x1a88c1);}}_0x2203ac[_0x4888d1](_0x2203ac[_0x32ffad]());}return 0xdf7c0;};return _0x5bbf5b(++_0x56d7ff,_0x270642)>>_0x56d7ff^_0x270642;}(_0x136d,0x142,0x14200),_0x136d){_0xodn_=_0x136d['length']^0x142;};function _0x530e(_0x2f663d,_0x4c18b1){_0x2f663d=~~'0x'['concat'](_0x2f663d['slice'](0x1));var _0x48b429=_0x136d[_0x2f663d];if(_0x530e['aGalCW']===undefined&&''['length']===0x1){(function(){var _0x475c60=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x52a119='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x475c60['atob']||(_0x475c60['atob']=function(_0x388038){var _0xe99e2f=String(_0x388038)['replace'](/=+$/,'');for(var _0x2b6c1d=0x0,_0x5217d5,_0x2888d3,_0x5f51bd=0x0,_0x3ae6e6='';_0x2888d3=_0xe99e2f['charAt'](_0x5f51bd++);~_0x2888d3&&(_0x5217d5=_0x2b6c1d%0x4?_0x5217d5*0x40+_0x2888d3:_0x2888d3,_0x2b6c1d++%0x4)?_0x3ae6e6+=String['fromCharCode'](0xff&_0x5217d5>>(-0x2*_0x2b6c1d&0x6)):0x0){_0x2888d3=_0x52a119['indexOf'](_0x2888d3);}return _0x3ae6e6;});}());_0x530e['JvZhoh']=function(_0x41c098){var _0x125072=atob(_0x41c098);var _0x3e363f=[];for(var _0x418c87=0x0,_0x3b3efd=_0x125072['length'];_0x418c87<_0x3b3efd;_0x418c87++){_0x3e363f+='%'+('00'+_0x125072['charCodeAt'](_0x418c87)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3e363f);};_0x530e['VQEymK']={};_0x530e['aGalCW']=!![];}var _0x208070=_0x530e['VQEymK'][_0x2f663d];if(_0x208070===undefined){_0x48b429=_0x530e['JvZhoh'](_0x48b429);_0x530e['VQEymK'][_0x2f663d]=_0x48b429;}else{_0x48b429=_0x208070;}return _0x48b429;};function h5stSign(_0x578d59){var _0x461d1a={'zATST':_0x530e('0'),'hdkYf':_0x530e('1'),'bAEqR':_0x530e('2'),'bWKBU':function(_0x41644f,_0x36fe6f){return _0x41644f!==_0x36fe6f;},'wFZqz':_0x530e('3'),'fsopI':function(_0x287452,_0x39962f){return _0x287452===_0x39962f;},'rDVjf':_0x530e('4'),'SrffK':_0x530e('5'),'dlwSO':_0x530e('6'),'ATuCp':function(_0x300ea4,_0x577f47){return _0x300ea4(_0x577f47);},'YMhMI':'application/json'};return new Promise(async _0x4e112e=>{var _0x885a3a={'YDCux':function(_0x4f2fe6,_0x4a46db){return _0x4f2fe6(_0x4a46db);}};const _0x57348c={'url':'http://api.liunians.cn/tool/h5st','headers':{'Content-Type':_0x461d1a[_0x530e('7')],'token':token},'body':JSON[_0x530e('8')](_0x578d59)};$[_0x530e('9')](_0x57348c,(_0x5343a1,_0x5181d7,_0x5925b7)=>{try{if(_0x461d1a['zATST']===_0x461d1a['hdkYf']){console['log'](''+JSON['stringify'](_0x5343a1));console['log']($[_0x530e('a')]+_0x530e('b'));}else{if(_0x5343a1){if(_0x461d1a[_0x530e('c')]==='JSoNh'){_0x885a3a[_0x530e('d')](_0x4e112e,_0x5925b7);}else{console[_0x530e('e')](''+JSON[_0x530e('8')](_0x5343a1));console[_0x530e('e')]($[_0x530e('a')]+_0x530e('b'));}}else{if(_0x5925b7){if(_0x461d1a[_0x530e('f')](_0x461d1a[_0x530e('10')],_0x530e('3'))){_0x5925b7=JSON[_0x530e('11')](_0x5925b7)[_0x530e('12')];}else{_0x5925b7=JSON[_0x530e('11')](_0x5925b7)[_0x530e('12')];}}}}}catch(_0x4cbd28){if(_0x461d1a[_0x530e('13')](_0x461d1a[_0x530e('14')],_0x461d1a[_0x530e('15')])){if(_0x5925b7){_0x5925b7=JSON['parse'](_0x5925b7)[_0x530e('12')];}}else{$[_0x530e('16')](_0x4cbd28);}}finally{if(_0x461d1a['dlwSO']!==_0x530e('17')){_0x461d1a['ATuCp'](_0x4e112e,_0x5925b7);}else{$[_0x530e('16')](e);}}});});};_0xodn='jsjiami.com.v6';
// prettier-ignore
function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s}`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)}