163 lines
6.1 KiB
JavaScript
163 lines
6.1 KiB
JavaScript
let mode = __dirname.includes('magic')
|
|
const {Env} = mode ? require('../magic') : require('./magic')
|
|
const $ = new Env('M入会有礼');
|
|
$.openCardArgv = decodeURIComponent(process.argv.splice(2)?.[0] || process.env.M_OPEN_CARD_ARGV);
|
|
if (mode) {
|
|
$.openCardArgv = '650767_655224'
|
|
$.openCardArgv = 'https://shopmember.m.jd.com/shopcard/?shopId=123'
|
|
$.openCardArgv = 'https://shopmember.m.jd.com/shopcard/?venderId=123'
|
|
$.openCardArgv = 'https://shopmember.m.jd.com/shopcard/?shopId=123&venderId=123'
|
|
}
|
|
//强制开卡 1关闭 2开启
|
|
let forceOpen = parseInt(process.env.M_OPEN_CARD_FORCE || "1")
|
|
$.version = "v1.0.0";
|
|
console.log("当前版本:" + $.version + ",依赖版本:" + $.superVersion);
|
|
$.config = async function () {
|
|
if ($.openCardArgv.startsWith("http")) {
|
|
$.shopId = this.getQueryString($.openCardArgv, "shopId") || "";
|
|
$.venderId = this.getQueryString($.openCardArgv, "venderId") || "";
|
|
let {
|
|
shopId: II1l1l,
|
|
venderId: i1Ii11,
|
|
shopName: llI1ii
|
|
} = await $.getShopBaseInfo();
|
|
$.shopId = II1l1l;
|
|
$.venderId = i1Ii11;
|
|
$.shopName = llI1ii;
|
|
} else {
|
|
let IllIlIli = $.openCardArgv.split("_");
|
|
$.shopId = IllIlIli?.[0];
|
|
$.venderId = IllIlIli?.[1];
|
|
}
|
|
$.activityUrl = "https://shopmember.m.jd.com/shopcard/?shopId=" + $.shopId + "&venderId=" + $.venderId;
|
|
};
|
|
$.logic = async function () {
|
|
if (!$.superVersion) throw new Error("请更新脚本");
|
|
if (!$.shopId || !$.venderId) {
|
|
$.log("无效的参数" + $.openCardArgv);
|
|
$.expire = true;
|
|
return;
|
|
}
|
|
$.UA = $.ua();
|
|
let IIl1I11i = await $.openCardInfo();
|
|
if (IIl1I11i?.["busiCode"] !== "0") {
|
|
$.log(JSON.stringify(IIl1I11i));
|
|
return;
|
|
}
|
|
$.venderCardName = IIl1I11i.result?.["shopMemberCardInfo"]?.["venderCardName"];
|
|
let i1lII1l = IIl1I11i.result?.["interestsRuleList"] || [],
|
|
Ii11IIIi = i1lII1l.filter(ii11il1i => ii11il1i?.["prizeType"] === 4 || ii11il1i?.["prizeType"] === 14 || ii11il1i?.["prizeName"] === "京豆" || ii11il1i?.["prizeName"] === "红包")?.[0] || "";
|
|
$.beanCount = 0;
|
|
let llII1l1 = IIl1I11i.result.userInfo.openCardStatus === 1;
|
|
if (llII1l1) {
|
|
$.putMsg("已开过卡");
|
|
let IIllIlIi = await getFansFuseMemberDetail();
|
|
if (IIllIlIi.code === "0") {
|
|
if (IIllIlIi.data[0]?.["newGiftList"]) {
|
|
let i1lIII1I = IIllIlIi.data[0]?.["newGiftList"]?.[0];
|
|
if (!i1lIII1I) return;
|
|
$.activityId = i1lIII1I.activityId;
|
|
$.activityType = i1lIII1I.activityType;
|
|
if ($.activityId && $.activityType && i1lIII1I.status * 1 !== 2) {
|
|
let il1ll11l = await collectGift();
|
|
if (il1ll11l.busiCode === "200") for (let IiiilIll of IIllIlIi.data[0]?.["newGiftList"]) {
|
|
$.putMsg("" + IiiilIll.discount + IiiilIll.prizeTypeName);
|
|
} else $.putMsg("" + il1ll11l.message);
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
if (llII1l1) {
|
|
$.putMsg("已开过卡");
|
|
return;
|
|
}
|
|
if (forceOpen === 2) {
|
|
$.putMsg("强制开卡");
|
|
await $.openCard();
|
|
return;
|
|
}
|
|
$.beanCount = Ii11IIIi?.["discountString"] * 1 || 0;
|
|
$.activityId = Ii11IIIi?.["interestsInfo"]?.["activityId"] || "";
|
|
let il1lili = await $.openCard($.venderId, 208, $.activityId);
|
|
let lili111i = il1lili.result?.["giftInfo"]?.["giftList"];
|
|
if (il1lili.code === 0 && lili111i) {
|
|
for (let illiI1l of lili111i) {
|
|
$.putMsg("" + illiI1l.discountString + illiI1l.prizeName);
|
|
}
|
|
return;
|
|
} else {
|
|
let IIllIlIi = await getFansFuseMemberDetail();
|
|
if (IIllIlIi.code === "0") {
|
|
if (IIllIlIi.data[0]?.["newGiftList"]) {
|
|
let i1lIII1I = IIllIlIi.data[0]?.["newGiftList"]?.[0];
|
|
if (!i1lIII1I) return;
|
|
$.activityId = i1lIII1I.activityId;
|
|
$.activityType = i1lIII1I.activityType;
|
|
if ($.activityId && $.activityType && i1lIII1I.status * 1 !== 2) {
|
|
let il1ll11l = await collectGift();
|
|
if (il1ll11l.busiCode === "200") for (let IiiilIll of IIllIlIi.data[0]?.["newGiftList"]) {
|
|
$.putMsg("" + IiiilIll.discount + IiiilIll.prizeTypeName);
|
|
} else $.putMsg("" + il1ll11l.message);
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
};
|
|
async function getFansFuseMemberDetail() {
|
|
let IlillllI = {
|
|
"venderId": $.venderId,
|
|
"shopId": $.shopId,
|
|
"channel":"406",
|
|
"queryVersion": "12.1.6"
|
|
};
|
|
let li1Il1ll = {
|
|
"Connection": "keep-alive",
|
|
"Accept-Encoding": "gzip, deflate, br",
|
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
"Host": "api.m.jd.com",
|
|
"Referer": "https://shopmember.m.jd.com/",
|
|
"Accept-Language": "zh-Hans-CN;q=1, en-CN;q=0.9",
|
|
"Accept": "*/*",
|
|
"Cookie": $.cookie,
|
|
"User-Agent": "JD4iPhone/167841 (iPhone; iOS; Scale/3.00)"
|
|
};
|
|
let il1IlI1I = `https://api.m.jd.com/client.action?functionId=getFansFuseMemberDetail&body=${encodeURIComponent(JSON.stringify(IlillllI))}&appid=shopmember_m_jd_com&clientVersion=11.0.0&client=wh5&uuid=${$.UUID}&h5st=undefined`,
|
|
{
|
|
status: lII1IIi1,
|
|
data: l1IIIi1
|
|
} = await $.request(il1IlI1I, li1Il1ll);
|
|
return l1IIIi1;
|
|
}
|
|
async function collectGift() {
|
|
let ilI11i1I = {
|
|
"venderId": $.venderId,
|
|
"shopId": $.shopId,
|
|
"activityType": $.activityType,
|
|
"activityId": $.activityId
|
|
};
|
|
let l1Ii1lI1 = {
|
|
"Connection": "keep-alive",
|
|
"Accept-Encoding": "gzip, deflate, br",
|
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
"Host": "api.m.jd.com",
|
|
"Referer": "https://shopmember.m.jd.com/",
|
|
"Accept-Language": "zh-Hans-CN;q=1, en-CN;q=0.9",
|
|
"Accept": "*/*",
|
|
"Cookie": $.cookie,
|
|
"User-Agent": "JD4iPhone/167841 (iPhone; iOS; Scale/3.00)"
|
|
};
|
|
let IiIiIill = `https://api.m.jd.com/client.action?functionId=collectGift&body=${encodeURIComponent(JSON.stringify(ilI11i1I))}&appid=shopmember_m_jd_com&clientVersion=11.0.0&client=wh5&uuid=${$.UUID}&h5st=undefined`,
|
|
{
|
|
status: l1iII1lI,
|
|
data: Il1liIli
|
|
} = await $.request(IiIiIill, l1Ii1lI1);
|
|
return Il1liIli;
|
|
}
|
|
$.after = async function () {
|
|
$.venderCardName && $.msg.push("【" + $.venderCardName + "】入会送(" + $.beanCount + "京豆)");
|
|
$.msg.push("export M_OPEN_CARD_ARGV=\"" + $.openCardArgv + "\"");
|
|
};
|
|
$.run().catch(reason => $.log(reason))
|