MCPcopy Index your code
hub / github.com/NobyDa/Script / JDUserSignPre1

Function JDUserSignPre1

JD-DailyBonus/JD_DailyBonus.js:642–723  ·  view source on GitHub ↗
(s, key, title, acData, ask)

Source from the content-addressed store, hash-verified

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

Callers 2

JDUserSignPreFunction · 0.85
JDUserSignPre2Function · 0.85

Calls 7

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

Tested by

no test coverage detected