MCPcopy Create free account
hub / github.com/Semporia/Scripts / JDUserSignPre1

Function JDUserSignPre1

JD_DailyBonus.js:634–715  ·  view source on GitHub ↗
(s, key, title, acData, ask)

Source from the content-addressed store, hash-verified

632}
633
634function JDUserSignPre1(s, key, title, acData, ask) {
635 return new Promise((resolve, reject) => {
636 if (disable(key, title, 1)) return reject()
637 const JDUrl = {
638 url: 'https://api.m.jd.com/?client=wh5&functionId=qryH5BabelFloors',
639 headers: {
640 Cookie: KEY
641 },
642 opts: {
643 'filter': 'try{var od=JSON.parse(body);var params=(od.floatLayerList||[]).filter(o=>o.params&&o.params.match(/enActK/)).map(o=>o.params).pop()||(od.floorList||[]).filter(o=>o.template=="signIn"&&o.signInfos&&o.signInfos.params&&o.signInfos.params.match(/enActK/)).map(o=>o.signInfos&&o.signInfos.params).pop();var tId=(od.floorList||[]).filter(o=>o.boardParams&&o.boardParams.turnTableId).map(o=>o.boardParams.turnTableId).pop();var page=od.paginationFlrs;return JSON.stringify({qxAct:params||null,qxTid:tId||null,qxPage:page||null})}catch(e){return `=> 过滤器发生错误: ${e.message}`}'
644 },
645 body: `body=${encodeURIComponent(`{"activityId":"${acData}"${ask?`,"paginationParam":"2","paginationFlrs":"${ask}"`:``}}`)}`
646 };
647 $nobyda.post(JDUrl, async function(error, response, data) {
648 try {
649 if (error) {
650 throw new Error(error)
651 } else {
652 const od = JSON.parse(data || '{}');
653 const turnTableId = od.qxTid || (od.floorList || []).filter(o => o.boardParams && o.boardParams.turnTableId).map(o => o.boardParams.turnTableId).pop();
654 const page = od.qxPage || od.paginationFlrs;
655 if (data.match(/enActK/)) { // 含有签到活动数据
656 let params = od.qxAct || (od.floatLayerList || []).filter(o => o.params && o.params.match(/enActK/)).map(o => o.params).pop()
657 if (!params) { // 第一处找到签到所需数据
658 // floatLayerList未找到签到所需数据,从floorList中查找
659 let signInfo = (od.floorList || []).filter(o => o.template == 'signIn' && o.signInfos && o.signInfos.params && o.signInfos.params.match(/enActK/))
660 .map(o => o.signInfos).pop();
661 if (signInfo) {
662 if (signInfo.signStat == '1') {
663 console.log(`\n${title}重复签到`)
664 merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️`
665 merge[key].fail = 1
666 } else {
667 params = signInfo.params;
668 }
669 } else {
670 merge[key].notify = `${title}: 失败, 活动查找异常 ⚠️`
671 merge[key].fail = 1
672 }
673 }
674 if (params) {
675 return resolve({
676 params: params
677 }); // 执行签到处理
678 }
679 } else if (turnTableId) { // 无签到数据, 但含有关注店铺签到
680 const boxds = $nobyda.read("JD_Follow_disable") === "false" ? false : true
681 if (boxds) {
682 console.log(`\n${title}关注店铺`)
683 return resolve(parseInt(turnTableId))
684 } else {
685 merge[key].notify = `${title}: 失败, 需要关注店铺 ⚠️`
686 merge[key].fail = 1
687 }
688 } else if (page && !ask) { // 无签到数据, 尝试带参查询
689 const boxds = $nobyda.read("JD_Retry_disable") === "false" ? false : true
690 if (boxds) {
691 console.log(`\n${title}二次查询`)

Callers 2

JDUserSignPreFunction · 0.85
JDUserSignPre2Function · 0.85

Calls 6

disableFunction · 0.85
JDUserSign1Function · 0.85
JDUserSign2Function · 0.85
readMethod · 0.80
postMethod · 0.45
logMethod · 0.45

Tested by

no test coverage detected