diff --git a/jd_bean_change.js b/jd_bean_change.js index e9fcf24..bfe376e 100644 --- a/jd_bean_change.js +++ b/jd_bean_change.js @@ -1,30 +1,31 @@ /* -cron "28 8,21 * * *" jd_bean_change.js, tag:资产变化强化版by-ccwav +cron "30 21 * * *" jd_bean_change.js, tag:资产变化强化版by-ccwav */ -//详细说明参考 https://github.com/ccwav/QLScript2. +//详细说明参考 https://github.com/ccwav/QLScript2 -const $ = new Env('京东资产统计'); +const $ = new Env('京东资产变动'); const notify = $.isNode() ? require('./sendNotify') : ''; +const JXUserAgent = $.isNode() ? (process.env.JX_USER_AGENT ? process.env.JX_USER_AGENT : ``) : ``; +const axios = require('axios'); //Node.js用户请在jdCookie.js处填写京东ck; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; let NowHour = new Date().getHours(); //默认开启缓存模式 -let checkbeanDetailMode = 1; -if ($.isNode() && process.env.BEANCHANGE_BEANDETAILMODE) { - checkbeanDetailMode = process.env.BEANCHANGE_BEANDETAILMODE * 1; +let checkbeanDetailMode=1; +if ($.isNode() && process.env.BEANCHANGE_BEANDETAILMODE){ + checkbeanDetailMode=process.env.BEANCHANGE_BEANDETAILMODE*1; } const fs = require('fs'); -const CR = require('crypto-js'); -const moment = require("moment"); -let matchtitle = "昨日"; -let yesterday = ""; -let TodayDate = ""; -let startDate = ""; -let endDate = ""; +let matchtitle="昨日"; +let yesterday=""; +let TodayDate=""; +let startDate=""; +let endDate=""; try { + const moment = require("moment"); yesterday = moment().subtract(1, 'days').format('YYYY-MM-DD'); TodayDate = moment().format("YYYY-MM-DD"); startDate = moment().startOf("month").format("YYYY_MM"); @@ -43,14 +44,14 @@ let strNewBeanCache = "./BeanCache/" + TodayDate + ".json"; let TodayCache = []; let Fileexists = fs.existsSync(strBeanCache); let TempBeanCache = []; -if (!Fileexists) { - yesterday = TodayDate; - strBeanCache = strNewBeanCache; - Fileexists = fs.existsSync(strBeanCache); - matchtitle = "今日"; +if(!Fileexists){ + yesterday=TodayDate; + strBeanCache=strNewBeanCache; + Fileexists = fs.existsSync(strBeanCache); + matchtitle="今日"; } if (Fileexists) { - console.log("检测到资产变动缓存文件" + yesterday + ".json,载入..."); + console.log("检测到资产变动缓存文件"+yesterday+".json,载入..."); TempBeanCache = fs.readFileSync(strBeanCache, 'utf-8'); if (TempBeanCache) { TempBeanCache = TempBeanCache.toString(); @@ -60,7 +61,7 @@ if (Fileexists) { Fileexists = fs.existsSync(strNewBeanCache); if (Fileexists) { - console.log("检测到资产变动缓存文件" + TodayDate + ".json,载入..."); + console.log("检测到资产变动缓存文件"+TodayDate+".json,载入..."); TodayCache = fs.readFileSync(strNewBeanCache, 'utf-8'); if (TodayCache) { TodayCache = TodayCache.toString(); @@ -105,7 +106,7 @@ let notifySkipList = ""; let IndexAll = 0; let EnableMonth = "false"; let isSignError = false; -let ReturnMessageTitle = ""; +let ReturnMessageTitle=""; //IOS等用户直接用NobyDa的jd cookie let cookiesArr = [], cookie = ''; const JD_API_HOST = 'https://api.m.jd.com/client.action'; @@ -113,86 +114,88 @@ let intPerSent = 0; let i = 0; let llShowMonth = false; let Today = new Date(); -let strAllNotify = ""; -let strSubNotify = ""; -let llPetError = false; -let strGuoqi = ""; +let strAllNotify=""; +let strSubNotify=""; +let llPetError=false; +let strGuoqi=""; let RemainMessage = '\n'; -RemainMessage += "⭕提醒:⭕" + '\n'; -RemainMessage += '【京喜特价金币】京东特价版->我的->金币(可兑换无门槛红包)\n'; -RemainMessage += '【话费积分】京东->充值中心-赚积分兑话费(180天效期)\n'; -RemainMessage += '【超市卡】京东超市-超市卡赠金(30天效期,购买超市商品可用)\n'; -RemainMessage += '【东东农场】京东->我的->东东农场,完成可兑换无门槛红包,可用于任意商品\n'; -RemainMessage += '【其他】不同类别红包不能叠加使用,自测'; +RemainMessage += "⭕活动攻略:⭕" + '\n'; +RemainMessage += '【礼品卡】京东->我的->礼品卡,仅自营商品和一号店app可用\n'; +RemainMessage += '【超市卡】京东->我的->礼品卡->京东超市,仅京东超市商品可用\n'; +RemainMessage += '【特价金币】京东特价版->我的->金币(特价版使用)\n'; +RemainMessage += '【领现金】京东->搜索领现金(微信提现+京东红包)\n'; +RemainMessage += '【东东农场】京东->我的->东东农场,完成是京东红包,可以用于京东app的任意商品\n'; +RemainMessage += '【京东金融】京东金融app->我的->养猪猪,完成是白条支付券,支付方式选白条支付时立减.\n'; +RemainMessage += '【其他】京喜红包只能在京喜使用,其他同理'; let WP_APP_TOKEN_ONE = ""; let TempBaipiao = ""; -let llgeterror = false; +let llgeterror=false; let time = new Date().getHours(); if ($.isNode()) { - if (process.env.WP_APP_TOKEN_ONE) { - WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE; - } + if (process.env.WP_APP_TOKEN_ONE) { + WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE; + } } -//if(WP_APP_TOKEN_ONE) -//console.log(`检测到已配置Wxpusher的Token,启用一对一推送...`); -//else -//console.log(`检测到未配置Wxpusher的Token,禁用一对一推送...`); +if(WP_APP_TOKEN_ONE) + console.log(`检测到已配置Wxpusher的Token,启用一对一推送...`); +else + console.log(`检测到未配置Wxpusher的Token,禁用一对一推送...`); let jdSignUrl = 'https://api.nolanstore.cc/sign' if (process.env.SIGNURL) - jdSignUrl = process.env.SIGNURL; + jdSignUrl = process.env.SIGNURL; -let epsignurl = "" +let epsignurl="" if (process.env.epsignurl) epsignurl = process.env.epsignurl; if ($.isNode() && process.env.BEANCHANGE_PERSENT) { - intPerSent = parseInt(process.env.BEANCHANGE_PERSENT); - console.log(`检测到设定了分段通知:` + intPerSent); + intPerSent = parseInt(process.env.BEANCHANGE_PERSENT); + console.log(`检测到设定了分段通知:` + intPerSent); } if ($.isNode() && process.env.BEANCHANGE_USERGP2) { - MessageUserGp2 = process.env.BEANCHANGE_USERGP2 ? process.env.BEANCHANGE_USERGP2.split('&') : []; - intPerSent = 0; //分组推送,禁用账户拆分 - console.log(`检测到设定了分组推送2,将禁用分段通知`); + MessageUserGp2 = process.env.BEANCHANGE_USERGP2 ? process.env.BEANCHANGE_USERGP2.split('&') : []; + intPerSent = 0; //分组推送,禁用账户拆分 + console.log(`检测到设定了分组推送2,将禁用分段通知`); } if ($.isNode() && process.env.BEANCHANGE_USERGP3) { - MessageUserGp3 = process.env.BEANCHANGE_USERGP3 ? process.env.BEANCHANGE_USERGP3.split('&') : []; - intPerSent = 0; //分组推送,禁用账户拆分 - console.log(`检测到设定了分组推送3,将禁用分段通知`); + MessageUserGp3 = process.env.BEANCHANGE_USERGP3 ? process.env.BEANCHANGE_USERGP3.split('&') : []; + intPerSent = 0; //分组推送,禁用账户拆分 + console.log(`检测到设定了分组推送3,将禁用分段通知`); } if ($.isNode() && process.env.BEANCHANGE_USERGP4) { - MessageUserGp4 = process.env.BEANCHANGE_USERGP4 ? process.env.BEANCHANGE_USERGP4.split('&') : []; - intPerSent = 0; //分组推送,禁用账户拆分 - console.log(`检测到设定了分组推送4,将禁用分段通知`); + MessageUserGp4 = process.env.BEANCHANGE_USERGP4 ? process.env.BEANCHANGE_USERGP4.split('&') : []; + intPerSent = 0; //分组推送,禁用账户拆分 + console.log(`检测到设定了分组推送4,将禁用分段通知`); } //取消月结查询 //if ($.isNode() && process.env.BEANCHANGE_ENABLEMONTH) { -//EnableMonth = process.env.BEANCHANGE_ENABLEMONTH; + //EnableMonth = process.env.BEANCHANGE_ENABLEMONTH; //} -if ($.isNode() && process.env.BEANCHANGE_SUBNOTIFY) { - strSubNotify = process.env.BEANCHANGE_SUBNOTIFY; - strSubNotify += "\n"; - console.log(`检测到预览置顶内容,将在一对一推送的预览显示...\n`); +if ($.isNode() && process.env.BEANCHANGE_SUBNOTIFY) { + strSubNotify=process.env.BEANCHANGE_SUBNOTIFY; + strSubNotify+="\n"; + console.log(`检测到预览置顶内容,将在一对一推送的预览显示...\n`); } -if ($.isNode() && process.env.BEANCHANGE_ALLNOTIFY) { - strAllNotify = process.env.BEANCHANGE_ALLNOTIFY; - console.log(`检测到设定了公告,将在推送信息中置顶显示...`); - strAllNotify = "✨✨✨✨✨✨✨公告✨✨✨✨✨✨✨\n" + strAllNotify; - console.log(strAllNotify + "\n"); - strAllNotify += "\n🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏\n" +if ($.isNode() && process.env.BEANCHANGE_ALLNOTIFY) { + strAllNotify=process.env.BEANCHANGE_ALLNOTIFY; + console.log(`检测到设定了公告,将在推送信息中置顶显示...`); + strAllNotify = `【✨✨✨✨公告✨✨✨✨】\n`+strAllNotify; + console.log(strAllNotify+"\n"); + strAllNotify +=`\n🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏` } if (EnableMonth == "true" && Today.getDate() == 1 && Today.getHours() > 17) - llShowMonth = true; + llShowMonth = true; let userIndex2 = -1; let userIndex3 = -1; @@ -200,936 +203,998 @@ let userIndex4 = -1; if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') - console.log = () => { }; + 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); + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); } //查询开关 let strDisableList = ""; -let DisableIndex = -1; -if ($.isNode()) { - strDisableList = process.env.BEANCHANGE_DISABLELIST ? process.env.BEANCHANGE_DISABLELIST.split('&') : []; +let DisableIndex=-1; +if ($.isNode()) { + strDisableList = process.env.BEANCHANGE_DISABLELIST ? process.env.BEANCHANGE_DISABLELIST.split('&') : []; } //东东农场 -let EnableJdFruit = true; +let EnableJdFruit=true; DisableIndex = strDisableList.findIndex((item) => item === "东东农场"); -if (DisableIndex != -1) { - console.log("检测到设定关闭东东农场查询"); - EnableJdFruit = false; +if(DisableIndex!=-1){ + console.log("检测到设定关闭东东农场查询"); + EnableJdFruit=false; } //特价金币 -let EnableJdSpeed = true; +let EnableJdSpeed=true; DisableIndex = strDisableList.findIndex((item) => item === "极速金币"); -if (DisableIndex != -1) { - console.log("检测到设定关闭特价金币查询"); - EnableJdSpeed = false; +if(DisableIndex!=-1){ + console.log("检测到设定关闭特价金币查询"); + EnableJdSpeed=false; } //领现金 -let EnableCash = true; -DisableIndex = strDisableList.findIndex((item) => item === "领现金"); -if (DisableIndex != -1) { - console.log("检测到设定关闭领现金查询"); - EnableCash = false; -} +let EnableCash=true; +DisableIndex=strDisableList.findIndex((item) => item === "领现金"); +if(DisableIndex!=-1){ + console.log("检测到设定关闭领现金查询"); + EnableCash=false; +} //7天过期京豆 -let EnableOverBean = true; -DisableIndex = strDisableList.findIndex((item) => item === "过期京豆"); -if (DisableIndex != -1) { - console.log("检测到设定关闭过期京豆查询"); - EnableOverBean = false +let EnableOverBean=true; +DisableIndex=strDisableList.findIndex((item) => item === "过期京豆"); +if(DisableIndex!=-1){ + console.log("检测到设定关闭过期京豆查询"); + EnableOverBean=false } -//查优惠券 -let EnableChaQuan = false; -DisableIndex = strDisableList.findIndex((item) => item === "查优惠券"); -if (DisableIndex != -1) { - console.log("检测到设定关闭优惠券查询"); - EnableChaQuan = false +DisableIndex=strDisableList.findIndex((item) => item === "活动攻略"); +if(DisableIndex!=-1){ + console.log("检测到设定关闭活动攻略显示"); + RemainMessage=""; } -DisableIndex = strDisableList.findIndex((item) => item === "活动攻略"); -if (DisableIndex != -1) { - console.log("检测到设定关闭活动攻略显示"); - RemainMessage = ""; -} - -//汪汪赛跑 -let EnableJoyRun = true; -DisableIndex = strDisableList.findIndex((item) => item === "汪汪赛跑"); -if (DisableIndex != -1) { - console.log("检测到设定关闭汪汪赛跑查询"); - EnableJoyRun = false -} //京豆收益查询 -let EnableCheckBean = true; -DisableIndex = strDisableList.findIndex((item) => item === "京豆收益"); -if (DisableIndex != -1) { - console.log("检测到设定关闭京豆收益查询"); - EnableCheckBean = false +let EnableCheckBean=true; +DisableIndex=strDisableList.findIndex((item) => item === "京豆收益"); +if(DisableIndex!=-1){ + console.log("检测到设定关闭京豆收益查询"); + EnableCheckBean=false } +let EnableCheckEcard=true; +DisableIndex=strDisableList.findIndex((item) => item === "E卡查询"); +if(DisableIndex!=-1){ + console.log("检测到设定关闭E卡查询"); + EnableCheckEcard=false +} +!(async() => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + return; + } + for (i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.pt_pin = (cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; + $.index = i + 1; + $.beanCount = 0; + $.incomeBean = 0; + $.expenseBean = 0; + $.todayIncomeBean = 0; + $.todayOutcomeBean = 0; + $.errorMsg = ''; + $.isLogin = true; + $.nickName = ''; + $.levelName = ''; + $.message = ''; + $.balance = 0; + $.expiredBalance = 0; + $.JdFarmProdName = ''; + $.JdtreeEnergy = 0; + $.JdtreeTotalEnergy = 0; + $.treeState = 0; + $.JdwaterTotalT = 0; + $.JdwaterD = 0; + $.JDwaterEveryDayT = 0; + $.JDtotalcash = 0; + $.jdCash = 0; + $.isPlusVip = false; + $.isRealNameAuth = false; + $.JingXiang = ""; + $.allincomeBean = 0; //月收入 + $.allexpenseBean = 0; //月支出 + $.beanChangeXi=0; + $.YunFeiTitle=""; + $.YunFeiQuan = 0; + $.YunFeiQuanEndTime = ""; + $.YunFeiTitle2=""; + $.YunFeiQuan2 = 0; + $.YunFeiQuanEndTime2 = ""; + $.ECardinfo = ""; + $.PlustotalScore=0; + $.CheckTime=""; + $.beanCache=0; + $.marketCardTotal=""; + TempBaipiao = ""; + strGuoqi=""; + + console.log(`******开始查询【京东账号${$.index}】${$.nickName || $.UserName}*********`); + await TotalBean(); + //await TotalBean2(); + if ($.beanCount == 0) { + console.log("数据获取失败,等待30秒后重试....") + await $.wait(30*1000); + await TotalBean(); + } + if ($.beanCount == 0) { + console.log("疑似获取失败,等待10秒后用第二个接口试试....") + await $.wait(10*1000); + var userdata = await getuserinfo(); + if (userdata.code == 1) { + $.beanCount = userdata.content.jdBean; + } + } + + + if (!$.isLogin) { + await isLoginByX1a0He(); + } + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { - "open-url": "https://bean.m.jd.com/bean/signIndex.action" - }); - return; - } - for (i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.pt_pin = (cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); - $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; - $.index = i + 1; - $.beanCount = 0; - $.incomeBean = 0; - $.expenseBean = 0; - $.todayIncomeBean = 0; - $.todayOutcomeBean = 0; - $.errorMsg = ''; - $.isLogin = true; - $.nickName = ''; - $.levelName = ''; - $.message = ''; - $.balance = 0; - $.expiredBalance = 0; - $.JdFarmProdName = ''; - $.JdtreeEnergy = 0; - $.JdtreeTotalEnergy = 0; - $.treeState = 0; - $.JdwaterTotalT = 0; - $.JdwaterD = 0; - $.JDwaterEveryDayT = 0; - $.JDtotalcash = 0; - $.jdCash = 0; - $.isPlusVip = false; - $.isRealNameAuth = false; - $.JingXiang = ""; - $.allincomeBean = 0; //月收入 - $.allexpenseBean = 0; //月支出 - $.beanChangeXi = 0; - $.YunFeiTitle = ""; - $.YunFeiQuan = 0; - $.YunFeiQuanEndTime = ""; - $.YunFeiTitle2 = ""; - $.YunFeiQuan2 = 0; - $.YunFeiQuanEndTime2 = ""; - $.JoyRunningAmount = ""; - $.ECardinfo = ""; - $.PlustotalScore = 0; - $.CheckTime = ""; - $.beanCache = 0; - TempBaipiao = ""; - strGuoqi = ""; + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + if (TempBeanCache) { + for (let j = 0; j < TempBeanCache.length; j++) { + if (TempBeanCache[j].pt_pin == $.UserName) { + $.CheckTime = TempBeanCache[j].CheckTime; + $.beanCache = TempBeanCache[j].BeanNum; + break; + } + } + } + + var llfound = false; + var timeString = ""; + var nowHour = new Date().getHours(); + var nowMinute = new Date().getMinutes(); + if (nowHour < 10) + timeString += "0" + nowHour + ":"; + else + timeString += nowHour + ":"; - console.log(`******开始查询【京东账号${$.index}】${$.nickName || $.UserName}*********`); - $.UA = require('./USER_AGENTS').UARAM(); - await TotalBean(); - //await TotalBean2(); - if ($.beanCount == 0) { - console.log("数据获取失败,等待30秒后重试....") - await $.wait(30 * 1000); - await TotalBean(); - } - if ($.beanCount == 0) { - console.log("疑似获取失败,等待10秒后用第二个接口试试....") - await $.wait(10 * 1000); - var userdata = await getuserinfo(); - if (userdata.code == 1) { - $.beanCount = userdata.content.jdBean; - } - } + if (nowMinute < 10) + timeString += "0" + nowMinute; + else + timeString += nowMinute; + if (TodayCache) { + for (let j = 0; j < TodayCache.length; j++) { + if (TodayCache[j].pt_pin == $.UserName) { + TodayCache[j].CheckTime = timeString; + TodayCache[j].BeanNum = $.beanCount; + llfound = true; + break; + } + } + } + if (!llfound) { - if (!$.isLogin) { - await isLoginByX1a0He(); - } - if (!$.isLogin) { - $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { - "open-url": "https://bean.m.jd.com/bean/signIndex.action" - }); + var tempAddCache = { + "pt_pin": $.UserName, + "CheckTime": timeString, + "BeanNum": $.beanCount + }; + TodayCache.push(tempAddCache); + } + + await getjdfruitinfo(); //东东农场 + await $.wait(1000); + + await Promise.all([ + cash(), //特价金币 + bean(), //京豆查询 + jdCash(), //领现金 + CheckEcard(), //E卡查询 + getmarketCard() + ]) + + await showMsg(); + if (intPerSent > 0) { + if ((i + 1) % intPerSent == 0) { + console.log("分段通知条件达成,处理发送通知...."); + if ($.isNode() && allMessage) { + var TempMessage=allMessage; + if(strAllNotify) + allMessage=strAllNotify+`\n`+allMessage; - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } + await notify.sendNotify(`${$.name}`, `${allMessage}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }, '\n\n本通知 By ccwav Mod',TempMessage) + } + if ($.isNode() && allMessageMonth) { + await notify.sendNotify(`京东月资产变动`, `${allMessageMonth}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + } + allMessage = ""; + allMessageMonth = ""; + } - if (TempBeanCache) { - for (let j = 0; j < TempBeanCache.length; j++) { - if (TempBeanCache[j].pt_pin == $.UserName) { - $.CheckTime = TempBeanCache[j].CheckTime; - $.beanCache = TempBeanCache[j].BeanNum; - break; - } - } - } + } + } + } + + var str = JSON.stringify(TodayCache, null, 2); + fs.writeFile(strNewBeanCache, str, function (err) { + if (err) { + console.log(err); + console.log("添加缓存" + TodayDate + ".json失败!"); + } else { + console.log("添加缓存" + TodayDate + ".json成功!"); + } + }) - var llfound = false; - var timeString = ""; - var nowHour = new Date().getHours(); - var nowMinute = new Date().getMinutes(); - if (nowHour < 10) - timeString += "0" + nowHour + ":"; - else - timeString += nowHour + ":"; + //组1通知 + if (ReceiveMessageGp4) { + allMessage2Gp4 = `【⏰商品白嫖活动领取提醒⏰】\n` + ReceiveMessageGp4; + } + if (WarnMessageGp4) { + if (allMessage2Gp4) { + allMessage2Gp4 = `\n` + allMessage2Gp4; + } + allMessage2Gp4 = `【⏰商品白嫖活动任务提醒⏰】\n` + WarnMessageGp4 + allMessage2Gp4; + } - if (nowMinute < 10) - timeString += "0" + nowMinute; - else - timeString += nowMinute; + //组2通知 + if (ReceiveMessageGp2) { + allMessage2Gp2 = `【⏰商品白嫖活动领取提醒⏰】\n` + ReceiveMessageGp2; + } + if (WarnMessageGp2) { + if (allMessage2Gp2) { + allMessage2Gp2 = `\n` + allMessage2Gp2; + } + allMessage2Gp2 = `【⏰商品白嫖活动任务提醒⏰】\n` + WarnMessageGp2 + allMessage2Gp2; + } - if (TodayCache) { - for (let j = 0; j < TodayCache.length; j++) { - if (TodayCache[j].pt_pin == $.UserName) { - TodayCache[j].CheckTime = timeString; - TodayCache[j].BeanNum = $.beanCount; - llfound = true; - break; - } - } - } - if (!llfound) { + //组3通知 + if (ReceiveMessageGp3) { + allMessage2Gp3 = `【⏰商品白嫖活动领取提醒⏰】\n` + ReceiveMessageGp3; + } + if (WarnMessageGp3) { + if (allMessage2Gp3) { + allMessage2Gp3 = `\n` + allMessage2Gp3; + } + allMessage2Gp3 = `【⏰商品白嫖活动任务提醒⏰】\n` + WarnMessageGp3 + allMessage2Gp3; + } - var tempAddCache = { - "pt_pin": $.UserName, - "CheckTime": timeString, - "BeanNum": $.beanCount - }; - TodayCache.push(tempAddCache); - } + //其他通知 + if (allReceiveMessage) { + allMessage2 = `【⏰商品白嫖活动领取提醒⏰】\n` + allReceiveMessage; + } + if (allWarnMessage) { + if (allMessage2) { + allMessage2 = `\n` + allMessage2; + } + allMessage2 = `【⏰商品白嫖活动任务提醒⏰】\n` + allWarnMessage + allMessage2; + } - await getjdfruitinfo(); //东东农场 - await $.wait(1000); - await checkplus(); - await Promise.all([ - cash(), //特价金币 - bean(), //京豆查询 - //jdCash(), //领现金 - GetJoyRuninginfo(), //汪汪赛跑 - queryScores(), - getek() - ]) + if (intPerSent > 0) { + //console.log("分段通知还剩下" + cookiesArr.length % intPerSent + "个账号需要发送..."); + if (allMessage || allMessageMonth) { + console.log("分段通知收尾,处理发送通知...."); + if ($.isNode() && allMessage) { + var TempMessage=allMessage; + if(strAllNotify) + allMessage=strAllNotify+`\n`+allMessage; + + await notify.sendNotify(`${$.name}`, `${allMessage}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }, '\n\n本通知 By ccwav Mod',TempMessage) + } + if ($.isNode() && allMessageMonth) { + await notify.sendNotify(`京东月资产变动`, `${allMessageMonth}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + } + } + } else { - await showMsg(); - if (intPerSent > 0) { - if ((i + 1) % intPerSent == 0) { - console.log("分段通知条件达成,处理发送通知...."); - if ($.isNode() && allMessage) { - var TempMessage = allMessage; - if (strAllNotify) - allMessage = strAllNotify + `\n` + allMessage; + if ($.isNode() && allMessageGp2) { + var TempMessage=allMessageGp2; + if(strAllNotify) + allMessageGp2=strAllNotify+`\n`+allMessageGp2; + await notify.sendNotify(`${$.name}#2`, `${allMessageGp2}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }, '\n\n本通知 By ccwav Mod',TempMessage) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessageGp3) { + var TempMessage=allMessageGp3; + if(strAllNotify) + allMessageGp3=strAllNotify+`\n`+allMessageGp3; + await notify.sendNotify(`${$.name}#3`, `${allMessageGp3}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }, '\n\n本通知 By ccwav Mod',TempMessage) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessageGp4) { + var TempMessage=allMessageGp4; + if(strAllNotify) + allMessageGp4=strAllNotify+`\n`+allMessageGp4; + await notify.sendNotify(`${$.name}#4`, `${allMessageGp4}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }, '\n\n本通知 By ccwav Mod',TempMessage) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessage) { + var TempMessage=allMessage; + if(strAllNotify) + allMessage=strAllNotify+`\n`+allMessage; + + await notify.sendNotify(`${$.name}`, `${allMessage}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }, '\n\n本通知 By ccwav Mod',TempMessage) + await $.wait(10 * 1000); + } - await notify.sendNotify(`${$.name}`, `${allMessage}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }, undefined, TempMessage) - } - if ($.isNode() && allMessageMonth) { - await notify.sendNotify(`京东月资产统计`, `${allMessageMonth}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }) - } - allMessage = ""; - allMessageMonth = ""; - } + if ($.isNode() && allMessageMonthGp2) { + await notify.sendNotify(`京东月资产变动#2`, `${allMessageMonthGp2}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessageMonthGp3) { + await notify.sendNotify(`京东月资产变动#3`, `${allMessageMonthGp3}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessageMonthGp4) { + await notify.sendNotify(`京东月资产变动#4`, `${allMessageMonthGp4}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessageMonth) { + await notify.sendNotify(`京东月资产变动`, `${allMessageMonth}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + } - } - } - } - - var str = JSON.stringify(TodayCache, null, 2); - fs.writeFile(strNewBeanCache, str, function (err) { - if (err) { - console.log(err); - console.log("添加缓存" + TodayDate + ".json失败!"); - } else { - console.log("添加缓存" + TodayDate + ".json成功!"); - } - }) - - //组1通知 - if (ReceiveMessageGp4) { - allMessage2Gp4 = `【⏰商品白嫖清单⏰】\n` + ReceiveMessageGp4; - } - if (WarnMessageGp4) { - if (allMessage2Gp4) { - allMessage2Gp4 = `\n` + allMessage2Gp4; - } - allMessage2Gp4 = `【⏰商品白嫖活动任务提醒⏰】\n` + WarnMessageGp4 + allMessage2Gp4; - } - - //组2通知 - if (ReceiveMessageGp2) { - allMessage2Gp2 = `【⏰商品白嫖清单⏰】\n` + ReceiveMessageGp2; - } - if (WarnMessageGp2) { - if (allMessage2Gp2) { - allMessage2Gp2 = `\n` + allMessage2Gp2; - } - allMessage2Gp2 = `【⏰商品白嫖活动任务提醒⏰】\n` + WarnMessageGp2 + allMessage2Gp2; - } - - //组3通知 - if (ReceiveMessageGp3) { - allMessage2Gp3 = `【⏰商品白嫖清单⏰】\n` + ReceiveMessageGp3; - } - if (WarnMessageGp3) { - if (allMessage2Gp3) { - allMessage2Gp3 = `\n` + allMessage2Gp3; - } - allMessage2Gp3 = `【⏰商品白嫖活动任务提醒⏰】\n` + WarnMessageGp3 + allMessage2Gp3; - } - - //其他通知 - if (allReceiveMessage) { - allMessage2 = `【⏰商品白嫖清单⏰】\n` + allReceiveMessage; - } - if (allWarnMessage) { - if (allMessage2) { - allMessage2 = `\n` + allMessage2; - } - allMessage2 = `【⏰商品白嫖活动任务提醒⏰】\n` + allWarnMessage + allMessage2; - } - - if (intPerSent > 0) { - //console.log("分段通知还剩下" + cookiesArr.length % intPerSent + "个账号需要发送..."); - if (allMessage || allMessageMonth) { - console.log("分段通知收尾,处理发送通知...."); - if ($.isNode() && allMessage) { - var TempMessage = allMessage; - if (strAllNotify) - allMessage = strAllNotify + `\n` + allMessage; - - await notify.sendNotify(`${$.name}`, `${allMessage}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }, undefined, TempMessage) - } - if ($.isNode() && allMessageMonth) { - await notify.sendNotify(`京东月资产统计`, `${allMessageMonth}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }) - } - } - } else { - - if ($.isNode() && allMessageGp2) { - var TempMessage = allMessageGp2; - if (strAllNotify) - allMessageGp2 = strAllNotify + `\n` + allMessageGp2; - await notify.sendNotify(`${$.name}#2`, `${allMessageGp2}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }, undefined, TempMessage) - await $.wait(10 * 1000); - } - if ($.isNode() && allMessageGp3) { - var TempMessage = allMessageGp3; - if (strAllNotify) - allMessageGp3 = strAllNotify + `\n` + allMessageGp3; - await notify.sendNotify(`${$.name}#3`, `${allMessageGp3}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }, undefined, TempMessage) - await $.wait(10 * 1000); - } - if ($.isNode() && allMessageGp4) { - var TempMessage = allMessageGp4; - if (strAllNotify) - allMessageGp4 = strAllNotify + `\n` + allMessageGp4; - await notify.sendNotify(`${$.name}#4`, `${allMessageGp4}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }, undefined, TempMessage) - await $.wait(10 * 1000); - } - if ($.isNode() && allMessage) { - var TempMessage = allMessage; - if (strAllNotify) - allMessage = strAllNotify + `\n` + allMessage; - - await notify.sendNotify(`${$.name}`, `${allMessage}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }, undefined, TempMessage) - await $.wait(10 * 1000); - } - - if ($.isNode() && allMessageMonthGp2) { - await notify.sendNotify(`京东月资产统计#2`, `${allMessageMonthGp2}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }) - await $.wait(10 * 1000); - } - if ($.isNode() && allMessageMonthGp3) { - await notify.sendNotify(`京东月资产统计#3`, `${allMessageMonthGp3}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }) - await $.wait(10 * 1000); - } - if ($.isNode() && allMessageMonthGp4) { - await notify.sendNotify(`京东月资产统计#4`, `${allMessageMonthGp4}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }) - await $.wait(10 * 1000); - } - if ($.isNode() && allMessageMonth) { - await notify.sendNotify(`京东月资产统计`, `${allMessageMonth}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }) - await $.wait(10 * 1000); - } - } - - if ($.isNode() && allMessage2Gp2) { - allMessage2Gp2 += RemainMessage; - await notify.sendNotify("京东白嫖提醒#2", `${allMessage2Gp2}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }) - await $.wait(10 * 1000); - } - if ($.isNode() && allMessage2Gp3) { - allMessage2Gp3 += RemainMessage; - await notify.sendNotify("京东白嫖提醒#3", `${allMessage2Gp3}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }) - await $.wait(10 * 1000); - } - if ($.isNode() && allMessage2Gp4) { - allMessage2Gp4 += RemainMessage; - await notify.sendNotify("京东白嫖提醒#4", `${allMessage2Gp4}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }) - await $.wait(10 * 1000); - } - if ($.isNode() && allMessage2) { - allMessage2 += RemainMessage; - await notify.sendNotify("京东白嫖提醒", `${allMessage2}`, { - url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` - }) - await $.wait(10 * 1000); - } + if ($.isNode() && allMessage2Gp2) { + allMessage2Gp2 += RemainMessage; + await notify.sendNotify("京东白嫖榜#2", `${allMessage2Gp2}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessage2Gp3) { + allMessage2Gp3 += RemainMessage; + await notify.sendNotify("京东白嫖榜#3", `${allMessage2Gp3}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessage2Gp4) { + allMessage2Gp4 += RemainMessage; + await notify.sendNotify("京东白嫖榜#4", `${allMessage2Gp4}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessage2) { + allMessage2 += RemainMessage; + await notify.sendNotify("京东白嫖榜", `${allMessage2}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } })() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) +.catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}) +.finally(() => { + $.done(); +}) async function showMsg() { - //if ($.errorMsg) - //return - ReturnMessageTitle = ""; - ReturnMessage = ""; - var strsummary = ""; - if (MessageUserGp2) { - userIndex2 = MessageUserGp2.findIndex((item) => item === $.pt_pin); - } - if (MessageUserGp3) { - userIndex3 = MessageUserGp3.findIndex((item) => item === $.pt_pin); - } - if (MessageUserGp4) { - userIndex4 = MessageUserGp4.findIndex((item) => item === $.pt_pin); - } + //if ($.errorMsg) + //return + ReturnMessageTitle=""; + ReturnMessage = ""; + var strsummary=""; + if (MessageUserGp2) { + userIndex2 = MessageUserGp2.findIndex((item) => item === $.pt_pin); + } + if (MessageUserGp3) { + userIndex3 = MessageUserGp3.findIndex((item) => item === $.pt_pin); + } + if (MessageUserGp4) { + userIndex4 = MessageUserGp4.findIndex((item) => item === $.pt_pin); + } + + if (userIndex2 != -1) { + IndexGp2 += 1; + ReturnMessageTitle = `【账号${IndexGp2}🆔】${$.nickName || $.UserName}`; + } + if (userIndex3 != -1) { + IndexGp3 += 1; + ReturnMessageTitle = `【账号${IndexGp3}🆔】${$.nickName || $.UserName}`; + } + if (userIndex4 != -1) { + IndexGp4 += 1; + ReturnMessageTitle = `【账号${IndexGp4}🆔】${$.nickName || $.UserName}`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + IndexAll += 1; + ReturnMessageTitle = `【账号${IndexAll}🆔】${$.nickName || $.UserName}`; + } + + + if ($.JingXiang) { + if ($.isRealNameAuth) + if (cookie.includes("app_open")) + ReturnMessageTitle += `(wskey已实名)\n`; + else + ReturnMessageTitle += `(已实名)\n`; + else + if (cookie.includes("app_open")) + ReturnMessageTitle += `(wskey未实名)\n`; + else + ReturnMessageTitle += `(未实名)\n`; + + ReturnMessage += `【账号信息】`; + if ($.isPlusVip) { + ReturnMessage += `Plus会员`; + } else { + ReturnMessage += `普通会员`; + } + if ($.PlustotalScore) + ReturnMessage += `(${$.PlustotalScore}分)` + + ReturnMessage += `,京享值${$.JingXiang}\n`; + }else{ + ReturnMessageTitle+= `\n`; + } + if (llShowMonth) { + ReturnMessageMonth = ReturnMessage; + ReturnMessageMonth += `\n【上月收入】:${$.allincomeBean}京豆 🐶\n`; + ReturnMessageMonth += `【上月支出】:${$.allexpenseBean}京豆 🐶\n`; - if (userIndex2 != -1) { - IndexGp2 += 1; - ReturnMessageTitle = `【账号${IndexGp2}🆔】${$.nickName || $.UserName}`; - } - if (userIndex3 != -1) { - IndexGp3 += 1; - ReturnMessageTitle = `【账号${IndexGp3}🆔】${$.nickName || $.UserName}`; - } - if (userIndex4 != -1) { - IndexGp4 += 1; - ReturnMessageTitle = `【账号${IndexGp4}🆔】${$.nickName || $.UserName}`; - } - if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { - IndexAll += 1; - ReturnMessageTitle = `【账号${IndexAll}🆔】${$.nickName || $.UserName}`; - } + console.log(ReturnMessageMonth); + if (userIndex2 != -1) { + allMessageMonthGp2 += ReturnMessageMonth + `\n`; + } + if (userIndex3 != -1) { + allMessageMonthGp3 += ReturnMessageMonth + `\n`; + } + if (userIndex4 != -1) { + allMessageMonthGp4 += ReturnMessageMonth + `\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allMessageMonth += ReturnMessageMonth + `\n`; + } + if ($.isNode() && WP_APP_TOKEN_ONE) { + await notify.sendNotifybyWxPucher("京东月资产变动", `${ReturnMessageMonth}`, `${$.UserName}`); + } - if ($.JingXiang) { - if ($.isRealNameAuth) - if (cookie.includes("app_open")) - ReturnMessageTitle += `(wskey已实名)\n`; - else - ReturnMessageTitle += `(已实名)\n`; - else - if (cookie.includes("app_open")) - ReturnMessageTitle += `(wskey未实名)\n`; - else - ReturnMessageTitle += `(未实名)\n`; + } + if (EnableCheckBean) { + if (checkbeanDetailMode == 0) { + ReturnMessage += `【今日京豆】收${$.todayIncomeBean}豆`; + strsummary += `收${$.todayIncomeBean}豆,`; + if ($.todayOutcomeBean != 0) { + ReturnMessage += `,支${$.todayOutcomeBean}豆`; + } + ReturnMessage += `\n`; + ReturnMessage += `【昨日京豆】收${$.incomeBean}豆`; - ReturnMessage += `【账号信息】`; - if ($.isPlusVip) { - ReturnMessage += `Plus会员`; - } else { - ReturnMessage += `普通会员`; - } - if ($.PlustotalScore) - ReturnMessage += `(${$.PlustotalScore}分)` + if ($.expenseBean != 0) { + ReturnMessage += `,支${$.expenseBean}豆`; + } + ReturnMessage += `\n`; + } else { + if (TempBeanCache){ + ReturnMessage += `【京豆变动】${$.beanCount-$.beanCache}豆(与${matchtitle}${$.CheckTime}比较)`; + strsummary += `变动${$.beanCount-$.beanCache}豆,`; + ReturnMessage += `\n`; + } + else{ + ReturnMessage += `【京豆变动】未找到缓存,下次出结果统计`; + ReturnMessage += `\n`; + } + } + } + + + if ($.beanCount){ + ReturnMessage += `【当前京豆】${$.beanCount-$.beanChangeXi}豆(≈${(($.beanCount-$.beanChangeXi)/ 100).toFixed(2)}元)\n`; + } else { + if($.levelName || $.JingXiang) + ReturnMessage += `【当前京豆】获取失败,接口返回空数据\n`; + else{ + ReturnMessage += `【当前京豆】${$.beanCount-$.beanChangeXi}豆(≈${(($.beanCount-$.beanChangeXi)/ 100).toFixed(2)}元)\n`; + } + } + + if ($.JDtotalcash) { + ReturnMessage += `【特价金币】${$.JDtotalcash}币(≈${($.JDtotalcash / 10000).toFixed(2)}元)\n`; + } + if($.ECardinfo) + ReturnMessage += `【礼品卡余额】${$.ECardinfo}\n`; - ReturnMessage += `,京享值${$.JingXiang}\n`; - } else { - ReturnMessageTitle += `\n`; - } - if (llShowMonth) { - ReturnMessageMonth = ReturnMessage; - ReturnMessageMonth += `\n【上月收入】:${$.allincomeBean}京豆 🐶\n`; - ReturnMessageMonth += `【上月支出】:${$.allexpenseBean}京豆 🐶\n`; + if($.marketCardTotal) + ReturnMessage += `【超市卡余额】${$.marketCardTotal}\n`; + - console.log(ReturnMessageMonth); + if ($.JdFarmProdName != "") { + if ($.JdtreeEnergy != 0) { + if ($.treeState === 2 || $.treeState === 3) { + ReturnMessage += `【东东农场】${$.JdFarmProdName} 可以兑换了!\n`; + TempBaipiao += `【东东农场】${$.JdFarmProdName} 可以兑换了!\n`; + if (userIndex2 != -1) { + ReceiveMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; + } + if (userIndex3 != -1) { + ReceiveMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; + } + if (userIndex4 != -1) { + ReceiveMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allReceiveMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; + } + } else { + if ($.JdwaterD != 'Infinity' && $.JdwaterD != '-Infinity') { + ReturnMessage += `【东东农场】${$.JdFarmProdName}(${(($.JdtreeEnergy / $.JdtreeTotalEnergy) * 100).toFixed(0)}%,${$.JdwaterD}天)\n`; + } else { + ReturnMessage += `【东东农场】${$.JdFarmProdName}(${(($.JdtreeEnergy / $.JdtreeTotalEnergy) * 100).toFixed(0)}%)\n`; - if (userIndex2 != -1) { - allMessageMonthGp2 += ReturnMessageMonth + `\n`; - } - if (userIndex3 != -1) { - allMessageMonthGp3 += ReturnMessageMonth + `\n`; - } - if (userIndex4 != -1) { - allMessageMonthGp4 += ReturnMessageMonth + `\n`; - } - if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { - allMessageMonth += ReturnMessageMonth + `\n`; - } - if ($.isNode() && WP_APP_TOKEN_ONE) { - try { - await notify.sendNotifybyWxPucher("京东月资产统计", `${ReturnMessageMonth}`, `${$.UserName}`); - } catch { - $.log(`一对一推送异常,请拷贝库里的sendnotify.js文件到deps目录下,在拉库重试!!!\n`); - } - } + } + } + } else { + if ($.treeState === 0) { + TempBaipiao += `【东东农场】水果领取后未重新种植!\n`; - } - if (EnableCheckBean) { - if (checkbeanDetailMode == 0) { - ReturnMessage += `【今日京豆】收${$.todayIncomeBean}豆`; - strsummary += `收${$.todayIncomeBean}豆,`; - if ($.todayOutcomeBean != 0) { - ReturnMessage += `,支${$.todayOutcomeBean}豆`; - } - ReturnMessage += `\n`; - ReturnMessage += `【昨日京豆】收${$.incomeBean}豆`; + if (userIndex2 != -1) { + WarnMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; + } + if (userIndex3 != -1) { + WarnMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; + } + if (userIndex4 != -1) { + WarnMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allWarnMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; + } - if ($.expenseBean != 0) { - ReturnMessage += `,支${$.expenseBean}豆`; - } - ReturnMessage += `\n`; - } else { - if (TempBeanCache) { - ReturnMessage += `【京豆变动】${$.beanCount - $.beanCache}豆(与${matchtitle}${$.CheckTime}比较)`; - strsummary += `变动${$.beanCount - $.beanCache}豆,`; - ReturnMessage += `\n`; - } - else { - ReturnMessage += `【京豆变动】未找到缓存,下次出结果统计`; - ReturnMessage += `\n`; - } - } - } + } else if ($.treeState === 1) { + ReturnMessage += `【东东农场】${$.JdFarmProdName}种植中...\n`; + } else { + TempBaipiao += `【东东农场】状态异常!\n`; + if (userIndex2 != -1) { + WarnMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; + } + if (userIndex3 != -1) { + WarnMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; + } + if (userIndex4 != -1) { + WarnMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allWarnMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; + } + //ReturnMessage += `【东东农场】${$.JdFarmProdName}状态异常${$.treeState}...\n`; + } + } + } + + if ($.jdCash) { + ReturnMessage += `【其他信息】`; + + if ($.jdCash) { + ReturnMessage += `领现金:${$.jdCash}元`; + } + + ReturnMessage += `\n`; + } + + if(strGuoqi){ + ReturnMessage += `💸💸💸临期京豆明细💸💸💸\n`; + ReturnMessage += `${strGuoqi}`; + } + ReturnMessage += `🧧🧧🧧红包明细🧧🧧🧧\n`; + ReturnMessage += `${$.message}`; + strsummary+=`红包${$.balance}元` + if($.YunFeiQuan){ + var strTempYF="【免运费券】"+$.YunFeiQuan+"张"; + if($.YunFeiQuanEndTime) + strTempYF+="(有效期至"+$.YunFeiQuanEndTime+")"; + strTempYF+="\n"; + ReturnMessage +=strTempYF + } + if($.YunFeiQuan2){ + var strTempYF2="【免运费券】"+$.YunFeiQuan2+"张"; + if($.YunFeiQuanEndTime2) + strTempYF+="(有效期至"+$.YunFeiQuanEndTime2+")"; + strTempYF2+="\n"; + ReturnMessage +=strTempYF2 + } + + if (userIndex2 != -1) { + allMessageGp2 += ReturnMessageTitle+ReturnMessage + `\n`; + } + if (userIndex3 != -1) { + allMessageGp3 += ReturnMessageTitle+ReturnMessage + `\n`; + } + if (userIndex4 != -1) { + allMessageGp4 += ReturnMessageTitle+ReturnMessage + `\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allMessage += ReturnMessageTitle+ReturnMessage + `\n`; + } - if ($.beanCount) { - ReturnMessage += `【当前京豆】${$.beanCount - $.beanChangeXi}豆(≈${(($.beanCount - $.beanChangeXi) / 100).toFixed(2)}元)\n`; - } else { - if ($.levelName || $.JingXiang) - ReturnMessage += `【当前京豆】获取失败,接口返回空数据\n`; - else { - ReturnMessage += `【当前京豆】${$.beanCount - $.beanChangeXi}豆(≈${(($.beanCount - $.beanChangeXi) / 100).toFixed(2)}元)\n`; - } - } + console.log(`${ReturnMessageTitle+ReturnMessage}`); - if ($.JDtotalcash) { - ReturnMessage += `【特价金币】${$.JDtotalcash}币(≈${($.JDtotalcash / 10000).toFixed(2)}元)\n`; - } - if ($.ECardinfo) - ReturnMessage += `【礼品卡额】${$.ECardinfo}元\n`; + if ($.isNode() && WP_APP_TOKEN_ONE) { + var strTitle="京东资产变动"; + if($.JingXiang){ + if ($.isRealNameAuth) + if (cookie.includes("app_open")) + ReturnMessage=`【账号名称】${$.nickName || $.UserName}(wskey已实名)\n`+ReturnMessage; + else + ReturnMessage=`【账号名称】${$.nickName || $.UserName}(已实名)\n`+ReturnMessage; + else + if (cookie.includes("app_open")) + ReturnMessage=`【账号名称】${$.nickName || $.UserName}(wskey未实名)\n`+ReturnMessage; + else + ReturnMessage=`【账号名称】${$.nickName || $.UserName}(未实名)\n`+ReturnMessage; + + }else{ + ReturnMessage=`【账号名称】${$.nickName || $.UserName}\n`+ReturnMessage; + } + if (TempBaipiao) { + TempBaipiao = `【⏰商品白嫖活动提醒⏰】\n` + TempBaipiao; + ReturnMessage = TempBaipiao + `\n` + ReturnMessage; + } + + ReturnMessage += RemainMessage; + + if(strAllNotify) + ReturnMessage=strAllNotify+`\n`+ReturnMessage; + + await notify.sendNotifybyWxPucher(strTitle, `${ReturnMessage}`, `${$.UserName}`,'\n\n本通知 By ccwav Mod',strsummary); + } - if ($.JoyRunningAmount) - ReturnMessage += `【汪汪赛跑】${$.JoyRunningAmount}元\n`; - - if ($.JdFarmProdName != "") { - if ($.JdtreeEnergy != 0) { - if ($.treeState === 2 || $.treeState === 3) { - ReturnMessage += `【东东农场】${$.JdFarmProdName} 可以兑换了!\n`; - TempBaipiao += `【东东农场】${$.JdFarmProdName} 可以兑换了!\n`; - if (userIndex2 != -1) { - ReceiveMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; - } - if (userIndex3 != -1) { - ReceiveMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; - } - if (userIndex4 != -1) { - ReceiveMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; - } - if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { - allReceiveMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; - } - } else { - //if ($.JdwaterD != 'Infinity' && $.JdwaterD != '-Infinity') { - //ReturnMessage += `【东东农场】${$.JdFarmProdName}(${(($.JdtreeEnergy / $.JdtreeTotalEnergy) * 100).toFixed(0)}%,${$.JdwaterD}天)\n`; - //} else { - ReturnMessage += `【东东农场】${$.JdFarmProdName}(${(($.JdtreeEnergy / $.JdtreeTotalEnergy) * 100).toFixed(0)}%)\n`; - - //} - } - } else { - if ($.treeState === 0) { - TempBaipiao += `【东东农场】水果领取后未重新种植!\n`; - - if (userIndex2 != -1) { - WarnMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; - } - if (userIndex3 != -1) { - WarnMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; - } - if (userIndex4 != -1) { - WarnMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; - } - if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { - allWarnMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; - } - - } else if ($.treeState === 1) { - ReturnMessage += `【东东农场】${$.JdFarmProdName}种植中...\n`; - } else { - TempBaipiao += `【东东农场】状态异常!\n`; - if (userIndex2 != -1) { - WarnMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; - } - if (userIndex3 != -1) { - WarnMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; - } - if (userIndex4 != -1) { - WarnMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; - } - if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { - allWarnMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; - } - //ReturnMessage += `【东东农场】${$.JdFarmProdName}状态异常${$.treeState}...\n`; - } - } - } - let dwscore = await dwappinfo(); - if (dwscore) { - let dwappex = await dwappexpire(); - ReturnMessage += `【话费积分】${dwscore}`; - if (dwappex) { - ReturnMessage += `(近7日将过期${dwappex})`; - } - ReturnMessage += `\n`; - } - let marketcard = await marketCard(); - if (marketcard && marketcard.balance != '0.00' ) { - ReturnMessage += `【超市卡】${marketcard.balance}元`; - if (marketcard.expirationGiftAmountDes) { - ReturnMessage += `(${marketcard.expirationGiftAmountDes})`; - } - ReturnMessage += `\n`; - } - - if ($.jdCash) { - ReturnMessage += `【其他信息】`; - - if ($.jdCash) { - ReturnMessage += `领现金:${$.jdCash}元`; - } - - ReturnMessage += `\n`; - - } - - if (strGuoqi) { - ReturnMessage += `💸💸💸临期京豆明细💸💸💸\n`; - ReturnMessage += `${strGuoqi}`; - } - - ReturnMessage += `🧧🧧🧧红包明细🧧🧧🧧\n`; - ReturnMessage += `${$.message}`; - strsummary += `红包${$.balance}元` - if ($.YunFeiQuan) { - var strTempYF = "【免运费券】" + $.YunFeiQuan + "张"; - if ($.YunFeiQuanEndTime) - strTempYF += "(有效期至" + $.YunFeiQuanEndTime + ")"; - strTempYF += "\n"; - ReturnMessage += strTempYF - } - if ($.YunFeiQuan2) { - var strTempYF2 = "【免运费券】" + $.YunFeiQuan2 + "张"; - if ($.YunFeiQuanEndTime2) - strTempYF += "(有效期至" + $.YunFeiQuanEndTime2 + ")"; - strTempYF2 += "\n"; - ReturnMessage += strTempYF2 - } - - if (userIndex2 != -1) { - allMessageGp2 += ReturnMessageTitle + ReturnMessage + `\n`; - } - if (userIndex3 != -1) { - allMessageGp3 += ReturnMessageTitle + ReturnMessage + `\n`; - } - if (userIndex4 != -1) { - allMessageGp4 += ReturnMessageTitle + ReturnMessage + `\n`; - } - if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { - allMessage += ReturnMessageTitle + ReturnMessage + `\n------\n`; - } - - console.log(`${ReturnMessageTitle + ReturnMessage}`); - - if ($.isNode() && WP_APP_TOKEN_ONE) { - var strTitle = "京东资产统计"; - if ($.JingXiang) { - if ($.isRealNameAuth) - if (cookie.includes("app_open")) - ReturnMessage = `【账号名称】${$.nickName || $.UserName}(wskey已实名)\n` + ReturnMessage; - else - ReturnMessage = `【账号名称】${$.nickName || $.UserName}(已实名)\n` + ReturnMessage; - else - if (cookie.includes("app_open")) - ReturnMessage = `【账号名称】${$.nickName || $.UserName}(wskey未实名)\n` + ReturnMessage; - else - ReturnMessage = `【账号名称】${$.nickName || $.UserName}(未实名)\n` + ReturnMessage; - - } else { - ReturnMessage = `【账号名称】${$.nickName || $.UserName}\n` + ReturnMessage; - } - if (TempBaipiao) { - TempBaipiao = `【⏰商品白嫖活动提醒⏰】\n` + TempBaipiao; - ReturnMessage = TempBaipiao + `\n` + ReturnMessage; - } - - ReturnMessage += RemainMessage; - - if (strAllNotify) - ReturnMessage = strAllNotify + `\n` + ReturnMessage; - try { - await notify.sendNotifybyWxPucher(strTitle, `${ReturnMessage}`, `${$.UserName}`, undefined, strsummary); - } catch { - $.log(`一对一推送异常,请拷贝库里的sendnotify.js文件到deps目录下,在拉库重试!!!\n`); - } - } - - //$.msg($.name, '', ReturnMessage , {"open-url": "https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean"}); + //$.msg($.name, '', ReturnMessage , {"open-url": "https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean"}); } async function bean() { + + if (EnableCheckBean && checkbeanDetailMode==0) { + + // console.log(`北京时间零点时间戳:${parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000}`); + // console.log(`北京时间2020-10-28 06:16:05::${new Date("2020/10/28 06:16:05+08:00").getTime()}`) + // 不管哪个时区。得到都是当前时刻北京时间的时间戳 new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000 - if (EnableCheckBean && checkbeanDetailMode == 0) { - - // console.log(`北京时间零点时间戳:${parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000}`); - // console.log(`北京时间2020-10-28 06:16:05::${new Date("2020/10/28 06:16:05+08:00").getTime()}`) - // 不管哪个时区。得到都是当前时刻北京时间的时间戳 new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000 - - //前一天的0:0:0时间戳 - const tm = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000 - (24 * 60 * 60 * 1000); - // 今天0:0:0时间戳 - const tm1 = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000; - let page = 1, - t = 0, - yesterdayArr = [], - todayArr = []; - do { - let response = await getJingBeanBalanceDetail(page); - await $.wait(1000); - // console.log(`第${page}页: ${JSON.stringify(response)}`); - if (response && response.code === "0") { - page++; - let detailList = response.jingDetailList; - if (detailList && detailList.length > 0) { - for (let item of detailList) { - const date = item.date.replace(/-/g, '/') + "+08:00"; - if (new Date(date).getTime() >= tm1 && (!item['eventMassage'].includes("退还") && !item['eventMassage'].includes("物流") && !item['eventMassage'].includes('扣赠'))) { - todayArr.push(item); - } else if (tm <= new Date(date).getTime() && new Date(date).getTime() < tm1 && (!item['eventMassage'].includes("退还") && !item['eventMassage'].includes("物流") && !item['eventMassage'].includes('扣赠'))) { - //昨日的 - yesterdayArr.push(item); - } else if (tm > new Date(date).getTime()) { - //前天的 - t = 1; - break; - } - } - } else { - $.errorMsg = `数据异常`; - $.msg($.name, ``, `账号${$.index}:${$.nickName}\n${$.errorMsg}`); - t = 1; - } - } else if (response && response.code === "3") { - console.log(`cookie已过期,或者填写不规范,跳出`) - t = 1; - } else { - console.log(`未知情况:${JSON.stringify(response)}`); - console.log(`未知情况,跳出`) - t = 1; - } - } while (t === 0); - for (let item of yesterdayArr) { - if (Number(item.amount) > 0) { - $.incomeBean += Number(item.amount); - } else if (Number(item.amount) < 0) { - $.expenseBean += Number(item.amount); - } - } - for (let item of todayArr) { - if (Number(item.amount) > 0) { - $.todayIncomeBean += Number(item.amount); - } else if (Number(item.amount) < 0) { - $.todayOutcomeBean += Number(item.amount); - } - } - $.todayOutcomeBean = -$.todayOutcomeBean; - $.expenseBean = -$.expenseBean; - } - - if (EnableOverBean) { - await jingBeanDetail(); //过期京豆 - } - await redPacket(); - if (EnableChaQuan) - await getCoupon(); + //前一天的0:0:0时间戳 + const tm = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000 - (24 * 60 * 60 * 1000); + // 今天0:0:0时间戳 + const tm1 = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000; + let page = 1, + t = 0, + yesterdayArr = [], + todayArr = []; + do { + let response = await getJingBeanBalanceDetail(page); + await $.wait(1000); + // console.log(`第${page}页: ${JSON.stringify(response)}`); + if (response && response.code === "0") { + page++; + let detailList = response.jingDetailList; + if (detailList && detailList.length > 0) { + for (let item of detailList) { + const date = item.date.replace(/-/g, '/') + "+08:00"; + if (new Date(date).getTime() >= tm1 && (!item['eventMassage'].includes("退还") && !item['eventMassage'].includes("物流") && !item['eventMassage'].includes('扣赠'))) { + todayArr.push(item); + } else if (tm <= new Date(date).getTime() && new Date(date).getTime() < tm1 && (!item['eventMassage'].includes("退还") && !item['eventMassage'].includes("物流") && !item['eventMassage'].includes('扣赠'))) { + //昨日的 + yesterdayArr.push(item); + } else if (tm > new Date(date).getTime()) { + //前天的 + t = 1; + break; + } + } + } else { + $.errorMsg = `数据异常`; + $.msg($.name, ``, `账号${$.index}:${$.nickName}\n${$.errorMsg}`); + t = 1; + } + } else if (response && response.code === "3") { + console.log(`cookie已过期,或者填写不规范,跳出`) + t = 1; + } else { + console.log(`未知情况:${JSON.stringify(response)}`); + console.log(`未知情况,跳出`) + t = 1; + } + } while (t === 0); + for (let item of yesterdayArr) { + if (Number(item.amount) > 0) { + $.incomeBean += Number(item.amount); + } else if (Number(item.amount) < 0) { + $.expenseBean += Number(item.amount); + } + } + for (let item of todayArr) { + if (Number(item.amount) > 0) { + $.todayIncomeBean += Number(item.amount); + } else if (Number(item.amount) < 0) { + $.todayOutcomeBean += Number(item.amount); + } + } + $.todayOutcomeBean = -$.todayOutcomeBean; + $.expenseBean = -$.expenseBean; + } + + if (EnableOverBean) { + await jingBeanDetail(); //过期京豆 + } + await redPacket(); } async function Monthbean() { - let time = new Date(); - let year = time.getFullYear(); - let month = parseInt(time.getMonth()); //取上个月 - if (month == 0) { - //一月份,取去年12月,所以月份=12,年份减1 - month = 12; - year -= 1; - } + let time = new Date(); + let year = time.getFullYear(); + let month = parseInt(time.getMonth()); //取上个月 + if (month == 0) { + //一月份,取去年12月,所以月份=12,年份减1 + month = 12; + year -= 1; + } - //开始时间 时间戳 - let start = new Date(year + "-" + month + "-01 00:00:00").getTime(); - console.log(`计算月京豆起始日期:` + GetDateTime(new Date(year + "-" + month + "-01 00:00:00"))); + //开始时间 时间戳 + let start = new Date(year + "-" + month + "-01 00:00:00").getTime(); + console.log(`计算月京豆起始日期:` + GetDateTime(new Date(year + "-" + month + "-01 00:00:00"))); - //结束时间 时间戳 - if (month == 12) { - //取去年12月,进1个月,所以月份=1,年份加1 - month = 1; - year += 1; - } - let end = new Date(year + "-" + (month + 1) + "-01 00:00:00").getTime(); - console.log(`计算月京豆结束日期:` + GetDateTime(new Date(year + "-" + (month + 1) + "-01 00:00:00"))); + //结束时间 时间戳 + if (month == 12) { + //取去年12月,进1个月,所以月份=1,年份加1 + month = 1; + year += 1; + } + let end = new Date(year + "-" + (month + 1) + "-01 00:00:00").getTime(); + console.log(`计算月京豆结束日期:` + GetDateTime(new Date(year + "-" + (month + 1) + "-01 00:00:00"))); - let allpage = 1, - allt = 0, - allyesterdayArr = []; - do { - let response = await getJingBeanBalanceDetail(allpage); - await $.wait(1000); - // console.log(`第${allpage}页: ${JSON.stringify(response)}`); - if (response && response.code === "0") { - allpage++; - let detailList = response.jingDetailList; - if (detailList && detailList.length > 0) { - for (let item of detailList) { - const date = item.date.replace(/-/g, '/') + "+08:00"; - if (start <= new Date(date).getTime() && new Date(date).getTime() < end) { - //日期区间内的京豆记录 - allyesterdayArr.push(item); - } else if (start > new Date(date).getTime()) { - //前天的 - allt = 1; - break; - } - } - } else { - $.errorMsg = `数据异常`; - $.msg($.name, ``, `账号${$.index}:${$.nickName}\n${$.errorMsg}`); - allt = 1; - } - } else if (response && response.code === "3") { - console.log(`cookie已过期,或者填写不规范,跳出`) - allt = 1; - } else { - console.log(`未知情况:${JSON.stringify(response)}`); - console.log(`未知情况,跳出`) - allt = 1; - } - } while (allt === 0); + let allpage = 1, + allt = 0, + allyesterdayArr = []; + do { + let response = await getJingBeanBalanceDetail(allpage); + await $.wait(1000); + // console.log(`第${allpage}页: ${JSON.stringify(response)}`); + if (response && response.code === "0") { + allpage++; + let detailList = response.jingDetailList; + if (detailList && detailList.length > 0) { + for (let item of detailList) { + const date = item.date.replace(/-/g, '/') + "+08:00"; + if (start <= new Date(date).getTime() && new Date(date).getTime() < end) { + //日期区间内的京豆记录 + allyesterdayArr.push(item); + } else if (start > new Date(date).getTime()) { + //前天的 + allt = 1; + break; + } + } + } else { + $.errorMsg = `数据异常`; + $.msg($.name, ``, `账号${$.index}:${$.nickName}\n${$.errorMsg}`); + allt = 1; + } + } else if (response && response.code === "3") { + console.log(`cookie已过期,或者填写不规范,跳出`) + allt = 1; + } else { + console.log(`未知情况:${JSON.stringify(response)}`); + console.log(`未知情况,跳出`) + allt = 1; + } + } while (allt === 0); - for (let item of allyesterdayArr) { - if (Number(item.amount) > 0) { - $.allincomeBean += Number(item.amount); - } else if (Number(item.amount) < 0) { - $.allexpenseBean += Number(item.amount); - } - } + for (let item of allyesterdayArr) { + if (Number(item.amount) > 0) { + $.allincomeBean += Number(item.amount); + } else if (Number(item.amount) < 0) { + $.allexpenseBean += Number(item.amount); + } + } } async function jdCash() { - if (!EnableCash) - return; - let opt = { - url: `https://api.m.jd.com`, - body: `functionId=cash_exchange_center&body={"version":"1","channel":"app"}&appid=signed_wh5&client=android&clientVersion=11.8.0&t=${Date.now()}`, - headers: { - 'Host': 'api.m.jd.com', - 'Origin': 'https://h5.m.jd.com', - 'Content-Type': 'application/x-www-form-urlencoded', - 'User-Agent': $.UA, - 'Cookie': cookie - } - } - return new Promise((resolve) => { - $.post(opt, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`jdCash API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data) - if (data.code == 0) { - if (data.data.bizCode == 0) { - $.jdCash = data.data.result.userMoney; - } else { - //console.log(data.data.bizMsg); - } - } else { - //console.log(data.msg) - } - } - } - } catch (e) { - $.logErr(e, resp) - } - finally { - resolve(data); - } - }) - }) + if (!EnableCash) + return; + let functionId = "cash_homePage"; + let sign = await getSignfromNolan(functionId, {}); + return new Promise((resolve) => { + $.post(apptaskUrl(functionId, sign), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`jdCash API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.data.result) { + $.jdCash = data.data.result.totalMoney || 0; + return + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) } -function apptaskUrl(functionId = "", body = "") { - return { - url: `${JD_API_HOST}?functionId=${functionId}`, - body, - headers: { - 'Cookie': cookie, - 'Host': 'api.m.jd.com', - 'Connection': 'keep-alive', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Referer': '', - 'User-Agent': 'JD4iPhone/167774 (iPhone; iOS 14.7.1; Scale/3.00)', - 'Accept-Language': 'zh-Hans-CN;q=1', - 'Accept-Encoding': 'gzip, deflate, br', - }, - timeout: 10000 +function randomUserAgent() { + const uuid = generateRandomString('abcdefghijklmnopqrstuvwxyz0123456789', 40); + const addressid = generateRandomString('1234567898647', 10); + const iosVer = selectRandomFromArray(["15.1.1", "14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1"]); + const iosV = iosVer.replace(/\./g, '_'); + const clientVersion = selectRandomFromArray(["10.3.0", "10.2.7", "10.2.4"]); + const iPhone = selectRandomFromArray(["8", "9", "10", "11", "12", "13"]); + const ADID = `${generateRandomString('0987654321ABCDEF', 8)}-${generateRandomString('0987654321ABCDEF', 4)}-${generateRandomString('0987654321ABCDEF', 4)}-${generateRandomString('0987654321ABCDEF', 4)}-${generateRandomString('0987654321ABCDEF', 12)}`; + const area = `${generateRandomString('0123456789', 2)}_${generateRandomString('0123456789', 4)}_${generateRandomString('0123456789', 5)}_${generateRandomString('0123456789', 4)}`; + const lng = `119.31991256596${randomInt(100, 999)}`; + const lat = `26.1187118976${randomInt(100, 999)}`; + + const UserAgent = `jdapp;iPhone;10.0.4;${iosVer};${uuid};network/wifi;ADID/${ADID};model/iPhone${iPhone},1;addressid/${addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS ${iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1`; + return UserAgent; +} + +function generateRandomString(chars, length) { + let result = ''; + for (let i = 0; i < length; i++) { + result += chars.charAt(Math.floor(Math.random() * chars.length)); } + return result; +} + +function selectRandomFromArray(array) { + return array[Math.floor(Math.random() * array.length)]; +} + +function randomInt(min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); +} + +async function CheckEcard(ck) { + if (!EnableCheckEcard) + return; + const UA=randomUserAgent(); + const url = 'https://mygiftcard.jd.com/giftcard/queryGiftCardItem/app?source=JDAP'; + const headers = { + "accept": "application/json, text/plain, */*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh-Hans;q=0.9", + "content-length": "44", + "content-type": "application/x-www-form-urlencoded", + "cookie": cookie, + "origin": "https://mygiftcard.jd.com", + "referer": "https://mygiftcard.jd.com/giftcardForM.html?source=JDAP&sid=9f55a224c8286baa2fe3a7545bbd411w&un_area=16_1303_48712_48758", + "user-agent": UA + }; + + let balance = 0; + let TotalCard = 0; + try { + var data = 'pageNo=1&queryType=1&cardType=-1&pageSize=20'; + var response = await axios.post(url, data, { headers: headers }); + var couponVOList = response.data.couponVOList; + + TotalCard+=couponVOList.length; + for (let i = 0; i < couponVOList.length; i++) { + balance += couponVOList[i]['balance']; + } + + if (TotalCard==20){ + data = 'pageNo=2&queryType=1&cardType=-1&pageSize=20'; + response = await axios.post(url, data, { headers: headers }); + couponVOList = response.data.couponVOList; + TotalCard+=couponVOList.length; + for (let i = 0; i < couponVOList.length; i++) { + balance += couponVOList[i]['balance']; + } + } + + if (balance > 0) + $.ECardinfo = '共' + TotalCard + '张E卡,合计' + parseFloat(balance).toFixed(2) + '元'; + + } catch (e) { + console.error(e); + } +} +async function getmarketCard() { + if (!EnableCheckEcard) + return; + const url = 'https://api.m.jd.com/atop_channel_marketCard_cardInfo'; + const UA=randomUserAgent(); + const headers = { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh-Hans;q=0.9", + "content-length": "1250", + "content-type": "application/x-www-form-urlencoded", + "cookie": cookie, + "origin": "https://pro.m.jd.com", + "referer": "https://pro.m.jd.com/mall/active/3KehY4eAj3D1iLzFB7p5pb68qXkT/index.html?stath=54&navh=44&topNavStyle=1&babelChannel=ttt9&hideAnchorBottomTab=1&hideBack=1&tttparams=ib0MwweyJnTGF0IjoiMjYuMTE5OTQ2IiwidW5fYXJlYSI6IjE2XzEzMDNfNDg3MTJfNDg3NTgiLCJkTGF0IjoiIiwicHJzdGF0ZSI6IjAiLCJhZGRyZXNzSWQiOiI5MjU4MDQyNTg3IiwibGF0IjoiMC4wMDAwMDAiLCJwb3NMYXQiOiIyNi4xMTk5NDYiLCJwb3NMbmciOiIxMTkuMzIwMzM5IiwiZ3BzX2FyZWEiOiIwXzBfMF8wIiwibG5nIjoiMC4wMDAwMDAiLCJ1ZW1wcyI6IjAtMC0yIiwiZ0xuZyI6IjExOS4zMjAzMzkiLCJtb2RlbCI6ImlQaG9uZTE1LDIiLCJkTG5nIjoiIn60%3D&forceCurrentView=1&showhead=no", + "request-from": "native", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "user-agent": UA, + "x-referer-page": "https://pro.m.jd.com/mall/active/3KehY4eAj3D1iLzFB7p5pb68qXkT/index.html", + "x-rp-client": "h5_1.0.0" + }; + const data='appid=jd-super-market&t=1705212843271&functionId=atop_channel_marketCard_cardInfo&client=m&uuid=1201e4461b24640164a706c0a3444fd79de6577f&body=%7B%22babelChannel%22%3A%22ttt9%22%2C%22isJdApp%22%3A%221%22%2C%22isWx%22%3A%220%22%7D&h5st=20240114141403366%3Btnyqq56fhh69dd12%3B35fa0%3Btk02w847d1aac41lMXgyKzErM2w1k33PAhGy9ZX69M3Rvtgag743srkufMW1LE0zE5Crn405w3HPl20IgdET8DfgM32d%3B87c14a095a901f37feabf4d6616b8e149539de48e2fd715bedda5baea9729c41%3B4.3%3B1705212843366%3B5fb5b0eea0d604be5747ccee135178e687458f7f659003bdc2ca943d6e3006043ae4bf75ab450370c9d309909a15a988f37ccb53c9ced6e3017095a1065b75238ed637a529a266eb3370fc34ce5a9036017e96632bec64838fdb2f9b39c675cdc7d19ddc121504a7a32f7e1da54fc20c2f8ce6b879c255b77a506eb644aa4e532df91f2c44c6e7412b713f82847feb7e76668e7b0dd6e97685dfff3708e0fa5d4a08ca7a4eba27b71f0d5ecbc75cb17e6c4a6052b5b7b30d17005a24eb576981c7dd1b066a8ac01ffee3f77faa4cba708daf2be433c83204e302ac610d3eba913f78a2d39a82d2f74c9f05fee1768d97ffae5668989394f4412c7de5dd105e663aca420a85fa949e412ff869d0199814a265a0f13cad4ff8e0a4e6c3ccebbd22cb1f0398da3ef6eedb3b6941fdc55d7449823c957977e607ddbdf39a6e016f98&x-api-eid-token=jdd03NK6FVUZZ5D76SCVX2RZCJX3PGM7JVJNWMQ56NLLLQEEVURFKGHP537UFXMCBYWZUBFICVZMQJNXLODQMJOA6B3YOIAAAAAMNA2NP7SQAAAAAD5BK47RNLM7UAYX' + try { + const response = await axios.post(url, data, { headers }); + if (response.data.success && response.data.data?.floorData?.items && response.data.data?.floorData?.items[0].marketCardVO.balance>0) { + $.marketCardTotal = "总"+response.data.data?.floorData?.items[0].marketCardVO.balance+"元"; + if(response.data.data?.floorData?.items[0].marketCardVO.expirationGiftAmountDes) + $.marketCardTotal +=","+response.data.data?.floorData?.items[0].marketCardVO.expirationGiftAmountDes; + } + } catch (e) { + console.error(e); + } +} + + +function apptaskUrl(functionId = "", body = "") { + return { + url: `${JD_API_HOST}?functionId=${functionId}`, + body, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Referer': '', + 'User-Agent': 'JD4iPhone/167774 (iPhone; iOS 14.7.1; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + timeout: 10000 + } } function TotalBean() { @@ -1144,7 +1209,7 @@ function TotalBean() { "Connection": "keep-alive", "Cookie": cookie, "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "User-Agent": $.UA + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") } } $.post(options, (err, resp, data) => { @@ -1161,16 +1226,16 @@ function TotalBean() { } if (data['retcode'] === 0) { $.nickName = (data['base'] && data['base'].nickname) || $.UserName; - //$.isPlusVip=data['isPlusVip']; - $.isRealNameAuth = data['isRealNameAuth']; - $.beanCount = (data['base'] && data['base'].jdNum) || 0; - $.JingXiang = (data['base'] && data['base'].jvalue) || 0; + $.isPlusVip=data['isPlusVip']; + $.isRealNameAuth=data['isRealNameAuth']; + $.beanCount=(data['base'] && data['base'].jdNum) || 0 ; + $.JingXiang = (data['base'] && data['base'].jvalue) || 0 ; } else { $.nickName = $.UserName } - - - + + + } else { console.log(`京东服务器返回空数据`) } @@ -1185,221 +1250,221 @@ function TotalBean() { } function TotalBean2() { - return new Promise(async (resolve) => { - const options = { - url: `https://wxapp.m.jd.com/kwxhome/myJd/home.json?&useGuideModule=0&bizId=&brandId=&fromType=wxapp×tamp=${Date.now()}`, - headers: { - Cookie: cookie, - 'content-type': `application/x-www-form-urlencoded`, - Connection: `keep-alive`, - 'Accept-Encoding': `gzip,compress,br,deflate`, - Referer: `https://servicewechat.com/wxa5bf5ee667d91626/161/page-frame.html`, - Host: `wxapp.m.jd.com`, - 'User-Agent': `Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.10(0x18000a2a) NetType/WIFI Language/zh_CN`, - }, - timeout: 10000 - }; - $.post(options, (err, resp, data) => { - try { - if (err) { - $.logErr(err); - } else { - if (data) { - data = JSON.parse(data); - - if (!data.user) { - return; - } - const userInfo = data.user; - if (userInfo) { - if (!$.nickName) - $.nickName = userInfo.petName; - if ($.beanCount == 0) { - $.beanCount = userInfo.jingBean; - } - $.JingXiang = userInfo.uclass; - } - } else { - $.log('京东服务器返回空数据'); - } - } - } catch (e) { - $.logErr(e); - } - finally { - resolve(); - } - }); - }); + return new Promise(async(resolve) => { + const options = { + url: `https://wxapp.m.jd.com/kwxhome/myJd/home.json?&useGuideModule=0&bizId=&brandId=&fromType=wxapp×tamp=${Date.now()}`, + headers: { + Cookie: cookie, + 'content-type': `application/x-www-form-urlencoded`, + Connection: `keep-alive`, + 'Accept-Encoding': `gzip,compress,br,deflate`, + Referer: `https://servicewechat.com/wxa5bf5ee667d91626/161/page-frame.html`, + Host: `wxapp.m.jd.com`, + 'User-Agent': `Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.10(0x18000a2a) NetType/WIFI Language/zh_CN`, + }, + timeout: 10000 + }; + $.post(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err); + } else { + if (data) { + data = JSON.parse(data); + + if (!data.user) { + return; + } + const userInfo = data.user; + if (userInfo) { + if (!$.nickName) + $.nickName = userInfo.petName; + if ($.beanCount == 0) { + $.beanCount = userInfo.jingBean; + } + $.JingXiang = userInfo.uclass; + } + } else { + $.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e); + } + finally { + resolve(); + } + }); + }); } function isLoginByX1a0He() { - return new Promise((resolve) => { - const options = { - url: 'https://plogin.m.jd.com/cgi-bin/ml/islogin', - headers: { - "Cookie": cookie, - "referer": "https://h5.m.jd.com/", - "User-Agent": "jdapp;iPhone;10.1.2;15.0;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", - }, - timeout: 10000 - } - $.get(options, (err, resp, data) => { - try { - if (data) { - data = JSON.parse(data); - if (data.islogin === "1") { - console.log(`使用X1a0He写的接口加强检测: Cookie有效\n`) - } else if (data.islogin === "0") { - $.isLogin = false; - console.log(`使用X1a0He写的接口加强检测: Cookie无效\n`) - } else { - console.log(`使用X1a0He写的接口加强检测: 未知返回,不作变更...\n`) - $.error = `${$.nickName} :` + `使用X1a0He写的接口加强检测: 未知返回...\n` - } - } - } catch (e) { - console.log(e); - } - finally { - resolve(); - } - }); - }); + return new Promise((resolve) => { + const options = { + url: 'https://plogin.m.jd.com/cgi-bin/ml/islogin', + headers: { + "Cookie": cookie, + "referer": "https://h5.m.jd.com/", + "User-Agent": "jdapp;iPhone;10.1.2;15.0;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }, + timeout: 10000 + } + $.get(options, (err, resp, data) => { + try { + if (data) { + data = JSON.parse(data); + if (data.islogin === "1") { + console.log(`使用X1a0He写的接口加强检测: Cookie有效\n`) + } else if (data.islogin === "0") { + $.isLogin = false; + console.log(`使用X1a0He写的接口加强检测: Cookie无效\n`) + } else { + console.log(`使用X1a0He写的接口加强检测: 未知返回,不作变更...\n`) + $.error = `${$.nickName} :` + `使用X1a0He写的接口加强检测: 未知返回...\n` + } + } + } catch (e) { + console.log(e); + } + finally { + resolve(); + } + }); + }); } function getJingBeanBalanceDetail(page) { - return new Promise(async resolve => { - const options = { - "url": `https://bean.m.jd.com/beanDetail/detail.json?page=${page}`, - "body": `body=${escape(JSON.stringify({ "pageSize": "20", "page": page.toString() }))}&appid=ld`, - "headers": { - 'User-Agent': $.UA, - 'Content-Type': 'application/x-www-form-urlencoded', - 'Cookie': cookie, - } + return new Promise(async resolve => { + const options = { + "url": `https://bean.m.jd.com/beanDetail/detail.json?page=${page}`, + "body": `body=${escape(JSON.stringify({"pageSize": "20", "page": page.toString()}))}&appid=ld`, + "headers": { + 'User-Agent': "Mozilla/5.0 (Linux; Android 12; SM-G9880) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Mobile Safari/537.36 EdgA/106.0.1370.47", + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': cookie, + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`getJingBeanBalanceDetail API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + // console.log(data) + } else { + // console.log(`京东服务器返回空数据`) + } } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`getJingBeanBalanceDetail API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - // console.log(data) - } else { - // console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - // $.logErr(e, resp) - } finally { - resolve(data); - } - }) + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data); + } }) + }) } function jingBeanDetail() { - return new Promise(async resolve => { - setTimeout(async () => { - var strsign = ""; - if (epsignurl) { - strsign = await getepsign('jingBeanDetail', { "pageSize": "20", "page": "1" }); - strsign = strsign.body; - } - else - strsign = await getSignfromNolan('jingBeanDetail', { "pageSize": "20", "page": "1" }); + return new Promise(async resolve => { + setTimeout(async () => { + var strsign = ""; + if (epsignurl) { + strsign = await getepsign('jingBeanDetail', { "pageSize": "20", "page": "1" }); + strsign = strsign.body; + } + else + strsign = await getSignfromNolan('jingBeanDetail', { "pageSize": "20", "page": "1" }); - const options = { - "url": `https://api.m.jd.com/client.action?functionId=jingBeanDetail`, - "body": strsign, - "headers": { - 'User-Agent': $.UA, - 'Host': 'api.m.jd.com', - 'Content-Type': 'application/x-www-form-urlencoded', - 'Cookie': cookie, - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} jingBeanDetail API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data?.others?.jingBeanExpiringInfo?.detailList) { - const { detailList = [] } = data?.others?.jingBeanExpiringInfo; - detailList.map(item => { - strGuoqi += `【${(item['eventMassage']).replace("即将过期京豆", "").replace("年", "-").replace("月", "-").replace("日", "")}】过期${item['amount']}豆\n`; - }) - } - } else { - console.log(`jingBeanDetail 京东服务器返回空数据`) - } - } - } catch (e) { - if (epsignurl) - $.logErr(e, resp) - else - console.log("因为没有指定带ep的Sign,获取过期豆子信息次数多了就会失败.") - } finally { - resolve(data); - } - }) - }, 0 * 1000); - }) -} - -function getepsign(n, o, t = "sign") { - let e = { - url: epsignurl, - form: { - functionId: n, body: $.toStr(o), - }, headers: { - 'Content-Type': 'application/x-www-form-urlencoded', + const options = { + "url": `https://api.m.jd.com/client.action?functionId=jingBeanDetail`, + "body": strsign, + "headers": { + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Host': 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': cookie, + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} jingBeanDetail API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data?.others?.jingBeanExpiringInfo?.detailList) { + const { detailList = [] } = data?.others?.jingBeanExpiringInfo; + detailList.map(item => { + strGuoqi += `【${(item['eventMassage']).replace("即将过期京豆", "").replace("年", "-").replace("月", "-").replace("日", "")}】过期${item['amount']}豆\n`; + }) + } + } else { + console.log(`jingBeanDetail 京东服务器返回空数据`) + } + } + } catch (e) { + if (epsignurl) + $.logErr(e, resp) + else + console.log("因为没有指定带ep的Sign,获取过期豆子信息次数多了就会失败.") + } finally { + resolve(data); + } + }) + }, 0 * 1000); + }) +} + +function getepsign(n, o, t = "sign") { + let e = { + url: epsignurl, + form: { + functionId: n, body: $.toStr(o), + }, headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + } + }; + return new Promise(n => { + $.post(e, async (o, t, e) => { + try { + o ? console.log(o) : e = JSON.parse(e) + if (e.code === 200 && e.data) { + n({body: e.data.convertUrlNew}) } - }; - return new Promise(n => { - $.post(e, async (o, t, e) => { - try { - o ? console.log(o) : e = JSON.parse(e) - if (e.code === 200 && e.data) { - n({ body: e.data.convertUrlNew }) - } - } catch (n) { - $.logErr(n, t) - } finally { - n({ body: e.convertUrlNew }) - } - }) + } catch (n) { + $.logErr(n, t) + } finally { + n({body: e.convertUrlNew}) + } }) + }) } -function getSignfromNolan(functionId, body) { +function getSignfromNolan(functionId, body) { var strsign = ''; - let data = { - "fn": functionId, - "body": body + let data = { + "fn":functionId, + "body": body } return new Promise((resolve) => { let url = { url: jdSignUrl, body: JSON.stringify(data), - followRedirect: false, - headers: { - 'Accept': '*/*', - "accept-encoding": "gzip, deflate, br", - 'Content-Type': 'application/json' - }, - timeout: 30000 + followRedirect: false, + headers: { + 'Accept': '*/*', + "accept-encoding": "gzip, deflate, br", + 'Content-Type': 'application/json' + }, + timeout: 30000 } - $.post(url, async (err, resp, data) => { - try { + $.post(url, async(err, resp, data) => { + try { data = JSON.parse(data); - if (data && data.body) { + if (data && data.body) { if (data.body) strsign = data.body || ''; if (strsign != '') @@ -1408,648 +1473,462 @@ function getSignfromNolan(functionId, body) { console.log("签名获取失败."); } else { console.log("签名获取失败."); - } - } catch (e) { + } + }catch (e) { $.logErr(e, resp); - } finally { - resolve(strsign); - } + }finally { + resolve(strsign); + } }) }) } function redPacket() { - return new Promise(async resolve => { - const options = { - "url": `https://api.m.jd.com/client.action?functionId=myhongbao_getUsableHongBaoList&body=%7B%22appId%22%3A%22appHongBao%22%2C%22appToken%22%3A%22apphongbao_token%22%2C%22platformId%22%3A%22appHongBao%22%2C%22platformToken%22%3A%22apphongbao_token%22%2C%22platform%22%3A%221%22%2C%22orgType%22%3A%222%22%2C%22country%22%3A%22cn%22%2C%22childActivityId%22%3A%22-1%22%2C%22childActiveName%22%3A%22-1%22%2C%22childActivityTime%22%3A%22-1%22%2C%22childActivityUrl%22%3A%22-1%22%2C%22openId%22%3A%22-1%22%2C%22activityArea%22%3A%22-1%22%2C%22applicantErp%22%3A%22-1%22%2C%22eid%22%3A%22-1%22%2C%22fp%22%3A%22-1%22%2C%22shshshfp%22%3A%22-1%22%2C%22shshshfpa%22%3A%22-1%22%2C%22shshshfpb%22%3A%22-1%22%2C%22jda%22%3A%22-1%22%2C%22activityType%22%3A%221%22%2C%22isRvc%22%3A%22-1%22%2C%22pageClickKey%22%3A%22-1%22%2C%22extend%22%3A%22-1%22%2C%22organization%22%3A%22JD%22%7D&appid=JDReactMyRedEnvelope&client=apple&clientVersion=7.0.0`, - "headers": { - 'Host': 'api.m.jd.com', - 'Accept': '*/*', - 'Connection': 'keep-alive', - 'Accept-Language': 'zh-cn', - 'Referer': 'https://h5.m.jd.com/', - 'Accept-Encoding': 'gzip, deflate, br', - "Cookie": cookie, - 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") - } - } - $.get(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`redPacket API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - $.jxRed = 0, - $.jsRed = 0, - $.jdRed = 0, - $.jdhRed = 0, - $.jdwxRed = 0, - $.jdGeneralRed = 0, - $.jxRedExpire = 0, - $.jsRedExpire = 0, - $.jdRedExpire = 0, - $.jdhRedExpire = 0; - $.jdwxRedExpire = 0, - $.jdGeneralRedExpire = 0 - - let t = new Date(); - t.setDate(t.getDate() + 1); - t.setHours(0, 0, 0, 0); - t = parseInt((t - 1) / 1000) * 1000; - - for (let vo of data.hongBaoList || []) { - if (vo.orgLimitStr) { - if (vo.orgLimitStr.includes("京喜") && !vo.orgLimitStr.includes("特价")) { - $.jxRed += parseFloat(vo.balance) - if (vo['endTime'] === t) { - $.jxRedExpire += parseFloat(vo.balance) - } - continue; - } else if (vo.orgLimitStr.includes("购物小程序")) { - $.jdwxRed += parseFloat(vo.balance) - if (vo['endTime'] === t) { - $.jdwxRedExpire += parseFloat(vo.balance) - } - continue; - } else if (vo.orgLimitStr.includes("京东商城")) { - $.jdRed += parseFloat(vo.balance) - if (vo['endTime'] === t) { - $.jdRedExpire += parseFloat(vo.balance) - } - continue; - } else if (vo.orgLimitStr.includes("极速") || vo.orgLimitStr.includes("京东特价") || vo.orgLimitStr.includes("京喜特价")) { - $.jsRed += parseFloat(vo.balance) - if (vo['endTime'] === t) { - $.jsRedExpire += parseFloat(vo.balance) - } - continue; - } else if (vo.orgLimitStr && vo.orgLimitStr.includes("京东健康")) { - $.jdhRed += parseFloat(vo.balance) - if (vo['endTime'] === t) { - $.jdhRedExpire += parseFloat(vo.balance) - } - continue; - } - } - $.jdGeneralRed += parseFloat(vo.balance) - if (vo['endTime'] === t) { - $.jdGeneralRedExpire += parseFloat(vo.balance) - } - } - - $.balance = ($.jxRed + $.jsRed + $.jdRed + $.jdhRed + $.jdwxRed + $.jdGeneralRed).toFixed(2); - $.jxRed = $.jxRed.toFixed(2); - $.jsRed = $.jsRed.toFixed(2); - $.jdRed = $.jdRed.toFixed(2); - $.jdhRed = $.jdhRed.toFixed(2); - $.jdwxRed = $.jdwxRed.toFixed(2); - $.jdGeneralRed = $.jdGeneralRed.toFixed(2); - $.expiredBalance = ($.jxRedExpire + $.jsRedExpire + $.jdRedExpire + $.jdhRedExpire + $.jdwxRedExpire + $.jdGeneralRedExpire).toFixed(2); - $.message += `【红包总额】${$.balance}(总过期${$.expiredBalance})元 \n`; - if ($.jxRed > 0) { - if ($.jxRedExpire > 0) - $.message += `【京喜红包】${$.jxRed}(将过期${$.jxRedExpire.toFixed(2)})元 \n`; - else - $.message += `【京喜红包】${$.jxRed}元 \n`; - } - - if ($.jsRed > 0) { - if ($.jsRedExpire > 0) - $.message += `【京喜特价】${$.jsRed}(将过期${$.jsRedExpire.toFixed(2)})元 \n`; - else - $.message += `【京喜特价】${$.jsRed}元 \n`; - } - - if ($.jdRed > 0) { - if ($.jdRedExpire > 0) - $.message += `【京东红包】${$.jdRed}(将过期${$.jdRedExpire.toFixed(2)})元 \n`; - else - $.message += `【京东红包】${$.jdRed}元 \n`; - } - - if ($.jdhRed > 0) { - if ($.jdhRedExpire > 0) - $.message += `【健康红包】${$.jdhRed}(将过期${$.jdhRedExpire.toFixed(2)})元 \n`; - else - $.message += `【健康红包】${$.jdhRed}元 \n`; - } - - if ($.jdwxRed > 0) { - if ($.jdwxRedExpire > 0) - $.message += `【微信小程序】${$.jdwxRed}(将过期${$.jdwxRedExpire.toFixed(2)})元 \n`; - else - $.message += `【微信小程序】${$.jdwxRed}元 \n`; - } - - if ($.jdGeneralRed > 0) { - if ($.jdGeneralRedExpire > 0) - $.message += `【全平台通用】${$.jdGeneralRed}(将过期${$.jdGeneralRedExpire.toFixed(2)})元 \n`; - else - $.message += `【全平台通用】${$.jdGeneralRed}元 \n`; - - } - - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } - finally { - resolve(data); - } - }) - }) + return new Promise(async resolve => { + const options = { + "url": `https://api.m.jd.com/client.action?functionId=myhongbao_getUsableHongBaoList&body=%7B%22appId%22%3A%22appHongBao%22%2C%22appToken%22%3A%22apphongbao_token%22%2C%22platformId%22%3A%22appHongBao%22%2C%22platformToken%22%3A%22apphongbao_token%22%2C%22platform%22%3A%221%22%2C%22orgType%22%3A%222%22%2C%22country%22%3A%22cn%22%2C%22childActivityId%22%3A%22-1%22%2C%22childActiveName%22%3A%22-1%22%2C%22childActivityTime%22%3A%22-1%22%2C%22childActivityUrl%22%3A%22-1%22%2C%22openId%22%3A%22-1%22%2C%22activityArea%22%3A%22-1%22%2C%22applicantErp%22%3A%22-1%22%2C%22eid%22%3A%22-1%22%2C%22fp%22%3A%22-1%22%2C%22shshshfp%22%3A%22-1%22%2C%22shshshfpa%22%3A%22-1%22%2C%22shshshfpb%22%3A%22-1%22%2C%22jda%22%3A%22-1%22%2C%22activityType%22%3A%221%22%2C%22isRvc%22%3A%22-1%22%2C%22pageClickKey%22%3A%22-1%22%2C%22extend%22%3A%22-1%22%2C%22organization%22%3A%22JD%22%7D&appid=JDReactMyRedEnvelope&client=apple&clientVersion=7.0.0`, + "headers": { + 'Host': 'api.m.jd.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Accept-Language': 'zh-cn', + 'Referer': 'https://h5.m.jd.com/', + 'Accept-Encoding': 'gzip, deflate, br', + "Cookie": cookie, + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`redPacket API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + $.jxRed = 0, + $.jsRed = 0, + $.jdRed = 0, + $.jdhRed = 0, + $.jdwxRed = 0, + $.jdGeneralRed = 0, + $.jxRedExpire = 0, + $.jsRedExpire = 0, + $.jdRedExpire = 0, + $.jdhRedExpire = 0; + $.jdwxRedExpire = 0, + $.jdGeneralRedExpire = 0 + + let t = new Date(); + t.setDate(t.getDate() + 1); + t.setHours(0, 0, 0, 0); + t = parseInt((t - 1) / 1000)*1000; + + for (let vo of data.hongBaoList || []) { + if (vo.orgLimitStr) { + if (vo.orgLimitStr.includes("京喜") && !vo.orgLimitStr.includes("特价")) { + $.jxRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jxRedExpire += parseFloat(vo.balance) + } + continue; + } else if (vo.orgLimitStr.includes("购物小程序")) { + $.jdwxRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jdwxRedExpire += parseFloat(vo.balance) + } + continue; + } else if (vo.orgLimitStr.includes("京东商城")) { + $.jdRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jdRedExpire += parseFloat(vo.balance) + } + continue; + } else if (vo.orgLimitStr.includes("极速") || vo.orgLimitStr.includes("京东特价") || vo.orgLimitStr.includes("京喜特价")) { + $.jsRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jsRedExpire += parseFloat(vo.balance) + } + continue; + } else if (vo.orgLimitStr && vo.orgLimitStr.includes("京东健康")) { + $.jdhRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jdhRedExpire += parseFloat(vo.balance) + } + continue; + } + } + $.jdGeneralRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jdGeneralRedExpire += parseFloat(vo.balance) + } + } + + $.balance = ($.jxRed+$.jsRed+$.jdRed +$.jdhRed+$.jdwxRed+$.jdGeneralRed).toFixed(2); + $.jxRed = $.jxRed.toFixed(2); + $.jsRed = $.jsRed.toFixed(2); + $.jdRed = $.jdRed.toFixed(2); + $.jdhRed = $.jdhRed.toFixed(2); + $.jdwxRed = $.jdwxRed.toFixed(2); + $.jdGeneralRed = $.jdGeneralRed.toFixed(2); + $.expiredBalance = ($.jxRedExpire + $.jsRedExpire + $.jdRedExpire+$.jdhRedExpire+$.jdwxRedExpire+$.jdGeneralRedExpire).toFixed(2); + $.message += `【红包总额】${$.balance}(总过期${$.expiredBalance})元 \n`; + if ($.jxRed > 0){ + if($.jxRedExpire>0) + $.message += `【京喜红包】${$.jxRed}(将过期${$.jxRedExpire.toFixed(2)})元 \n`; + else + $.message += `【京喜红包】${$.jxRed}元 \n`; + } + + if ($.jsRed > 0){ + if($.jsRedExpire>0) + $.message += `【京喜特价】${$.jsRed}(将过期${$.jsRedExpire.toFixed(2)})元(原极速版) \n`; + else + $.message += `【京喜特价】${$.jsRed}元(原极速版) \n`; + } + + if ($.jdRed > 0){ + if($.jdRedExpire>0) + $.message += `【京东红包】${$.jdRed}(将过期${$.jdRedExpire.toFixed(2)})元 \n`; + else + $.message += `【京东红包】${$.jdRed}元 \n`; + } + + if ($.jdhRed > 0){ + if($.jdhRedExpire>0) + $.message += `【健康红包】${$.jdhRed}(将过期${$.jdhRedExpire.toFixed(2)})元 \n`; + else + $.message += `【健康红包】${$.jdhRed}元 \n`; + } + + if ($.jdwxRed > 0){ + if($.jdwxRedExpire>0) + $.message += `【微信小程序】${$.jdwxRed}(将过期${$.jdwxRedExpire.toFixed(2)})元 \n`; + else + $.message += `【微信小程序】${$.jdwxRed}元 \n`; + } + + if ($.jdGeneralRed > 0){ + if($.jdGeneralRedExpire>0) + $.message += `【全平台通用】${$.jdGeneralRed}(将过期${$.jdGeneralRedExpire.toFixed(2)})元 \n`; + else + $.message += `【全平台通用】${$.jdGeneralRed}元 \n`; + + } + + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) } - -function getCoupon() { - return new Promise(resolve => { - let options = { - url: `https://wq.jd.com/activeapi/queryjdcouponlistwithfinance?state=1&wxadd=1&filterswitch=1&_=${Date.now()}&sceneval=2&g_login_type=1&callback=jsonpCBKB&g_ty=ls`, - headers: { - 'authority': 'wq.jd.com', - "User-Agent": $.UA, - 'accept': '*/*', - 'referer': 'https://wqs.jd.com/', - 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', - 'cookie': cookie - }, - timeout: 10000 - } - $.get(options, async (err, resp, data) => { - try { - data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]); - let couponTitle = ''; - let couponId = ''; - // 删除可使用且非超市、生鲜、京贴; - let useable = data.coupon.useable; - $.todayEndTime = new Date(new Date(new Date().getTime()).setHours(23, 59, 59, 999)).getTime(); - $.tomorrowEndTime = new Date(new Date(new Date().getTime() + 24 * 60 * 60 * 1000).setHours(23, 59, 59, 999)).getTime(); - $.platFormInfo = ""; - for (let i = 0; i < useable.length; i++) { - //console.log(useable[i]); - if (useable[i].limitStr.indexOf('全品类') > -1) { - $.beginTime = useable[i].beginTime; - if ($.beginTime < new Date().getTime() && useable[i].quota <= 100 && useable[i].coupontype === 1) { - //$.couponEndTime = new Date(parseInt(useable[i].endTime)).Format('yyyy-MM-dd'); - $.couponName = useable[i].limitStr; - if (useable[i].platFormInfo) - $.platFormInfo = useable[i].platFormInfo; - - var decquota = parseFloat(useable[i].quota).toFixed(2); - var decdisc = parseFloat(useable[i].discount).toFixed(2); - if (useable[i].quota > useable[i].discount + 5 && useable[i].discount < 2) - continue - $.message += `【全品类券】满${decquota}减${decdisc}元`; - - if (useable[i].endTime < $.todayEndTime) { - $.message += `(今日过期,${$.platFormInfo})\n`; - } else if (useable[i].endTime < $.tomorrowEndTime) { - $.message += `(明日将过期,${$.platFormInfo})\n`; - } else { - $.message += `(${$.platFormInfo})\n`; - } - - } - } - if (useable[i].couponTitle.indexOf('运费券') > -1 && useable[i].limitStr.indexOf('自营商品运费') > -1) { - if (!$.YunFeiTitle) { - $.YunFeiTitle = useable[i].couponTitle; - $.YunFeiQuanEndTime = new Date(parseInt(useable[i].endTime)).Format('yyyy-MM-dd'); - $.YunFeiQuan += 1; - } else { - if ($.YunFeiTitle == useable[i].couponTitle) { - $.YunFeiQuanEndTime = new Date(parseInt(useable[i].endTime)).Format('yyyy-MM-dd'); - $.YunFeiQuan += 1; - } else { - if (!$.YunFeiTitle2) - $.YunFeiTitle2 = useable[i].couponTitle; - - if ($.YunFeiTitle2 == useable[i].couponTitle) { - $.YunFeiQuanEndTime2 = new Date(parseInt(useable[i].endTime)).Format('yyyy-MM-dd'); - $.YunFeiQuan2 += 1; - } - } - - } - - } - if (useable[i].couponTitle.indexOf('特价版APP活动') > -1 && useable[i].limitStr == '仅可购买活动商品') { - $.beginTime = useable[i].beginTime; - if ($.beginTime < new Date().getTime() && useable[i].coupontype === 1) { - if (useable[i].platFormInfo) - $.platFormInfo = useable[i].platFormInfo; - var decquota = parseFloat(useable[i].quota).toFixed(2); - var decdisc = parseFloat(useable[i].discount).toFixed(2); - - $.message += `【特价版券】满${decquota}减${decdisc}元`; - - if (useable[i].endTime < $.todayEndTime) { - $.message += `(今日过期,${$.platFormInfo})\n`; - } else if (useable[i].endTime < $.tomorrowEndTime) { - $.message += `(明日将过期,${$.platFormInfo})\n`; - } else { - $.message += `(${$.platFormInfo})\n`; - } - - } - - } - //8是支付券, 7是白条券 - if (useable[i].couponStyle == 7 || useable[i].couponStyle == 8) { - $.beginTime = useable[i].beginTime; - if ($.beginTime > new Date().getTime() || useable[i].quota > 50 || useable[i].coupontype != 1) { - continue; - } - - if (useable[i].couponStyle == 8) { - $.couponType = "支付立减"; - } else { - $.couponType = "白条优惠"; - } - if (useable[i].discount < useable[i].quota) - $.message += `【${$.couponType}】满${useable[i].quota}减${useable[i].discount}元`; - else - $.message += `【${$.couponType}】立减${useable[i].discount}元`; - if (useable[i].platFormInfo) - $.platFormInfo = useable[i].platFormInfo; - - //$.couponEndTime = new Date(parseInt(useable[i].endTime)).Format('yyyy-MM-dd'); - - if (useable[i].endTime < $.todayEndTime) { - $.message += `(今日过期,${$.platFormInfo})\n`; - } else if (useable[i].endTime < $.tomorrowEndTime) { - $.message += `(明日将过期,${$.platFormInfo})\n`; - } else { - $.message += `(${$.platFormInfo})\n`; - } - } - } - } catch (e) { - $.logErr(e, resp); - } - finally { - resolve(); - } - }) - }) -} - function jdfruitRequest(function_id, body = {}, timeout = 1000) { - return new Promise(resolve => { - setTimeout(() => { - $.get(taskfruitUrl(function_id, body), (err, resp, data) => { - try { - if (err) { - console.log('\n东东农场: API查询请求失败 ‼️‼️') - console.log(JSON.stringify(err)); - console.log(`function_id:${function_id}`) - $.logErr(err); - } else { - if (safeGet(data)) { - data = JSON.parse(data); - if (data.code == "400") { - console.log('东东农场: ' + data.message); - llgeterror = true; - } - else - $.JDwaterEveryDayT = data.firstWaterInit.totalWaterTimes; - } - } - } catch (e) { - $.logErr(e, resp); - } - finally { - resolve(data); - } - }) - }, timeout) - }) + return new Promise(resolve => { + setTimeout(() => { + $.get(taskfruitUrl(function_id, body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东农场: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + console.log(`function_id:${function_id}`) + $.logErr(err); + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code=="400"){ + console.log('东东农场: '+data.message); + llgeterror = true; + } + else + $.JDwaterEveryDayT = data.totalWaterTaskInit.totalWaterTaskTimes; + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }) + }, timeout) + }) } async function getjdfruitinfo() { if (EnableJdFruit) { llgeterror = false; - //await jdfruitRequest('taskInitForFarm', { - // "version": 14, - // "channel": 1, - // "babelChannel": "120" - //}); - // - //if (llgeterror) - // return - // - await fruitinfo(); + await jdfruitRequest('taskInitForFarm', { + "version": 14, + "channel": 1, + "babelChannel": "120" + }); + + if (llgeterror) + return + + await getjdfruit(); if (llgeterror) { console.log(`东东农场API查询失败,等待10秒后再次尝试...`) await $.wait(10 * 1000); - await fruitinfo(); + await getjdfruit(); } if (llgeterror) { console.log(`东东农场API查询失败,有空重启路由器换个IP吧.`) } } - return; + return; } async function getjdfruit() { - return new Promise(resolve => { - const option = { - url: `${JD_API_HOST}?functionId=initForFarm`, - body: `body=${escape(JSON.stringify({ "version": 4 }))}&appid=wh5&clientVersion=9.1.0`, - headers: { - "accept": "*/*", - "accept-encoding": "gzip, deflate, br", - "accept-language": "zh-CN,zh;q=0.9", - "cache-control": "no-cache", - "cookie": cookie, - "origin": "https://home.m.jd.com", - "pragma": "no-cache", - "referer": "https://home.m.jd.com/myJd/newhome.action", - "sec-fetch-dest": "empty", - "sec-fetch-mode": "cors", - "sec-fetch-site": "same-site", - "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), - "Content-Type": "application/x-www-form-urlencoded" - }, - timeout: 10000 - }; - $.post(option, (err, resp, data) => { - try { - if (err) { - if (!llgeterror) { - console.log('\n东东农场: API查询请求失败 ‼️‼️'); - console.log(JSON.stringify(err)); - } - llgeterror = true; - } else { - llgeterror = false; - if (safeGet(data)) { - $.farmInfo = JSON.parse(data) - if ($.farmInfo.farmUserPro) { - $.JdFarmProdName = $.farmInfo.farmUserPro.name; - $.JdtreeEnergy = $.farmInfo.farmUserPro.treeEnergy; - $.JdtreeTotalEnergy = $.farmInfo.farmUserPro.treeTotalEnergy; - $.treeState = $.farmInfo.treeState; - let waterEveryDayT = $.JDwaterEveryDayT; - let waterTotalT = ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy) / 10; //一共还需浇多少次水 - let waterD = Math.ceil(waterTotalT / waterEveryDayT); + return new Promise(resolve => { + const option = { + url: `${JD_API_HOST}?functionId=initForFarm`, + body: `body=${escape(JSON.stringify({"version":4}))}&appid=wh5&clientVersion=9.1.0`, + headers: { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "cookie": cookie, + "origin": "https://home.m.jd.com", + "pragma": "no-cache", + "referer": "https://home.m.jd.com/myJd/newhome.action", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Content-Type": "application/x-www-form-urlencoded" + }, + timeout: 10000 + }; + $.post(option, (err, resp, data) => { + try { + if (err) { + if(!llgeterror){ + console.log('\n东东农场: API查询请求失败 ‼️‼️'); + console.log(JSON.stringify(err)); + } + llgeterror = true; + } else { + llgeterror = false; + if (safeGet(data)) { + $.farmInfo = JSON.parse(data) + if ($.farmInfo.farmUserPro) { + $.JdFarmProdName = $.farmInfo.farmUserPro.name; + $.JdtreeEnergy = $.farmInfo.farmUserPro.treeEnergy; + $.JdtreeTotalEnergy = $.farmInfo.farmUserPro.treeTotalEnergy; + $.treeState = $.farmInfo.treeState; + let waterEveryDayT = $.JDwaterEveryDayT; + let waterTotalT = ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy - $.farmInfo.farmUserPro.totalEnergy) / 10; //一共还需浇多少次水 + let waterD = Math.ceil(waterTotalT / waterEveryDayT); - $.JdwaterTotalT = waterTotalT; - $.JdwaterD = waterD; - } - } - } - } catch (e) { - $.logErr(e, resp) - } - finally { - resolve(); - } - }) - }) + $.JdwaterTotalT = waterTotalT; + $.JdwaterD = waterD; + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) } function taskfruitUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${function_id}&body=${encodeURIComponent(JSON.stringify(body))}&appid=wh5`, - headers: { - "Host": "api.m.jd.com", - "Accept": "*/*", - "Origin": "https://carry.m.jd.com", - "Accept-Encoding": "gzip, deflate, br", - "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "Referer": "https://carry.m.jd.com/", - "Cookie": cookie - }, - timeout: 10000 - } + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${encodeURIComponent(JSON.stringify(body))}&appid=wh5`, + headers: { + "Host": "api.m.jd.com", + "Accept": "*/*", + "Origin": "https://carry.m.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Referer": "https://carry.m.jd.com/", + "Cookie": cookie + }, + timeout: 10000 + } } function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } } function cash() { - if (!EnableJdSpeed) - return; - return new Promise(resolve => { - $.get(taskcashUrl('MyAssetsService.execute', { - "method": "userCashRecord", - "data": { - "channel": 1, - "pageNum": 1, - "pageSize": 20 - } - }), - async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`cash API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - if (data.data.goldBalance) - $.JDtotalcash = data.data.goldBalance; - else - console.log(`领现金查询失败,服务器没有返回具体值.`) - } - } - } catch (e) { - $.logErr(e, resp) - } - finally { - resolve(data); - } - }) - }) + if (!EnableJdSpeed) + return; + return new Promise(resolve => { + $.get(taskcashUrl('MyAssetsService.execute', { + "method": "userCashRecord", + "data": { + "channel": 1, + "pageNum": 1, + "pageSize": 20 + } + }), + async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`cash API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.goldBalance) + $.JDtotalcash = data.data.goldBalance; + else + console.log(`领现金查询失败,服务器没有返回具体值.`) + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) } function taskcashUrl(functionId, body = {}) { - const struuid = randomString(16); - let nowTime = Date.now(); - let _0x7683x5 = `${"lite-android&"}${JSON["stringify"](body)}${"&android&3.1.0&"}${functionId}&${nowTime}&${struuid}`; - let _0x7683x6 = "12aea658f76e453faf803d15c40a72e0"; - const _0x7683x7 = $["isNode"]() ? require("crypto-js") : CryptoJS; - let sign = _0x7683x7.HmacSHA256(_0x7683x5, _0x7683x6).toString(); - let strurl = JD_API_HOST + "api?functionId=" + functionId + "&body=" + `${escape(JSON["stringify"](body))}&appid=lite-android&client=android&uuid=` + struuid + `&clientVersion=3.1.0&t=${nowTime}&sign=${sign}`; - return { - url: strurl, - headers: { - 'Host': "api.m.jd.com", - 'accept': "*/*", - 'kernelplatform': "RN", - 'user-agent': "JDMobileLite/3.1.0 (iPad; iOS 14.4; Scale/2.00)", - 'accept-language': "zh-Hans-CN;q=1, ja-CN;q=0.9", - 'Cookie': cookie - }, - timeout: 10000 - } + const struuid = randomString(16); + let nowTime = Date.now(); + let _0x7683x5 = `${"lite-android&"}${JSON["stringify"](body)}${"&android&3.1.0&"}${functionId}&${nowTime}&${struuid}`; + let _0x7683x6 = "12aea658f76e453faf803d15c40a72e0"; + const _0x7683x7 = $["isNode"]() ? require("crypto-js") : CryptoJS; + let sign = _0x7683x7.HmacSHA256(_0x7683x5, _0x7683x6).toString(); + let strurl=JD_API_HOST+"api?functionId="+functionId+"&body="+`${escape(JSON["stringify"](body))}&appid=lite-android&client=android&uuid=`+struuid+`&clientVersion=3.1.0&t=${nowTime}&sign=${sign}`; + return { + url: strurl, + headers: { + 'Host': "api.m.jd.com", + 'accept': "*/*", + 'kernelplatform': "RN", + 'user-agent': "JDMobileLite/3.1.0 (iPad; iOS 14.4; Scale/2.00)", + 'accept-language': "zh-Hans-CN;q=1, ja-CN;q=0.9", + 'Cookie': cookie + }, + timeout: 10000 + } } - -function GetJoyRuninginfo() { - if (!EnableJoyRun) - return; - - const headers = { - "Accept": "application/json, text/plain, */*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-CN,zh-Hans;q=0.9", - "Connection": "keep-alive", - "Content-Length": "376", - "Content-Type": "application/x-www-form-urlencoded", - "Cookie": cookie, - "Host": "api.m.jd.com", - "Origin": "https://h5platform.jd.com", - "Referer": "https://h5platform.jd.com/", - "User-Agent": `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` - } - var DateToday = new Date(); - const body = { - 'linkId': 'L-sOanK_5RJCz7I314FpnQ', - 'isFromJoyPark': true, - 'joyLinkId': 'LsQNxL7iWDlXUs6cFl-AAg' - }; - const options = { - url: `https://api.m.jd.com/?functionId=runningPageHome&body=${encodeURIComponent(JSON.stringify(body))}&t=${DateToday.getTime()}&appid=activities_platform&client=ios&clientVersion=3.9.2`, - headers, - } - return new Promise(resolve => { - $.get(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`GetJoyRuninginfo API请求失败,请检查网路重试`) - } else { - if (data) { - //console.log(data); - data = JSON.parse(data); - if (data.data.runningHomeInfo.prizeValue) { - $.JoyRunningAmount = data.data.runningHomeInfo.prizeValue * 1; - } - } - } - } catch (e) { - $.logErr(e, resp) - } - finally { - resolve(data) - } - }) - }) -} - + function randomString(e) { - e = e || 32; - let t = "0123456789abcdef", - a = t.length, - n = ""; - for (let i = 0; i < e; i++) - n += t.charAt(Math.floor(Math.random() * a)); - return n + e = e || 32; + let t = "0123456789abcdef", + a = t.length, + n = ""; + for (let i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n } Date.prototype.Format = function (fmt) { - var e, - n = this, - d = fmt, - l = { - "M+": n.getMonth() + 1, - "d+": n.getDate(), - "D+": n.getDate(), - "h+": n.getHours(), - "H+": n.getHours(), - "m+": n.getMinutes(), - "s+": n.getSeconds(), - "w+": n.getDay(), - "q+": Math.floor((n.getMonth() + 3) / 3), - "S+": n.getMilliseconds() - }; - /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); - for (var k in l) { - if (new RegExp("(".concat(k, ")")).test(d)) { - var t, - a = "S+" === k ? "000" : "00"; - d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) - } - } - return d; + var e, + n = this, + d = fmt, + l = { + "M+": n.getMonth() + 1, + "d+": n.getDate(), + "D+": n.getDate(), + "h+": n.getHours(), + "H+": n.getHours(), + "m+": n.getMinutes(), + "s+": n.getSeconds(), + "w+": n.getDay(), + "q+": Math.floor((n.getMonth() + 3) / 3), + "S+": n.getMilliseconds() + }; + /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); + for (var k in l) { + if (new RegExp("(".concat(k, ")")).test(d)) { + var t, + a = "S+" === k ? "000" : "00"; + d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) + } + } + return d; } function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - console.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; - } - } + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } } function timeFormat(time) { - let date; - if (time) { - date = new Date(time) - } else { - date = new Date(); - } - return date.getFullYear() + '-' + ((date.getMonth() + 1) >= 10 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1)) + '-' + (date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()); + let date; + if (time) { + date = new Date(time) + } else { + date = new Date(); + } + return date.getFullYear() + '-' + ((date.getMonth() + 1) >= 10 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1)) + '-' + (date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()); } function GetDateTime(date) { - var timeString = ""; + var timeString = ""; - var timeString = date.getFullYear() + "-"; - if ((date.getMonth() + 1) < 10) - timeString += "0" + (date.getMonth() + 1) + "-"; - else - timeString += (date.getMonth() + 1) + "-"; + var timeString = date.getFullYear() + "-"; + if ((date.getMonth() + 1) < 10) + timeString += "0" + (date.getMonth() + 1) + "-"; + else + timeString += (date.getMonth() + 1) + "-"; - if ((date.getDate()) < 10) - timeString += "0" + date.getDate() + " "; - else - timeString += date.getDate() + " "; + if ((date.getDate()) < 10) + timeString += "0" + date.getDate() + " "; + else + timeString += date.getDate() + " "; - if ((date.getHours()) < 10) - timeString += "0" + date.getHours() + ":"; - else - timeString += date.getHours() + ":"; + if ((date.getHours()) < 10) + timeString += "0" + date.getHours() + ":"; + else + timeString += date.getHours() + ":"; - if ((date.getMinutes()) < 10) - timeString += "0" + date.getMinutes() + ":"; - else - timeString += date.getMinutes() + ":"; + if ((date.getMinutes()) < 10) + timeString += "0" + date.getMinutes() + ":"; + else + timeString += date.getMinutes() + ":"; - if ((date.getSeconds()) < 10) - timeString += "0" + date.getSeconds(); - else - timeString += date.getSeconds(); + if ((date.getSeconds()) < 10) + timeString += "0" + date.getSeconds(); + else + timeString += date.getSeconds(); - return timeString; + return timeString; } async function getuserinfo() { - var body = [{ "pin": "$cooMrdGatewayUid$" }]; - var ua = `jdapp;iPhone;${random(["11.1.0", "10.5.0", "10.3.6"])};${random(["13.5", "14.0", "15.0"])};${uuidRandom()};network/wifi;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone11,6;addressid/7565095847;supportBestPay/0;appBuild/167541;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`; + var body=[{"pin": "$cooMrdGatewayUid$"}]; + var ua = `jdapp;iPhone;${random(["11.1.0", "10.5.0", "10.3.6"])};${random(["13.5", "14.0", "15.0"])};${uuidRandom()};network/wifi;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone11,6;addressid/7565095847;supportBestPay/0;appBuild/167541;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`; let config = { url: 'https://lop-proxy.jd.com/JingIntegralApi/userAccount', @@ -2092,12 +1971,12 @@ async function getuserinfo() { } } return new Promise(resolve => { - $.post(config, async (err, resp, data) => { + $.post(config, async(err, resp, data) => { try { //console.log(data) if (err) { console.log(err) - } else { + } else { data = JSON.parse(data); } } catch (e) { @@ -2109,177 +1988,12 @@ async function getuserinfo() { }) }) } -function dwappinfo() { - let ts = Date.now(); - let opt = { - url: `https://dwapp.jd.com/user/dwSignInfo`, - body: JSON.stringify({ "t": ts, "channelSource": "txzs", "encStr": CR.MD5(ts + 'e9c398ffcb2d4824b4d0a703e38yffdd').toString() }), - headers: { - 'Origin': 'https://txsm-m.jd.com', - 'Content-Type': 'application/json', - 'User-Agent': $.UA, - 'Cookie': cookie - } - } - return new Promise(async (resolve) => { - $.post(opt, async (err, resp, data) => { - let ccc = ''; - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`dwappinfo 请求失败,请检查网路重试`) - } else { - data = JSON.parse(data); - if (data.code == 200) { - ccc = data.data.balanceNum; - } else { - console.log(data.msg); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(ccc); - } - }) - }) -} -function dwappexpire() { - let opt = { - url: `https://api.m.jd.com/api?functionId=DATAWALLET_USER_QUERY_EXPIRED_SCORE&appid=h5-sep&body=%7B%22expireDayNum%22%3A7%7D&client=m&clientVersion=6.0.0`, - headers: { - 'Origin':'https://prodev.m.jd.com', - 'User-Agent': $.UA, - 'Cookie': cookie - } - } - return new Promise(async (resolve) => { - $.post(opt, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`dwappexpire 请求失败,请检查网路重试`) - } else { - data = JSON.parse(data) - if (data.code == 200) { - data = data.data.expireNum; - - } else { - //console.log(data.msg); - data = ''; - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }) -} -function checkplus() { - let opt = { - url: `https://api.m.jd.com/api?functionId=user_getUserInfo_v2`, - body: 'appid=plus_business&loginType=2&loginWQBiz=&scval=&body=%7B%22contentType%22%3A%221_2_3_4_5_8_9_11_12_16%22%2C%22qids%22%3A%226_2_5_18_1_7_9_11_12_14_16_17_25_38%22%2C%22checkLevel%22%3A1%2C%22signType%22%3A1003%7D', - headers: { - 'User-Agent': $.UA, - 'Cookie': cookie, - 'Origin': 'https://plus.m.jd.com' - } - } - return new Promise(async (resolve) => { - $.post(opt, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(` API请求失败,请检查网路重试`) - } else { - data = JSON.parse(data) - if (data.code == 1711000) { - $.isPlusVip = data.rs.plusUserBaseInfo.endDays ? true : false; - //console.log($.isPlusVip) - } else { - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(); - } - }) - }) -} -function getek() { - let opt = { - url: `https://mygiftcard.jd.com/giftcard/queryChannelUserCard`, - //body: `appid=wh5&clientVersion=1.0.0&functionId=wanrentuan_superise_send&body={"channel":2}&area=2_2813_61130_0`, - headers: { - //'Host': 'api.m.jd.com', - 'Origin': 'https://o.jd.com', - 'Content-Type': 'application/x-www-form-urlencoded', - 'User-Agent': $.UA, - 'Cookie': cookie - } - } - return new Promise(async (resolve) => { - $.get(opt, async (err, resp, data) => { - try { - if (err) { - console.log(`getek请求失败!!!!`) - } else { - data = JSON.parse(data) - if (data.code == 000000) { - $.ECardinfo = Number(data.data.totalAmount); - } else { - console.log(data.msg) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data) - } - }) - }) -} -function marketCard() { - let opt = { - url: `https://api.m.jd.com/atop_channel_marketCard_cardInfo`, - body: `appid=jd-super-market&t=${Date.now()}&functionId=atop_channel_marketCard_cardInfo&client=m&uuid=&body=%7B%22babelChannel%22%3A%22ttt9%22%2C%22isJdApp%22%3A%221%22%2C%22isWx%22%3A%220%22%7D`, - headers: { - 'Origin': 'https://pro.m.jd.com', - 'User-Agent': $.UA, - 'Cookie': cookie - } - } - let carddata = ''; - return new Promise(async (resolve) => { - $.post(opt, async (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`marketCard 请求失败,请检查网路重试`) - } else { - data = JSON.parse(data) - if (data.success) { - carddata = data.data?.floorData?.items ? data.data?.floorData?.items[0].marketCardVO : ''; - } else { - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(carddata); - } - }) - }) -} function area() { let i = getRand(1, 30) - let o = getRand(70, 3000) - let x = getRand(900, 60000) - let g = getRand(600, 30000) - let a = i + '_' + o + '_' + x + '_' + g; + let o = getRand(70, 3000) + let x = getRand(900, 60000) + let g = getRand(600, 30000) + let a = i + '_' + o + '_' + x + '_' + g; return a }; function getRand(min, max) { @@ -2299,10 +2013,10 @@ function uuid() { }; function uuidRandom() { return Math.random().toString(16).slice(2, 10) + - Math.random().toString(16).slice(2, 10) + - Math.random().toString(16).slice(2, 10) + - Math.random().toString(16).slice(2, 10) + - Math.random().toString(16).slice(2, 10); + Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10); } function random(arr) { return arr[Math.floor(Math.random() * arr.length)]; @@ -2316,394 +2030,394 @@ function randomNumber(len) { } return Date.now() + str; } -var _0xodK='jsjiami.com.v7';function _0x5f5c(_0x3fde8d,_0x5caa7d){const _0x16157a=_0x2126();return _0x5f5c=function(_0x104888,_0x45864a){_0x104888=_0x104888-0x81;let _0x212650=_0x16157a[_0x104888];if(_0x5f5c['MUiopA']===undefined){var _0x5f5cef=function(_0x10b688){const _0x4a3933='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x530159='',_0x32093f='',_0x39837a=_0x530159+_0x5f5cef;for(let _0x1ff8a1=0x0,_0x18f320,_0x174fd3,_0x158b57=0x0;_0x174fd3=_0x10b688['charAt'](_0x158b57++);~_0x174fd3&&(_0x18f320=_0x1ff8a1%0x4?_0x18f320*0x40+_0x174fd3:_0x174fd3,_0x1ff8a1++%0x4)?_0x530159+=_0x39837a['charCodeAt'](_0x158b57+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x18f320>>(-0x2*_0x1ff8a1&0x6)):_0x1ff8a1:0x0){_0x174fd3=_0x4a3933['indexOf'](_0x174fd3);}for(let _0x1f6e51=0x0,_0x46e87d=_0x530159['length'];_0x1f6e51<_0x46e87d;_0x1f6e51++){_0x32093f+='%'+('00'+_0x530159['charCodeAt'](_0x1f6e51)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x32093f);};const _0x2996ba=function(_0x5ab098,_0x297889){let _0x1ff121=[],_0x242c96=0x0,_0x45d82c,_0xbd5698='';_0x5ab098=_0x5f5cef(_0x5ab098);let _0x48e1be;for(_0x48e1be=0x0;_0x48e1be<0x100;_0x48e1be++){_0x1ff121[_0x48e1be]=_0x48e1be;}for(_0x48e1be=0x0;_0x48e1be<0x100;_0x48e1be++){_0x242c96=(_0x242c96+_0x1ff121[_0x48e1be]+_0x297889['charCodeAt'](_0x48e1be%_0x297889['length']))%0x100,_0x45d82c=_0x1ff121[_0x48e1be],_0x1ff121[_0x48e1be]=_0x1ff121[_0x242c96],_0x1ff121[_0x242c96]=_0x45d82c;}_0x48e1be=0x0,_0x242c96=0x0;for(let _0x1f7a2c=0x0;_0x1f7a2c<_0x5ab098['length'];_0x1f7a2c++){_0x48e1be=(_0x48e1be+0x1)%0x100,_0x242c96=(_0x242c96+_0x1ff121[_0x48e1be])%0x100,_0x45d82c=_0x1ff121[_0x48e1be],_0x1ff121[_0x48e1be]=_0x1ff121[_0x242c96],_0x1ff121[_0x242c96]=_0x45d82c,_0xbd5698+=String['fromCharCode'](_0x5ab098['charCodeAt'](_0x1f7a2c)^_0x1ff121[(_0x1ff121[_0x48e1be]+_0x1ff121[_0x242c96])%0x100]);}return _0xbd5698;};_0x5f5c['NHENAz']=_0x2996ba,_0x3fde8d=arguments,_0x5f5c['MUiopA']=!![];}const _0x1c70e3=_0x16157a[0x0],_0x205301=_0x104888+_0x1c70e3,_0xc99678=_0x3fde8d[_0x205301];if(!_0xc99678){if(_0x5f5c['EZtvMl']===undefined){const _0x4a0f6d=function(_0x2a2a58){this['XBBPyl']=_0x2a2a58,this['BGGovT']=[0x1,0x0,0x0],this['vpvlfs']=function(){return'newState';},this['HHXrxG']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['SGGSNl']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x4a0f6d['prototype']['NqafaE']=function(){const _0x34a235=new RegExp(this['HHXrxG']+this['SGGSNl']),_0x7eb480=_0x34a235['test'](this['vpvlfs']['toString']())?--this['BGGovT'][0x1]:--this['BGGovT'][0x0];return this['stiYgL'](_0x7eb480);},_0x4a0f6d['prototype']['stiYgL']=function(_0x496bc6){if(!Boolean(~_0x496bc6))return _0x496bc6;return this['nnvtLh'](this['XBBPyl']);},_0x4a0f6d['prototype']['nnvtLh']=function(_0x1a6e27){for(let _0x2a2f05=0x0,_0x469d72=this['BGGovT']['length'];_0x2a2f05<_0x469d72;_0x2a2f05++){this['BGGovT']['push'](Math['round'](Math['random']())),_0x469d72=this['BGGovT']['length'];}return _0x1a6e27(this['BGGovT'][0x0]);},new _0x4a0f6d(_0x5f5c)['NqafaE'](),_0x5f5c['EZtvMl']=!![];}_0x212650=_0x5f5c['NHENAz'](_0x212650,_0x45864a),_0x3fde8d[_0x205301]=_0x212650;}else _0x212650=_0xc99678;return _0x212650;},_0x5f5c(_0x3fde8d,_0x5caa7d);}const _0x3c2b98=_0x5f5c;(function(_0x1a8b2b,_0x50179b,_0x47ca49,_0x1d71de,_0x4dbf4d,_0x3dd7f9,_0x1af632){return _0x1a8b2b=_0x1a8b2b>>0x9,_0x3dd7f9='hs',_0x1af632='hs',function(_0x55847b,_0x5d3faa,_0x1435e4,_0x5e955f,_0x2c59f9){const _0x224b03=_0x5f5c;_0x5e955f='tfi',_0x3dd7f9=_0x5e955f+_0x3dd7f9,_0x2c59f9='up',_0x1af632+=_0x2c59f9,_0x3dd7f9=_0x1435e4(_0x3dd7f9),_0x1af632=_0x1435e4(_0x1af632),_0x1435e4=0x0;const _0x33010c=_0x55847b();while(!![]&&--_0x1d71de+_0x5d3faa){try{_0x5e955f=parseInt(_0x224b03(0x104,'ScR5'))/0x1*(parseInt(_0x224b03(0xa2,'(b!d'))/0x2)+-parseInt(_0x224b03(0x8d,'R4rP'))/0x3+-parseInt(_0x224b03(0xe2,'dvNw'))/0x4+-parseInt(_0x224b03(0xea,'@hKD'))/0x5+-parseInt(_0x224b03(0xb6,'!mmn'))/0x6*(parseInt(_0x224b03(0x12f,'804i'))/0x7)+parseInt(_0x224b03(0x10c,'H4Ok'))/0x8+parseInt(_0x224b03(0x126,'ti8F'))/0x9*(parseInt(_0x224b03(0x123,'ti8F'))/0xa);}catch(_0x265ccd){_0x5e955f=_0x1435e4;}finally{_0x2c59f9=_0x33010c[_0x3dd7f9]();if(_0x1a8b2b<=_0x1d71de)_0x1435e4?_0x4dbf4d?_0x5e955f=_0x2c59f9:_0x4dbf4d=_0x2c59f9:_0x1435e4=_0x2c59f9;else{if(_0x1435e4==_0x4dbf4d['replace'](/[KuRrtndOLyDWHBgClqJpG=]/g,'')){if(_0x5e955f===_0x5d3faa){_0x33010c['un'+_0x3dd7f9](_0x2c59f9);break;}_0x33010c[_0x1af632](_0x2c59f9);}}}}}(_0x47ca49,_0x50179b,function(_0x40e745,_0x4e8f21,_0x2ca7c7,_0x4f50bb,_0x3d7d3a,_0x4336da,_0x455dfa){return _0x4e8f21='\x73\x70\x6c\x69\x74',_0x40e745=arguments[0x0],_0x40e745=_0x40e745[_0x4e8f21](''),_0x2ca7c7=`\x72\x65\x76\x65\x72\x73\x65`,_0x40e745=_0x40e745[_0x2ca7c7]('\x76'),_0x4f50bb=`\x6a\x6f\x69\x6e`,(0x148a60,_0x40e745[_0x4f50bb](''));});}(0x17e00,0xcfb91,_0x2126,0xc1),_0x2126)&&(_0xodK=_0x3c2b98(0xa3,'wEyG'));function _0x2126(){const _0x5160f4=(function(){return[...[_0xodK,'qrKjJsljWiOatmpOKi.CncyDodgumBWC.GRvH7lL==','kCoXW5OpWR8','f8o1W4FcPbm0W6pdMHBdOZ8','jSoZh31hyd09jW','W4xdOvG','bCktaComWPqDWRK/','smkfW5BcMZ5eimktW7i','wCo0WOjFCW','BmoEWQr2va','W7BdMY4PBa','WRBcHuNdVCkFcWzIWOXBza','W58BW6/dGmo8W4bHlq','WR/cO8klvSkd','WO/dOLaTfmkPpCoTW5xcSatdHZaDfM/dRCkuecFdTmoroSoY','WP8BW63dNCoCW4O6nvZdJG','W6akA3y','dCkyWPa','nCoIiX5W','omohat8z','l14ZDCk1','W7HTWPddHmoR','ax1evSoyWPPiAq','umkyW5tcUX9c','omkaW57cKIO','W7Ozy3zMWO8Dd38','W6tdGbv2nq','WRZcI1W','WRRdLmkh','W7BdG8opWRldOmkrWO7dTG','W58BW6/dGmoGW51ImgtcIsq','W5f0WQ/dVmoYW7BdHCki','W7VdQmotc18OW4CgAJ5CqJu','W7VdKLHUcq','WRxcR8kxrSkK','W4uNW6GM','WQtcRCkKCSkY','W7/dR8oUW5ql','k8kxWQ3dHbZcPSkuW4W','lCoXk1vT','WRVcSmooW7z7nCknWPlcS0NcQ8okW6m','CmodWQnk','FZStt8kX','W7RdPHzCna','i8o+a21g','kMe7W5qsW4ZcNhK','iCoOpMbBBJO8','W4xdN8kOxI7dTvzcj0hdNCkhW7FcRrFdHtZcLCkse8kysrOzW71GF8kwWQNcNdO5W5CKm8kQW7ldGKtdTq','W75vWPfMW4q','los5T+s7NEwfP+wFRmo0pM0ur+ACGoIUS+ISJUAYUEwLI+I2OYZIGBtVUjtIGydVUB8','jmkGamoXWO8','c3qCW7al','W4D0WQ/dOSoE','fSo7W40KWOqxsWJcNbK','W7hdICo9WRtdSCkq','W6pdNa3cP8o7qaj5WQHSzvu','W7r5WO7dPCoJ','fCoqW5enWPG','dSk6W6dcNt17','WPhcTCoOkJ8'],...(function(){return[...['W6BdNv97oq','hMPvvSoZWP5GyIfnsIq','WQlcOmkQrCkm','dCokn1vm','iSkvhLO','ESoaWPzyvG','y0ruWObDsbWE','zSonWQjtvSoDWQNcOW','WOlcVXGlDCkcW4BdQa','sdnQW7PK','WOnMumkpW4L/zmokWQbwiq','zbVcJ8k8WPS','WQNcVmkrFCkk','WRxcHthcHXtdNuHAhCkprCoj','yJKreCkVW40vvJXXxXbU','W5FdQc8uA8kGW63dQ3VcNCkm','k8oUW5CQWP0','W4NcOSkOcMG','pCoZgwrApxT0p8klW4pcVIBdVmkUb8oxWRHLf8oBzSkxbsG','WQ/cN8kgqCkW','W5RdUK0Je8kGamoYW5W','fNFdM8o8WQBcLmoMdHxcRSkeCZRcUa','W4CHW6G7zW','W4OWDIFdQG','WQtcLL7dTCkpfGzIWRTq','W6xdQmolW7KPpd/cGG','W5pdPHijm8oRe8o8WP7cPatdHtHi','W5RcJCo4hfu','W4pcSSoDh2O','EJD5WOXIWPtdIKZcMCkHawNdPq','W6/cOdhcRCo5','imkkcLm4eupdQ0DaW5GvW5NdMmoulSoMnCkvnIRcM8kqlSknWRNdVmkoW70douNcQG','fvldNSoIWRq','bMq9W4S+W4FcRNNcLCkoh2hdKtzVWOGI','W6uotdNdVG','WQpcR8kxwmkuW4CVWQeYWRNdHW','vdhdMvtdJSoGn8karvuwWP4P','cSoUrJiYfIddOSkUWRBcGCkFW4C','W7JdOSovW4Wr','kNtdICokWQdcIq','aCoSnNLaCv7dPG','W5pcHSkxc0ZdQ8o3za','WPTNW70Nu2lcOCofWQRdOSo0dmkbySk/WQVcRq','o2KNW50yW43cLglcK8kah3VdJIz4WP0IEqiXucWYjmk3','W6ZdSwn6ka','W4JdPCkpWQah','emo9W4OSWRi','vSkeW5NcLWXDkmojW7tcImkxW6ZdUCkc','jSkxemosWRq','WRWwWO97W7bkw2u','W5qJW67dQSoz','W4jVWQ3dMmox','oubcC8or','WQxcRqSaDSkocmoQEsJcLmkAbq','W5ykC19q','rSk1b2PNC3pdUmkPWR0','WOtcJmovpImcWOJdVW','W5BcRmkif0K','DsNdNSowWQdcVSocjW','W4OoW6/dHmoBW4LUje0'],...(function(){return['W4FdUSk/wIW','WOTNcs7cUIy9igldGq7dGSk+','DmopWPrKCW','WQpdISkDsZqSz8kCFmkOWRVdV8kC','sSo9WQ/dTMqGW5xdSNzHiMi','awRdPmo4WRy','lM/dMSo/WQhdGCk9qbRcNmkvBJhdS8oJW6tdPSkmhCkZW55Ppa','pCkxWQ3dMJa','iMeKW5W','eSkOkx06','fmkNWRGoyW','oLBcPmoIWPaVtSoCetddUCkMWRtcQq','sSoiWPzFBCoEWP/cVMGcWPikv2q','W7xdS1vkoSoptSoTrtBcTW','gCkZa3ei','W4BdTSk/dtzsc8kgW6G8x8k2yCk0W7W+WP8RW60','FdiTyCkn','W5mPW6K/AhlcSmoEWPxdVSk0','W7BdNSo5WQpdHSkxWPtdSabAWPpcOSopvHO','k8ktWOmTrmk3WRH0W4n5nCkzW6/dS8oPE1G','a28WW6KO','W4tcHSkGgG','dxJdPCoDWPq','W49wWRhdSSoJ','WQlcS8kHWRPJoWJcNmoiW6ys','WRRcL1hdUCkRfqO+WR9gzJRcMCoy','WPn0m3lcQN8qWPiJnCoBbmoe','W5q+x1Lq','W6XDnxvt','W4ZdJmkDWQ7dJCoOWOTzwCke','umoaWQvnA8oCWRVcRwS1WR8esgq','lCk6W77cIdW','AHi7tSkVWRuQehPBfG','f1FcLSoHWO0MzW','WPPYnW','nHDwWRrMyYO5','n8oTW5lcRcm','W7/dR3aNkW','fLpcKmoUWRCXE8oClIBdMa','WPSZW6uthG','WQNcV8kwuc5WWPKE','W7DhWRTTW4nK','W4icW5mDuG','W6DnWRrSW5r+Aw7cHYnd','zmk1Cvb8F8oTW55Lx8opWOW','zmk5FLb1kCovW459qSof','vaahrmkC','omkeWRZdHca','W4yTW7OGxMK','jarbWRX8Es0IBq','WRhcVmkaumkvW5S+WRioWO7dHSoCFCkleG','W7VdGI8/rW','W6xdLSo1WRBcVSoyWOtdTaPZWPZcS8oyhupdM1q','W5eoW6NdNCogWPqOBvxcIYldHvlcLuZdSgNcIrddPCodieFdLutcPSoFWR8IEbnTW7ZdIxdcVNhdPIa/W78Pvcayf0JcUX4PWRj5Aa','W5BdPXijCW','W7RcOItcPmotW7hdQCkYWPW','BHD/','qSkEp1f9'];}())];}())];}());_0x2126=function(){return _0x5160f4;};return _0x2126();};const _0x5089b2=(function(){let _0x41d451=!![];return function(_0x2c74d5,_0x29f066){const _0x2ca330=_0x41d451?function(){const _0x33efa3=_0x5f5c;if(_0x29f066){const _0x4c7df3=_0x29f066[_0x33efa3(0x11c,'KVu[')](_0x2c74d5,arguments);return _0x29f066=null,_0x4c7df3;}}:function(){};return _0x41d451=![],_0x2ca330;};}()),_0x528ed3=_0x5089b2(this,function(){const _0x14ad86=_0x3c2b98,_0x30e342={'JKrFy':_0x14ad86(0x8e,'hoIa')};return _0x528ed3[_0x14ad86(0xf0,']@Y5')]()[_0x14ad86(0xf8,'iYsp')](_0x30e342[_0x14ad86(0xbd,'P*EN')])[_0x14ad86(0x127,'%^(#')]()[_0x14ad86(0xb5,'804i')](_0x528ed3)[_0x14ad86(0xba,'!Suv')](_0x30e342[_0x14ad86(0x107,'iVWO')]);});_0x528ed3();async function queryScores(){const _0xd9c085=_0x3c2b98,_0xec4ce0={'pDLZv':function(_0x262217,_0x2bbcf2){return _0x262217==_0x2bbcf2;},'NNJrm':function(_0x1c6701,_0xae96d2){return _0x1c6701===_0xae96d2;},'KcKRF':_0xd9c085(0x10f,'%^(#'),'rTkRE':function(_0x5c0ba3){return _0x5c0ba3();},'zwKyd':function(_0x152286,_0x49914d){return _0x152286(_0x49914d);},'JvUnY':_0xd9c085(0x128,'!Suv'),'YXRal':_0xd9c085(0xa6,'&nWR'),'KecJW':_0xd9c085(0x129,'0nXP'),'wJHOo':_0xd9c085(0x8b,'bq@I'),'XIyNY':_0xd9c085(0xf1,'qGBq')},_0x3224ab=_0xec4ce0[_0xd9c085(0xf2,'804i')](require,_0xec4ce0[_0xd9c085(0x119,'R4rP')]);let _0x14ef80='',_0x179c6e={'appId':_0xec4ce0[_0xd9c085(0xca,'l9YR')],'fn':_0xec4ce0[_0xd9c085(0xc4,'19XF')],'body':{},'apid':_0xec4ce0[_0xd9c085(0xb4,'!Suv')],'user':$[_0xd9c085(0xd8,'H4Ok')],'code':0x0,'ua':$['UA']};body=await _0x3224ab[_0xd9c085(0xab,'ze$f')](_0x179c6e);let _0x57c193={'url':_0xd9c085(0x110,']@Y5')+body+_0xd9c085(0xd0,'wPBC'),'headers':{'Cookie':cookie,'User-Agent':$['UA'],'Referer':_0xec4ce0[_0xd9c085(0x98,'kr3N')]}};return new Promise(_0xf47703=>{const _0x1dc50c=_0xd9c085,_0x176270={'ieMAJ':function(_0x55c1ac,_0x1f8a6e){const _0x2dac5a=_0x5f5c;return _0xec4ce0[_0x2dac5a(0xc3,'ti8F')](_0x55c1ac,_0x1f8a6e);},'zlFfI':function(_0x3be0d3,_0x4324cb){const _0xd28249=_0x5f5c;return _0xec4ce0[_0xd28249(0x120,'S^tU')](_0x3be0d3,_0x4324cb);},'SIpmf':_0xec4ce0[_0x1dc50c(0xa0,']#hR')],'OxMUP':function(_0xe4bd4d){const _0x4042e9=_0x1dc50c;return _0xec4ce0[_0x4042e9(0xdc,'F6Fa')](_0xe4bd4d);}};$[_0x1dc50c(0xeb,'l9YR')](_0x57c193,async(_0x21464b,_0x2aa418,_0x515b57)=>{const _0x46baa2=_0x1dc50c;try{const _0x6924d5=JSON[_0x46baa2(0xf6,'JA3R')](_0x515b57);_0x176270[_0x46baa2(0x124,'(b!d')](_0x6924d5[_0x46baa2(0x102,'kr3N')],0x3e8)&&($[_0x46baa2(0xa8,'l9YR')]=_0x6924d5['rs'][_0x46baa2(0x99,'0DUo')][_0x46baa2(0xf7,'19XF')]);}catch(_0x448754){if(_0x176270[_0x46baa2(0x103,'l9YR')](_0x176270[_0x46baa2(0x11e,']#hR')],_0x176270[_0x46baa2(0x11a,'R4rP')]))$[_0x46baa2(0xfc,'hoIa')](_0x448754,_0x2aa418);else{const _0x71f895=_0x20ed0b[_0x46baa2(0x115,'S^tU')](_0x36309e,arguments);return _0x5b09ce=null,_0x71f895;}}finally{_0x176270[_0x46baa2(0xd7,'JA3R')](_0xf47703);}});});}async function fruitinfo(){const _0x3f72ea=_0x3c2b98,_0x34d941={'XauLe':function(_0x58fcaf,_0x393d9f){return _0x58fcaf==_0x393d9f;},'GRsPR':function(_0x33a67c,_0x153dcd){return _0x33a67c===_0x153dcd;},'SRSBk':_0x3f72ea(0x8c,'l9YR'),'Fygee':function(_0x1c92a8,_0x467e9e){return _0x1c92a8!==_0x467e9e;},'OoyPs':_0x3f72ea(0xfa,'JA3R'),'oJFXT':_0x3f72ea(0xb9,'AuQA'),'VaOmV':_0x3f72ea(0xb8,'yRIq'),'risiZ':_0x3f72ea(0xf3,'1R6B'),'uzpIl':function(_0x41da5c,_0x55841f){return _0x41da5c!==_0x55841f;},'pAdBw':_0x3f72ea(0x109,'1R6B'),'lrtHK':function(_0x11c583,_0x26af03){return _0x11c583(_0x26af03);},'gnOpM':function(_0x511faa,_0x590746){return _0x511faa!==_0x590746;},'lrhxD':_0x3f72ea(0x94,'Ogpd'),'wDhHp':_0x3f72ea(0xe7,'(b!d'),'zmncB':_0x3f72ea(0x10e,'19XF'),'xClcX':_0x3f72ea(0x130,'4nYv'),'acAGs':function(_0x1f4896){return _0x1f4896();},'qELhw':_0x3f72ea(0x10b,'1hq5'),'GqJwd':function(_0x90ba88,_0x704463){return _0x90ba88!==_0x704463;},'jQctq':_0x3f72ea(0xfd,'Cft2'),'zmXCf':_0x3f72ea(0xac,'S^tU'),'vynyo':_0x3f72ea(0xde,'R4rP'),'XMZAe':_0x3f72ea(0xbe,'iYsp'),'xvFAD':_0x3f72ea(0x118,'wPBC'),'mNcWG':_0x3f72ea(0x90,']#hR'),'Eecsi':_0x3f72ea(0x11d,'kr3N')};return new Promise(_0x5a1b69=>{const _0x5dac04=_0x3f72ea,_0x4cbf98={'ZUYJe':_0x34d941[_0x5dac04(0x87,'%^(#')],'GbtnE':_0x34d941[_0x5dac04(0x114,'!Suv')],'GtUIP':function(_0x19c891){const _0xc7c2f6=_0x5dac04;return _0x34d941[_0xc7c2f6(0xe6,'A[nR')](_0x19c891);}};if(_0x34d941[_0x5dac04(0x8f,']#hR')](_0x34d941[_0x5dac04(0x111,'A[nR')],_0x34d941[_0x5dac04(0x8a,'qGBq')]))return _0x4e2ec5[_0x5dac04(0xdf,'iYsp')]()[_0x5dac04(0xb3,'804i')](htByHX[_0x5dac04(0xda,'hoIa')])[_0x5dac04(0x117,'(b!d')]()[_0x5dac04(0x97,'SEpG')](_0x112026)[_0x5dac04(0xb3,'804i')](htByHX[_0x5dac04(0xa5,'&nWR')]);else{const _0x4e6ede={'url':_0x5dac04(0xbf,'4nYv'),'body':_0x5dac04(0xd4,'!mmn')+_0x34d941[_0x5dac04(0xcb,'l9YR')](encodeURIComponent,JSON[_0x5dac04(0xc6,']@Y5')]({'version':0x18,'channel':0x1,'babelChannel':_0x34d941[_0x5dac04(0x12a,'SEpG')],'lat':'0','lng':'0'}))+_0x5dac04(0xd1,'4nYv'),'headers':{'accept':_0x34d941[_0x5dac04(0xee,']@Y5')],'accept-encoding':_0x34d941[_0x5dac04(0x101,']@Y5')],'accept-language':_0x34d941[_0x5dac04(0xe9,']@Y5')],'cookie':cookie,'origin':_0x34d941[_0x5dac04(0xe3,'SEpG')],'referer':_0x34d941[_0x5dac04(0x82,'H4Ok')],'User-Agent':$['UA'],'Content-Type':_0x34d941[_0x5dac04(0x12e,'KOj&')]},'timeout':0x2710};$[_0x5dac04(0xe5,'!Suv')](_0x4e6ede,(_0x547d4a,_0x3f1477,_0x11ded0)=>{const _0x1b008a=_0x5dac04,_0x34d0fc={'sHZlK':function(_0x40aea5,_0x278566){const _0x286fce=_0x5f5c;return _0x34d941[_0x286fce(0x84,'&nWR')](_0x40aea5,_0x278566);}};if(_0x34d941[_0x1b008a(0xf4,'KOj&')](_0x34d941[_0x1b008a(0xb1,'E^y)')],_0x34d941[_0x1b008a(0x93,'kr3N')]))try{if(_0x34d941[_0x1b008a(0xae,'pGV#')](_0x34d941[_0x1b008a(0xa9,'hoIa')],_0x34d941[_0x1b008a(0x9e,'0nXP')]))_0x42320a[_0x1b008a(0x96,'l9YR')]=_0x5e0496[_0x1b008a(0x86,'Cft2')][_0x1b008a(0x121,'A[nR')][_0x1b008a(0xd2,'&nWR')],_0x12bb60[_0x1b008a(0xff,'H4Ok')]=_0x2c2ac7[_0x1b008a(0xe8,'AuQA')][_0x1b008a(0xe0,'4nYv')][_0x1b008a(0x116,'wEyG')],_0x11f771[_0x1b008a(0x9d,'Ogpd')]=_0xaebc44[_0x1b008a(0xad,'ScR5')][_0x1b008a(0x10d,'P*EN')][_0x1b008a(0x9c,'iYsp')],_0xade691[_0x1b008a(0xc9,'6H8d')]=_0x3cf31b[_0x1b008a(0x105,'l9YR')][_0x1b008a(0xcd,'wEyG')][_0x1b008a(0xbb,'ScR5')];else{if(_0x547d4a){if(_0x34d941[_0x1b008a(0xcc,'P*EN')](_0x34d941[_0x1b008a(0xd5,'!mmn')],_0x34d941[_0x1b008a(0xaf,'wPBC')])){const _0x388610=_0x26563d[_0x1b008a(0xe4,'A[nR')](_0x16c340);_0x34d0fc[_0x1b008a(0xec,'yRIq')](_0x388610[_0x1b008a(0x9f,'%^(#')],0x3e8)&&(_0x25d3be[_0x1b008a(0x113,']#hR')]=_0x388610['rs'][_0x1b008a(0x99,'0DUo')][_0x1b008a(0x85,'ti8F')]);}else!llgeterror&&(console[_0x1b008a(0xc2,'iVWO')](_0x34d941[_0x1b008a(0x12c,'19XF')]),console[_0x1b008a(0xdd,'wEyG')](JSON[_0x1b008a(0x112,'wPBC')](_0x547d4a))),llgeterror=!![];}else _0x34d941[_0x1b008a(0x81,'JA3R')](_0x34d941[_0x1b008a(0x9a,'yRIq')],_0x34d941[_0x1b008a(0xfe,'SEpG')])?_0x24e545[_0x1b008a(0xd9,'6H8d')](_0x1b481e,_0x5eb4c4):(llgeterror=![],_0x34d941[_0x1b008a(0x10a,'A[nR')](safeGet,_0x11ded0)&&($[_0x1b008a(0xc8,'KOj&')]=JSON[_0x1b008a(0x91,'AuQA')](_0x11ded0),$[_0x1b008a(0xce,'4nYv')][_0x1b008a(0xc5,'pGV#')]&&(_0x34d941[_0x1b008a(0xc0,'P*EN')](_0x34d941[_0x1b008a(0xed,'F6Fa')],_0x34d941[_0x1b008a(0xfb,'19XF')])?($[_0x1b008a(0x95,'ze$f')]=$[_0x1b008a(0xef,'0nXP')][_0x1b008a(0xaa,'yRIq')][_0x1b008a(0x92,'0nXP')],$[_0x1b008a(0xff,'H4Ok')]=$[_0x1b008a(0xe1,'JA3R')][_0x1b008a(0x9b,'!Suv')][_0x1b008a(0xa7,'1v0]')],$[_0x1b008a(0x11f,'0nXP')]=$[_0x1b008a(0xe1,'JA3R')][_0x1b008a(0xb0,'ze$f')][_0x1b008a(0xbc,'A[nR')],$[_0x1b008a(0xc1,'KVu[')]=$[_0x1b008a(0xb2,'dvNw')][_0x1b008a(0x108,'v6fD')][_0x1b008a(0xdb,'&nWR')]):(!_0xba6f7&&(_0x267434[_0x1b008a(0xd3,'Ogpd')](_0x4cbf98[_0x1b008a(0x12b,'@hKD')]),_0x1d4d34[_0x1b008a(0xc7,'wPBC')](_0x3961d0[_0x1b008a(0x89,'4nYv')](_0x50cad7))),_0x47da95=!![]))));}}catch(_0x1f9a78){if(_0x34d941[_0x1b008a(0x100,'A[nR')](_0x34d941[_0x1b008a(0xcf,'A[nR')],_0x34d941[_0x1b008a(0xa1,'JA3R')]))$[_0x1b008a(0x125,']#hR')](_0x1f9a78,_0x3f1477);else{const _0x1bb5d0=_0x158b57?function(){const _0x34592c=_0x1b008a;if(_0x242c96){const _0x5edb7a=_0x1f7a2c[_0x34592c(0xd6,'Vfg2')](_0x4a0f6d,arguments);return _0x2a2a58=null,_0x5edb7a;}}:function(){};return _0x1ff121=![],_0x1bb5d0;}}finally{_0x34d941[_0x1b008a(0xe6,'A[nR')](_0x5a1b69);}else _0x4cbf98[_0x1b008a(0xf5,'0nXP')](_0x5cff01);});}});}var version_ = 'jsjiami.com.v7'; +// 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) -} \ No newline at end of file + "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) +}