faker3/jd_wx_luckDraw.js
2022-05-17 11:11:34 +08:00

232 lines
8.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//问题反馈:https://t.me/Wall_E_Channel
/*
7 7 7 7 7 m_jd_wx_luckDraw.js
*/
let mode = __dirname.includes('magic')
const {Env} = mode ? require('./magic') : require('./magic')
const $ = new Env('M幸运抽奖');
$.activityUrl = process.env.M_WX_LUCK_DRAW_URL
? process.env.M_WX_LUCK_DRAW_URL
: '';
$.notLuckDrawList = process.env.M_WX_NOT_LUCK_DRAW_LIST
? process.env.M_WX_NOT_LUCK_DRAW_LIST.split('@')
: 'test'.split('@');
if (mode) {
$.activityUrl = 'https://lzkj-isv.isvjcloud.com/lzclient/1648724528320/cjwx/common/entry.html?activityId=9cf424654f2d4821a229f73043987968&gameType=wxTurnTable&shopid=11743182'
}
$.activityUrl = $.match(
/(https?:\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|])/,
$.activityUrl)
$.domain = $.match(/https?:\/\/([^/]+)/, $.activityUrl)
$.activityId = $.getQueryString($.activityUrl, 'activityId')
let shopInfo = ''
$.logic = async function () {
if (!$.activityId || !$.activityUrl) {
$.expire = true;
$.putMsg(`activityId|activityUrl不存在`, $.activityUrl, $.activityId);
return
}
$.log(`活动id: ${$.activityId}`, `活动url: ${$.activityUrl}`)
$.UA = $.ua();
let token = await $.isvObfuscator();
if (token.code !== '0') {
$.putMsg(`获取Token失败`);
return
}
$.Token = token?.token
if ($.domain.includes("gzsl")) {
let activityContent = await $.api(
`wuxian/user/getLottery/${$.activityId}`,
{'id': $.activityId, 'token': $.Token, 'source': "01"});
$.log(activityContent)
if (activityContent.status !== '1') {
$.putMsg(`获取活动信息失败`);
return;
}
$.shopName = activityContent.activity.shopName
$.activityType = activityContent.activity.activityType
$.shopId = activityContent.activity.shopId;
$.content = activityContent.activity.prizes
if (activityContent.leftTime === 0) {
$.putMsg("抽奖次数为0")
}
while (activityContent.leftTime-- > 0) {
await $.wait(3000, 5000)
let data = await $.api(
`wuxian/user/draw/${$.activityId}`,
{'id': $.activityId, 'token': $.Token, 'source': "01"});
if (data.status !== "1") {
if (data.status === "-14") {
$.putMsg("开卡入会后参与活动")
break;
}
if (data.status === "-2") {
$.putMsg("已结束")
$.expire = true;
break;
}
$.putMsg(data.msg)
continue
}
if (data?.winId) {
if (data.data.source === "0") {
activityContent.leftTime++
}
$.putMsg(data.data.name)
} else {
$.putMsg("空气")
}
}
} else {
let actInfo = await $.api('customer/getSimpleActInfoVo',
`activityId=${$.activityId}`);
if (!actInfo.result || !actInfo.data) {
$.log(`获取活动信息失败`);
return
}
$.venderId = actInfo.data.venderId;
$.shopId = actInfo.data.shopId;
$.activityType = actInfo.data.activityType;
let myPing = await $.api('customer/getMyPing',
`userId=${$.venderId}&token=${$.Token}&fromType=APP`)
if (!myPing.result) {
$.putMsg(`获取pin失败`);
return
}
$.Pin = $.domain.includes('cjhy') ? encodeURIComponent(
encodeURIComponent(myPing.data.secretPin)) : encodeURIComponent(
myPing.data.secretPin);
shopInfo = await $.api('wxDrawActivity/shopInfo',
`activityId=${$.activityId}`);
if (!shopInfo.result) {
$.putMsg('获取不到店铺信息,结束运行')
return
}
$.shopName = shopInfo?.data?.shopName
for (let ele of $.notLuckDrawList) {
if ($.shopName.includes(ele)) {
$.expire = true
$.putMsg('已屏蔽')
return
}
}
await $.api(
`common/${$.domain.includes('cjhy') ? 'accessLog'
: 'accessLogWithAD'}`,
`venderId=${$.venderId}&code=${$.activityType}&pin=${$.Pin}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(
$.activityUrl)}&subType=app&adSource=`);
let activityContent = await $.api(
`${$.activityType === 26 ? 'wxPointDrawActivity'
: 'wxDrawActivity'}/activityContent`,
`activityId=${$.activityId}&pin=${$.Pin}`);
if (!activityContent.result || !activityContent.data) {
$.putMsg(activityContent.errorMessage || '活动可能已结束')
return
}
debugger
$.hasFollow = activityContent.data.hasFollow || ''
$.needFollow = activityContent.data.needFollow || false
$.canDrawTimes = activityContent.data.canDrawTimes || 1
$.content = activityContent.data.content || []
$.drawConsume = activityContent.data.drawConsume || 0
$.canDrawTimes === 0 ? $.canDrawTimes = 1 : ''
debugger
let memberInfo = await $.api($.domain.includes('cjhy')
? 'mc/new/brandCard/common/shopAndBrand/getOpenCardInfo'
: 'wxCommonInfo/getActMemberInfo',
$.domain.includes('cjhy')
? `venderId=${$.venderId}&buyerPin=${$.Pin}&activityType=${$.activityType}`
:
`venderId=${$.venderId}&activityId=${$.activityId}&pin=${$.Pin}`);
//没开卡 需要开卡
if ($.domain.includes('cjhy')) {
//没开卡 需要开卡
if (memberInfo.result && !memberInfo.data?.openCard
&& memberInfo.data?.openCardLink) {
$.putMsg('需要开卡跳过')
return
}
} else {
if (memberInfo.result && !memberInfo.data?.openCard
&& memberInfo.data?.actMemberStatus === 1) {
$.putMsg('需要开卡跳过')
return
}
}
if ($.needFollow && !$.hasFollow) {
let followShop = await $.api($.domain.includes('cjhy')
? 'wxActionCommon/newFollowShop'
: 'wxActionCommon/followShop',
$.domain.includes('cjhy')
? `venderId=${$.venderId}&activityId=${$.activityId}&buyerPin=${$.Pin}&activityType=${$.activityType}`
: `userId=${$.venderId}&activityId=${$.activityId}&buyerNick=${$.Pin}&activityType=${$.activityType}`);
if (!followShop.result) {
$.putMsg(followShop.errorMessage)
return;
}
await $.wait(1000);
}
for (let m = 1; $.canDrawTimes--; m++) {
let prize = await $.api(
`${$.activityType === 26 ? 'wxPointDrawActivity'
: 'wxDrawActivity'}/start`,
$.domain.includes('cjhy')
? `activityId=${$.activityId}&pin=${$.Pin}`
: `activityId=${$.activityId}&pin=${$.Pin}`);
if (prize.result) {
$.canDrawTimes = prize.data.canDrawTimes
let msg = prize.data.drawOk ? prize.data.name
: prize.data.errorMessage || '空气';
$.putMsg(msg)
} else {
if (prize.errorMessage) {
$.putMsg(`${prize.errorMessage}`);
if (prize.errorMessage.includes('来晚了')
|| prize.errorMessage.includes('已发完')
|| prize.errorMessage.includes('活动已结束')) {
$.expire = true;
}
}
break
}
await $.wait(parseInt(Math.random() * 500 + 1500, 10));
}
}
await $.unfollow($.shopId)
}
let kv = {
3: '幸运九宫格',
4: '转盘抽奖',
11: '扭蛋抽奖',
12: '九宫格抽奖',
13: '转盘抽奖',
26: '积分抽奖'
}
let kv2 = {'0': '再来一次', '1': '京豆', '2': '', '3': '实物', '4': '积分'}
$.after = async function () {
let message = `\n${$.shopName || ''} ${kv[$.activityType]
|| $.activityType}\n`;
for (let ele of $.content || []) {
if (ele.name.includes('谢谢') || ele.name.includes('再来')) {
continue;
}
if ($.domain.includes('lzkj') || $.domain.includes('cjhy')) {
message += `\n ${ele.name} ${ele?.type === 8 ? '专享价' : ''}`
} else {
message += ` ${ele.name} ${kv2[ele?.source]
|| ele?.source}\n`
}
}
$.msg.push(message)
$.msg.push($.activityUrl);
}
$.run({whitelist: ['1-5'], wait: [3000, 5000]}).catch(
reason => $.log(reason));