diff --git a/package/ctcgfw/luci-app-jd-dailybonus/Makefile b/package/ctcgfw/luci-app-jd-dailybonus/Makefile index 5b9d752dbe..1402f7839b 100644 --- a/package/ctcgfw/luci-app-jd-dailybonus/Makefile +++ b/package/ctcgfw/luci-app-jd-dailybonus/Makefile @@ -7,8 +7,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-jd-dailybonus LUCI_PKGARCH:=all -PKG_VERSION:=0.8.1 -PKG_RELEASE:=20200716 +PKG_VERSION:=0.8.2 +PKG_RELEASE:=20200719 include $(INCLUDE_DIR)/package.mk diff --git a/package/ctcgfw/luci-app-jd-dailybonus/luasrc/model/cbi/jd-dailybonus/log.lua b/package/ctcgfw/luci-app-jd-dailybonus/luasrc/model/cbi/jd-dailybonus/log.lua index f63c76a913..6d91c84b5b 100644 --- a/package/ctcgfw/luci-app-jd-dailybonus/luasrc/model/cbi/jd-dailybonus/log.lua +++ b/package/ctcgfw/luci-app-jd-dailybonus/luasrc/model/cbi/jd-dailybonus/log.lua @@ -2,12 +2,12 @@ local fs = require "nixio.fs" local jd = "jd-dailybonus" local conffile = "/www/JD_DailyBonus.htm" -s = SimpleForm("logview") -s.submit = false -s.reset = false +log = SimpleForm("logview") +log.submit = false +log.reset = false -- [[ 日志显示 ]]-- -t = s:field(TextValue, "1", nil) +t = log:field(TextValue, "1", nil) t.rmempty = true t.rows = 30 function t.cfgvalue() @@ -15,4 +15,4 @@ function t.cfgvalue() end t.readonly="readonly" -return s \ No newline at end of file +return log \ No newline at end of file diff --git a/package/ctcgfw/luci-app-jd-dailybonus/luasrc/model/cbi/jd-dailybonus/script.lua b/package/ctcgfw/luci-app-jd-dailybonus/luasrc/model/cbi/jd-dailybonus/script.lua index 68627cb2d7..1a78257ff9 100644 --- a/package/ctcgfw/luci-app-jd-dailybonus/luasrc/model/cbi/jd-dailybonus/script.lua +++ b/package/ctcgfw/luci-app-jd-dailybonus/luasrc/model/cbi/jd-dailybonus/script.lua @@ -1,13 +1,5 @@ local fs = require "nixio.fs" local jd = "jd-dailybonus" -local uci = luci.model.uci.cursor() - -function sync_value_to_file(value, file) - value = value:gsub("\r\n?", "\n") - local old_value = nixio.fs.readfile(file) - if value ~= old_value then nixio.fs.writefile(file, value) end - -end s = SimpleForm("scriptview") @@ -15,8 +7,14 @@ view_cfg = s:field(TextValue, "conf") view_cfg.rmempty = false view_cfg.rows = 43 +function sync_value_to_file(value, file) + value = value:gsub("\r\n?", "\n") + local old_value = fs.readfile(file) + if value ~= old_value then fs.writefile(file, value) end +end + function view_cfg.cfgvalue() - return nixio.fs.readfile("/usr/share/jd-dailybonus/JD_DailyBonus.js") or "" + return fs.readfile("/usr/share/jd-dailybonus/JD_DailyBonus.js") or "" end function view_cfg.write(self, section, value) sync_value_to_file(value, "/usr/share/jd-dailybonus/JD_DailyBonus.js") diff --git a/package/ctcgfw/luci-app-jd-dailybonus/root/etc/config/jd-dailybonus b/package/ctcgfw/luci-app-jd-dailybonus/root/etc/config/jd-dailybonus index 970728451a..a1cd8d6945 100644 --- a/package/ctcgfw/luci-app-jd-dailybonus/root/etc/config/jd-dailybonus +++ b/package/ctcgfw/luci-app-jd-dailybonus/root/etc/config/jd-dailybonus @@ -1,5 +1,5 @@ config global - option version '1.27' + option version '1.29' option auto_run_time '1' option auto_run '1' option auto_update_time '1' diff --git a/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/JD_DailyBonus.js b/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/JD_DailyBonus.js index 797795d5ab..79ab738390 100644 --- a/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/JD_DailyBonus.js +++ b/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/JD_DailyBonus.js @@ -2,7 +2,7 @@ 京东多合一签到脚本 -更新时间: 2020.7.10 0:10 v1.27 +更新时间: 2020.7.18 17:20 v1.29 有效接口: 24+ 脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js 电报频道: @NobyDa @@ -34,6 +34,8 @@ var DualKey = ''; //如需双账号签到,此处单引号内填写抓取的"账 由于cookie的有效性(经测试网页Cookie有效周期最长31天),如果脚本后续弹出cookie无效的通知,则需要重复上述步骤。 签到脚本将在每天的凌晨0:05执行, 您可以修改执行时间。 因部分接口京豆限量领取, 建议调整为凌晨签到。 +BoxJs订阅地址: https://raw.githubusercontent.com/NobyDa/Script/master/NobyDa_BoxJs.json + ************************* 【 配置双京东账号签到说明 】 : ************************* @@ -87,39 +89,14 @@ hostname = api.m.jd.com var LogDetails = false; //是否开启响应日志, true则开启 -var stop = 0; //自定义延迟签到,单位毫秒. 默认分批并发无延迟. (延迟作用于每个签到接口, 如填入延迟则切换顺序签到. Surge用户请注意在UI界面调整脚本超时) 注: QX用户将强制使用顺序签到 (即默认stop=1) +var stop = 0; //自定义延迟签到,单位毫秒. 默认分批并发无延迟. 延迟作用于每个签到接口, 如填入延迟则切换顺序签到(耗时较长), VPN重启或越狱用户建议填写1, Surge用户请注意在SurgeUI界面调整脚本超时 var DeleteCookie = false; //是否清除Cookie, true则开启 -var out = 6000; //接口超时退出, 用于可能发生的网络不稳定. 建议不少于3000毫秒, 0则关闭. +var out = 0; //接口超时退出, 用于可能发生的网络不稳定, 0则关闭. 如QX日志出现大量"JS Context timeout"后脚本中断时, 建议填写6000 var $nobyda = nobyda(); -let acData = { - // 京东商城-超市 - JDGStore: 'aNCM6yrzD6qp1Vvh5YTzeJtk7cM', - // 京东商城-宠物 - JDPet: '37ta5sh5ocrMZF3Fz5UMJbTsL42', - // 京东商城-图书 - JDBook: '3SC6rw5iBg66qrXPGmZMqFDwcyXi', - // 京东拍拍-二手 - JDShand: '3S28janPLYmtFxypu37AYAGgivfp', - // 京东商城-美妆 - JDMakeup: '2smCxzLNuam5L14zNJHYu43ovbAP', - // 京东商城-清洁 - JDClean: '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6', - // 京东商城-女装 - JDWomen: 'DpSh7ma8JV7QAxSE2gJNro8Q2h9', - // 京东商城-个护 - JDCare: 'NJ1kd1PJWhwvhtim73VPsD1HwY3', - // 京东商城-美食 - JDFood: '4PzvVmLSBq5K63oq4oxKcDtFtzJo', - // 京东商城-珠宝 - JDJewels: 'zHUHpTHNTaztSRfNBFNVZscyFZU', - // 京东商城-菜场 - JDVege: 'Wcu2LVCFMkBP3HraRvb7pgSpt64' -}; - async function all() { if (stop == 0) { await Promise.all([ @@ -132,9 +109,7 @@ async function all() { JDFlashSale(stop), //京东闪购 JDOverseas(stop), //京东国际 JingDongCash(stop), //京东现金红包 - // JingRSeeAds(stop), //金融看广告 - // JingRongGame(stop), //金融游戏大厅 - // JDMagicCube(stop), //京东小魔方 + JDMagicCube(stop), //京东小魔方 JingDongPrize(stop), //京东抽大奖 JingDongSubsidy(stop), //京东金贴 JingDongShake(stop) //京东摇一摇 @@ -145,9 +120,7 @@ async function all() { JDUserSignPre(stop, 'JDClean', '京东商城-清洁'), //京东清洁馆 JDUserSignPre(stop, 'JDCare', '京东商城-个护'), //京东个人护理馆 JDUserSignPre(stop, 'JDJewels', '京东商城-珠宝'), //京东珠宝馆 - JDUserSignPre(stop, 'JDShand', '京东拍拍-二手') //京东拍拍二手 - ]); - await Promise.all([ + JDUserSignPre(stop, 'JDShand', '京东拍拍-二手'), //京东拍拍二手 JDUserSignPre(stop, 'JDWomen', '京东商城-女装'), //京东女装馆 JDUserSignPre(stop, 'JDGStore', '京东商城-超市'), //京东超市 JDUserSignPre(stop, 'JDPet', '京东商城-宠物'), //京东宠物馆 @@ -172,12 +145,10 @@ async function all() { await JDUserSignPre(stop, 'JDVege', '京东商城-菜场'); //京东菜场 await JingDongCash(stop); //京东现金红包 await JDUserSignPre(stop, 'JDFood', '京东商城-美食'); //京东美食馆 - // await JingRSeeAds(stop); //金融看广告 - // await JingRongGame(stop); //金融游戏大厅 await JDUserSignPre(stop, 'JDClean', '京东商城-清洁'); //京东清洁馆 await JDUserSignPre(stop, 'JDCare', '京东商城-个护'); //京东个人护理馆 await JDUserSignPre(stop, 'JDJewels', '京东商城-珠宝'); //京东珠宝馆 - // await JDMagicCube(stop); //京东小魔方 + await JDMagicCube(stop); //京东小魔方 await JingDongPrize(stop); //京东抽大奖 await JingDongSubsidy(stop); //京东金贴 await JingDongShake(stop) //京东摇一摇 @@ -208,7 +179,7 @@ function notify() { } var Cash = merge.JDCash.TCash ? merge.JDCash.TCash + "红包" : "" var Steel = merge.JRSteel.TSteel ? merge.JRSteel.TSteel + "钢镚" + (Cash ? ", " : "") : "" - var beans = merge.JDShake.Qbear ? merge.JDShake.Qbear + "京豆" + (Steel || Cash ? ", " : "" ) : "" + var beans = merge.JDShake.Qbear ? merge.JDShake.Qbear + "京豆" + (Steel || Cash ? ", " : "") : "" var bsc = beans ? "\n" : Steel ? "\n" : Cash ? "\n" : "获取失败\n" var Tbean = bean ? bean + "京豆" + (steel || merge.JDCash.Cash ? ", " : "") : "" var TSteel = steel ? steel + "钢镚" + (merge.JDCash.Cash ? ", " : "") : "" @@ -239,9 +210,9 @@ function notify() { $nobyda.time(); $nobyda.done(); } - resolve() } catch (eor) { $nobyda.notify("通知模块 " + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }); @@ -250,7 +221,6 @@ function notify() { function ReadCookie() { initial() DualAccount = true; - if ($nobyda.isQuanX && stop === 0) stop = 1; if (DeleteCookie) { if ($nobyda.isJSBox) { if ($file.exists("shared://JD_Cookie.txt")) { @@ -303,6 +273,9 @@ function ReadCookie() { } else if (Key || $nobyda.read("CookieJD")) { add = DualKey || $nobyda.read("CookieJD2") ? true : false KEY = Key ? Key : $nobyda.read("CookieJD") + out = $nobyda.read("JD_DailyBonusTimeOut") || out + stop = $nobyda.read("JD_DailyBonusDelay") || stop + LogDetails = $nobyda.read("JD_DailyBonusLog") === "true" ? true : false || LogDetails all() } else { $nobyda.notify("京东签到", "", "脚本终止, 未获取Cookie ‼️") @@ -332,6 +305,7 @@ function double() { function JingDongBean(s) { return new Promise(resolve => { + if (disable("JDBean")) return resolve() setTimeout(() => { const JDBUrl = { url: 'https://api.m.jd.com/client.action?functionId=signBeanIndex&appid=ld', @@ -393,9 +367,9 @@ function JingDongBean(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东商城-京豆" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -406,6 +380,7 @@ function JingDongBean(s) { function JingDongTurn(s) { return new Promise(resolve => { + if (disable("JDTurn")) return resolve() setTimeout(() => { const JDTUrl = { url: 'https://api.m.jd.com/client.action?functionId=lotteryDraw&body=%7B%22actId%22%3A%22jgpqtzjhvaoym%22%2C%22appSource%22%3A%22jdhome%22%2C%22lotteryCode%22%3A%224wwzdq7wkqx2usx4g5i2nu5ho4auto4qxylblkxacm7jqdsltsepmgpn3b2hgyd7hiawzpccizuck%22%7D&appid=ld', @@ -460,9 +435,9 @@ function JingDongTurn(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东商城-转盘" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -473,6 +448,7 @@ function JingDongTurn(s) { function JingRongBean(s) { return new Promise(resolve => { + if (disable("JRBean")) return resolve() setTimeout(() => { const login = { url: 'https://ms.jr.jd.com/gw/generic/zc/h5/m/signRecords', @@ -504,9 +480,9 @@ function JingRongBean(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东金融-京豆登录" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -561,9 +537,9 @@ function JRBeanCheckin(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东金融-京豆" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -574,6 +550,7 @@ function JRBeanCheckin(s) { function JingRongSteel(s) { return new Promise(resolve => { + if (disable("JRSteel")) return resolve() setTimeout(() => { const JRSUrl = { url: 'https://ms.jr.jd.com/gw/generic/gry/h5/m/signIn', @@ -624,9 +601,9 @@ function JingRongSteel(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东金融-钢镚" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -637,6 +614,7 @@ function JingRongSteel(s) { function JRDoubleSign(s) { return new Promise(resolve => { + if (disable("JRDSign")) return resolve() setTimeout(() => { const JRDSUrl = { url: 'https://nu.jr.jd.com/gw/generic/jrm/h5/m/process?', @@ -680,9 +658,9 @@ function JRDoubleSign(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东金融-双签" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -693,6 +671,7 @@ function JRDoubleSign(s) { function JingDongShake(s) { return new Promise(resolve => { + if (disable("JDShake")) return resolve() setTimeout(() => { const JDSh = { url: 'https://api.m.jd.com/client.action?appid=vip_h5&functionId=vvipclub_shaking', @@ -748,9 +727,9 @@ function JingDongShake(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东商城-摇摇" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -762,7 +741,7 @@ function JingDongShake(s) { function JDUserSignPre(s, key, title) { if ($nobyda.isNode) { return JDUserSignPre1(s, key, title); - } else if (key == 'JDWomen' || key == 'JDJewels'|| $nobyda.isJSBox) { + } else if (key == 'JDWomen' || key == 'JDJewels' || $nobyda.isJSBox) { return JDUserSignPre2(s, key, title); } else { return JDUserSignPre1(s, key, title); @@ -771,93 +750,97 @@ function JDUserSignPre(s, key, title) { function JDUserSignPre1(s, key, title) { return new Promise((resolve, reject) => { + if (disable(key)) return reject() //setTimeout(() => { - const JDUrl = { - url: 'https://api.m.jd.com/?client=wh5&functionId=qryH5BabelFloors', - headers: { - "Content-Type": "application/x-www-form-urlencoded", - Cookie: KEY, - }, - body: `body={"activityId":"${acData[key]}"}` - }; - $nobyda.post(JDUrl, function(error, response, data) { - try { - if (error) { - merge[key].notify = `${title}: 签到活动获取失败 ‼️‼️` - merge[key].fail = 1 - } else { - if (data.match(/enActK/)) { // 含有签到活动数据 - const od = JSON.parse(data); - let params = (od.floatLayerList || []).filter(o=>o.params && o.params.match(/enActK/)).map(o=>o.params).pop(); - if(!params){ // 第一处找到签到所需数据 - // floatLayerList未找到签到所需数据,从floorList中查找 - let signInfo = (od.floorList || []).filter(o=>o.template=='signIn' && o.signInfos && o.signInfos.params && o.signInfos.params.match(/enActK/)) - .map(o=>o.signInfos).pop(); - if(signInfo){ - if(signInfo.signStat=='1'){ - merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` - merge[key].fail = 1 - reject(); - return; - } else { - params = signInfo.params; - } + const JDUrl = { + url: 'https://api.m.jd.com/?client=wh5&functionId=qryH5BabelFloors', + headers: { + "Content-Type": "application/x-www-form-urlencoded", + Cookie: KEY, + }, + body: `body={"activityId":"${acData[key]}"}` + }; + $nobyda.post(JDUrl, function(error, response, data) { + try { + if (error) { + merge[key].notify = `${title}: 签到活动获取失败 ‼️‼️` + merge[key].fail = 1 + } else { + if (data.match(/enActK/)) { // 含有签到活动数据 + const od = JSON.parse(data); + let params = (od.floatLayerList || []).filter(o => o.params && o.params.match(/enActK/)).map(o => o.params).pop(); + if (!params) { // 第一处找到签到所需数据 + // floatLayerList未找到签到所需数据,从floorList中查找 + let signInfo = (od.floorList || []).filter(o => o.template == 'signIn' && o.signInfos && o.signInfos.params && o.signInfos.params.match(/enActK/)) + .map(o => o.signInfos).pop(); + if (signInfo) { + if (signInfo.signStat == '1') { + merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` + merge[key].fail = 1 + reject(); + return; + } else { + params = signInfo.params; } } - if(params){ - resolve({params: params}); // 执行签到处理 - return; - } } - merge[key].notify = `${title}: 失败, 原因: 不含活动数据 ⚠️` - merge[key].fail = 1 + if (params) { + resolve({ + params: params + }); // 执行签到处理 + return; + } } - reject() - } catch (eor) { - $nobyda.notify(`${title}${eor.name} ‼️`, JSON.stringify(eor), eor.message) - reject() + merge[key].notify = `${title}: 失败, 原因: 不含活动数据 ⚠️` + merge[key].fail = 1 } - }) + } catch (eor) { + $nobyda.notify(`${title}${eor.name} ‼️`, JSON.stringify(eor), eor.message) + } finally { + reject() + } + }) //}, s) if (out) setTimeout(reject, out + s) - }).then(data=>{ + }).then(data => { return JDUserSign(s, key, title, encodeURIComponent(JSON.stringify(data))); - },()=>{}); + }, () => {}); } function JDUserSignPre2(s, key, title) { return new Promise((resolve, reject) => { + if (disable(key)) return reject() //setTimeout(() => { - const JDUrl = { - url: `https://pro.m.jd.com/mall/active/${acData[key]}/index.html`, - headers: { - Cookie: KEY, - } - }; - $nobyda.get(JDUrl, function(error, response, data) { - try { - if (error) { - merge[key].notify = `${title}: 签到活动获取失败 ‼️‼️` - merge[key].fail = 1 - } else { - if (data.match(/"params":"{\\"enActK\\".*?\\"}"/)) { // 含有签到活动数据 - resolve(`{${data.match(/"params":"{\\"enActK\\".*?\\"}"/)}}`); // 执行签到处理 - return; - } - merge[key].notify = `${title}: 失败, 原因: 不含活动数据 ⚠️` - merge[key].fail = 1 + const JDUrl = { + url: `https://pro.m.jd.com/mall/active/${acData[key]}/index.html`, + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDUrl, function(error, response, data) { + try { + if (error) { + merge[key].notify = `${title}: 签到活动获取失败 ‼️‼️` + merge[key].fail = 1 + } else { + if (data.match(/"params":"{\\"enActK\\".*?\\"}"/)) { // 含有签到活动数据 + resolve(`{${data.match(/"params":"{\\"enActK\\".*?\\"}"/)}}`); // 执行签到处理 + return; } - reject() - } catch (eor) { - $nobyda.notify(`${title}${eor.name} ‼️`, JSON.stringify(eor), eor.message) - reject() + merge[key].notify = `${title}: 失败, 原因: 不含活动数据 ⚠️` + merge[key].fail = 1 } - }) + } catch (eor) { + $nobyda.notify(`${title}${eor.name} ‼️`, JSON.stringify(eor), eor.message) + } finally { + reject() + } + }) //}, s) if (out) setTimeout(reject, out + s) - }).then(data=>{ + }).then(data => { return JDUserSign(s, key, title, encodeURIComponent(data)); - },()=>{}); + }, () => {}); } function JDUserSign(s, key, title, body) { @@ -911,9 +894,9 @@ function JDUserSign(s, key, title, body) { } } } - resolve() } catch (eor) { $nobyda.notify(`${title}${eor.name} ‼️`, JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -924,6 +907,7 @@ function JDUserSign(s, key, title, body) { function JDFlashSale(s) { return new Promise(resolve => { + if (disable("JDFSale")) return resolve() setTimeout(() => { const JDPETUrl = { url: 'https://api.m.jd.com/client.action?functionId=partitionJdSgin', @@ -973,9 +957,9 @@ function JDFlashSale(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东商城-闪购" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1034,9 +1018,9 @@ function FlashSaleDivide(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东闪购-瓜分" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1047,6 +1031,7 @@ function FlashSaleDivide(s) { function JingDongCash(s) { return new Promise(resolve => { + if (disable("JDCash")) return resolve() setTimeout(() => { const JDCAUrl = { url: 'https://api.m.jd.com/client.action?functionId=ccSignInNew', @@ -1095,172 +1080,9 @@ function JingDongCash(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东现金-红包" + eor.name + "‼️", JSON.stringify(eor), eor.message) - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JingRSeeAds(s) { - return new Promise(resolve => { - setTimeout(() => { - const JRAdsUrl = { - url: 'https://ms.jr.jd.com/gw/generic/jrm/h5/m/sendAdGb', - headers: { - "Content-Type": "application/x-www-form-urlencoded", - Cookie: KEY, - }, - body: "reqData=%7B%22clientType%22%3A%22ios%22%2C%22actKey%22%3A%22176696%22%2C%22userDeviceInfo%22%3A%7B%22adId%22%3A9999999%7D%2C%22deviceInfoParam%22%3A%7B%22macAddress%22%3A%2202%3A00%3A00%3A00%3A00%3A00%22%2C%22channelInfo%22%3A%22appstore%22%2C%22IPAddress1%22%3A%22%22%2C%22OpenUDID%22%3A%22%22%2C%22clientVersion%22%3A%225.3.30%22%2C%22terminalType%22%3A%2202%22%2C%22osVersion%22%3A%22%22%2C%22appId%22%3A%22com.jd.jinrong%22%2C%22deviceType%22%3A%22iPhone8%2C2%22%2C%22networkType%22%3A%22%22%2C%22startNo%22%3A212%2C%22UUID%22%3A%22%22%2C%22IPAddress%22%3A%22%22%2C%22deviceId%22%3A%22%22%2C%22IDFA%22%3A%22%22%2C%22resolution%22%3A%22%22%2C%22osPlatform%22%3A%22iOS%22%7D%2C%22bussource%22%3A%22%22%7D" - }; - $nobyda.post(JRAdsUrl, function(error, response, data) { - try { - if (error) { - merge.JRSeeAds.notify = "京东金融-广告: 签到接口请求失败 ‼️‼️" - merge.JRSeeAds.fail = 1 - } else { - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data) - if (data.match(/(\"canGetGb\":true)/)) { - console.log("\n" + "京东金融-广告签到成功 " + Details) - if (data.match(/(\"volumn\"|\"volume\")/)) { - merge.JRSeeAds.notify = "京东金融-广告: 成功, 明细: " + cc.resultData.data.volumn + "京豆 🐶" - merge.JRSeeAds.bean = cc.resultData.data.volumn - merge.JRSeeAds.success = 1 - } else { - merge.JRSeeAds.notify = "京东金融-广告: 成功, 明细: 无京豆 🐶" - merge.JRSeeAds.success = 1 - } - } else { - console.log("\n" + "京东金融-广告签到失败 " + Details) - if (data.match(/(已经发完|已签到|已领取|\"code\":\"2000\")/)) { - merge.JRSeeAds.notify = "京东金融-广告: 失败, 原因: 已签过 ⚠️" - merge.JRSeeAds.fail = 1 - } else { - if (data.match(/(不存在|已结束|未找到)/)) { - merge.JRSeeAds.notify = "京东金融-广告: 失败, 原因: 活动已结束 ⚠️" - merge.JRSeeAds.fail = 1 - } else { - if (data.match(/(\"resultCode\":3|先登录)/)) { - merge.JRSeeAds.notify = "京东金融-广告: 失败, 原因: Cookie失效‼️" - merge.JRSeeAds.fail = 1 - } else { - merge.JRSeeAds.notify = "京东金融-广告: 失败, 原因: 未开始 ⚠️" - merge.JRSeeAds.fail = 1 - } - } - } - } - } - resolve() - } catch (eor) { - $nobyda.notify("京东金融-广告" + eor.name + "‼️", JSON.stringify(eor), eor.message) - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JingRongGame(s) { - return new Promise(resolve => { - setTimeout(() => { - const JRGamelogin = { - url: 'https://ylc.m.jd.com/sign/signGiftDays', - headers: { - "Content-Type": "application/x-www-form-urlencoded", - Cookie: KEY, - }, - body: "channelId=1" - }; - $nobyda.post(JRGamelogin, async function(error, response, data) { - try { - if (error) { - merge.JRGame.notify = "京东金融-游戏: 登录接口请求失败 ‼️‼️" - merge.JRGame.fail = 1 - } else { - const Details = LogDetails ? "response:\n" + data : ''; - if (data.match(/(未登录)/)) { - console.log("\n" + "京东金融-游戏登录失败 " + Details) - merge.JRGame.notify = "京东游戏-登录: 失败, 原因: Cookie失效‼️" - merge.JRGame.fail = 1 - } else if (data.match(/(成功)/)) { - console.log("\n" + "京东金融-游戏登录成功 " + Details) - await JRGameCheckin(0) - } else { - merge.JRGame.notify = "京东游戏-登录: 失败, 原因: 未知 ⚠️" - merge.JRGame.fail = 1 - } - } - resolve() - } catch (eor) { - $nobyda.notify("京东游戏-登录" + eor.name + "‼️", JSON.stringify(eor), eor.message) - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JRGameCheckin(s) { - return new Promise(resolve => { - setTimeout(() => { - const JRGameUrl = { - url: 'https://ylc.m.jd.com/sign/signDone', - headers: { - "Content-Type": "application/x-www-form-urlencoded", - Cookie: KEY, - }, - body: "channelId=1" - }; - $nobyda.post(JRGameUrl, function(error, response, data) { - try { - if (error) { - merge.JRGame.notify = "京东金融-游戏: 签到接口请求失败 ‼️‼️" - merge.JRGame.fail = 1 - } else { - const Details = LogDetails ? "response:\n" + data : ''; - const cc = JSON.parse(data) - if (data.match(/(\"code\":200)/)) { - console.log("\n" + "京东金融-游戏签到成功 " + Details) - if (data.match(/(\"rewardAmount\":\d+)/)) { - merge.JRGame.notify = "京东金融-游戏: 成功, 明细: " + cc.data.rewardAmount + "京豆 🐶" - merge.JRGame.bean = cc.data.rewardAmount - merge.JRGame.success = 1 - } else { - merge.JRGame.notify = "京东金融-游戏: 成功, 明细: 无京豆 🐶" - merge.JRGame.success = 1 - } - } else { - console.log("\n" + "京东金融-游戏签到失败 " + Details) - if (data.match(/(用户重复|重复点击|\"code\":301|\"code\":303)/)) { - merge.JRGame.notify = "京东金融-游戏: 失败, 原因: 已签过 ⚠️" - merge.JRGame.fail = 1 - } else { - if (data.match(/(不存在|已结束|未找到)/)) { - merge.JRGame.notify = "京东金融-游戏: 失败, 原因: 活动已结束 ⚠️" - merge.JRGame.fail = 1 - } else { - if (data.match(/(\"code\":202|未登录)/)) { - merge.JRGame.notify = "京东金融-游戏: 失败, 原因: Cookie失效‼️" - merge.JRGame.fail = 1 - } else { - merge.JRGame.notify = "京东金融-游戏: 失败, 原因: 未知 ⚠️" - merge.JRGame.fail = 1 - } - } - } - } - } - resolve() - } catch (eor) { - $nobyda.notify("京东金融-游戏" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1271,6 +1093,7 @@ function JRGameCheckin(s) { function JDMagicCube(s) { return new Promise(resolve => { + if (disable("JDCube")) return resolve() setTimeout(() => { const JDMCUrl = { url: 'https://api.m.jd.com/client.action?functionId=getNewsInteractionLotteryInfo&appid=smfe', @@ -1317,9 +1140,9 @@ function JDMagicCube(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东商城-魔方" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1330,6 +1153,7 @@ function JDMagicCube(s) { function JingDongPrize(s) { return new Promise(resolve => { + if (disable("JDPrize")) return resolve() setTimeout(() => { const JDkey = { url: 'https://api.m.jd.com/client.action?functionId=vvipscdp_raffleAct_index&client=apple&clientVersion=8.1.0&appid=member_benefit_m', @@ -1366,9 +1190,9 @@ function JingDongPrize(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东商城-大奖查询KEY" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1432,9 +1256,9 @@ function JDPrizeCheckin(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东商城-大奖签到" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1445,6 +1269,7 @@ function JDPrizeCheckin(s) { function JingDongSpeedUp(s, id) { return new Promise(resolve => { + if (disable("SpeedUp")) return resolve() setTimeout(() => { const GameUrl = { url: 'https://api.m.jd.com/?appid=memberTaskCenter&functionId=flyTask_' + (id ? 'start&body=%7B%22source%22%3A%22game%22%2C%22source_id%22%3A' + id + '%7D' : 'state&body=%7B%22source%22%3A%22game%22%7D'), @@ -1505,9 +1330,9 @@ function JingDongSpeedUp(s, id) { console.log("\n" + "天天加速-判断状态失败") } } - resolve() } catch (eor) { $nobyda.notify("京东天天-加速" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1550,9 +1375,9 @@ function JDQueryTask(s) { console.log("\n天天加速-查询无道具" + Details) } } - resolve(TaskID) } catch (eor) { $nobyda.notify("天天加速-查询道具" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve(TaskID) } }) @@ -1575,9 +1400,9 @@ function JDReceiveTask(s, CID) { Cookie: KEY } }; + count += 1 $nobyda.get(TUrl, function(error, response, data) { try { - count += 1 if (error) { console.log("\n天天加速-领取道具请求失败 ‼️‼️") } else { @@ -1588,13 +1413,14 @@ function JDReceiveTask(s, CID) { NumTask += 1 } } + + } catch (eor) { + $nobyda.notify("天天加速-领取道具" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { if (CID.length == count) { console.log("\n天天加速-已成功领取" + NumTask + "个道具") resolve(NumTask) } - } catch (eor) { - $nobyda.notify("天天加速-领取道具" + eor.name + "‼️", JSON.stringify(eor), eor.message) - resolve(NumTask) } }) } @@ -1641,9 +1467,9 @@ function JDQueryTaskID(s, EID) { console.log("\n天天加速-查询无道具ID" + Details) } } - resolve(TaskCID) } catch (eor) { $nobyda.notify("天天加速-道具ID" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve(TaskCID) } }) @@ -1669,9 +1495,9 @@ function JDUseProps(s, PropID) { Cookie: KEY } }; + PropCount += 1 $nobyda.get(PropUrl, function(error, response, data) { try { - PropCount += 1 if (error) { console.log("\n天天加速-使用道具请求失败 ‼️‼️") } else { @@ -1682,13 +1508,14 @@ function JDUseProps(s, PropID) { PropNumTask += 1 } } + + } catch (eor) { + $nobyda.notify("天天加速-使用道具" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { if (PropID.length == PropCount) { console.log("\n天天加速-已成功使用" + PropNumTask + "个道具") resolve() } - } catch (eor) { - $nobyda.notify("天天加速-使用道具" + eor.name + "‼️", JSON.stringify(eor), eor.message) - resolve() } }) } @@ -1702,6 +1529,7 @@ function JDUseProps(s, PropID) { function JingDongSubsidy(s) { return new Promise(resolve => { + if (disable("subsidy")) return resolve() setTimeout(() => { const subsidyUrl = { url: 'https://ms.jr.jd.com/gw/generic/uc/h5/m/signIn7', @@ -1738,9 +1566,9 @@ function JingDongSubsidy(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东商城-金贴" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1751,6 +1579,7 @@ function JingDongSubsidy(s) { function JingRongDoll(s, type, num) { return new Promise(resolve => { + if (disable("JRDoll")) return resolve() setTimeout(() => { const DollUrl = { url: "https://nu.jr.jd.com/gw/generic/jrm/h5/m/process", @@ -1804,9 +1633,9 @@ function JingRongDoll(s, type, num) { merge.JRDoll.fail = 1; } } - resolve() } catch (eor) { $nobyda.notify("京东金融-娃娃" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1817,6 +1646,7 @@ function JingRongDoll(s, type, num) { function JDOverseas(s) { return new Promise(resolve => { + if (disable("Overseas")) return resolve() setTimeout(() => { const OverseasUrl = { url: 'https://api.m.jd.com/client.action?functionId=checkin', @@ -1854,9 +1684,9 @@ function JDOverseas(s) { } } } - resolve() } catch (eor) { $nobyda.notify("京东商城-国际" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1867,6 +1697,7 @@ function JDOverseas(s) { function TotalSteel() { return new Promise(resolve => { + if (disable("TSteel")) return resolve() const SteelUrl = { url: 'https://coin.jd.com/m/gb/getBaseInfo.html', headers: { @@ -1887,9 +1718,9 @@ function TotalSteel() { } else { console.log("\n" + "京东-总钢镚查询请求失败 ") } - resolve() } catch (eor) { $nobyda.notify("钢镚接口" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1899,6 +1730,7 @@ function TotalSteel() { function TotalBean() { return new Promise(resolve => { + if (disable("Qbear")) return resolve() const BeanUrl = { url: 'https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2', headers: { @@ -1927,9 +1759,9 @@ function TotalBean() { } else { console.log("\n" + "京东-总京豆查询请求失败 ") } - resolve() } catch (eor) { $nobyda.notify("京豆接口" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1939,6 +1771,7 @@ function TotalBean() { function TotalCash() { return new Promise(resolve => { + if (disable("TCash")) return resolve() const CashUrl = { url: 'https://api.m.jd.com/client.action?functionId=myhongbao_balance', headers: { @@ -1961,9 +1794,9 @@ function TotalCash() { } else { console.log("\n" + "京东-总红包查询请求失败 ") } - resolve() } catch (eor) { $nobyda.notify("红包接口" + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { resolve() } }) @@ -1971,7 +1804,41 @@ function TotalCash() { }); } +function disable(name) { + const read = $nobyda.read("JD_DailyBonusDisable") + if (read === "" || read && read.indexOf(name) == -1) { + return true + } else { + return false + } +} function initial() { + + acData = { + // 京东商城-超市 + JDGStore: 'aNCM6yrzD6qp1Vvh5YTzeJtk7cM', + // 京东商城-宠物 + JDPet: '37ta5sh5ocrMZF3Fz5UMJbTsL42', + // 京东商城-图书 + JDBook: '3SC6rw5iBg66qrXPGmZMqFDwcyXi', + // 京东拍拍-二手 + JDShand: '3S28janPLYmtFxypu37AYAGgivfp', + // 京东商城-美妆 + JDMakeup: '2smCxzLNuam5L14zNJHYu43ovbAP', + // 京东商城-清洁 + JDClean: '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6', + // 京东商城-女装 + JDWomen: 'DpSh7ma8JV7QAxSE2gJNro8Q2h9', + // 京东商城-个护 + JDCare: 'NJ1kd1PJWhwvhtim73VPsD1HwY3', + // 京东商城-美食 + JDFood: '4PzvVmLSBq5K63oq4oxKcDtFtzJo', + // 京东商城-珠宝 + JDJewels: 'zHUHpTHNTaztSRfNBFNVZscyFZU', + // 京东商城-菜场 + JDVege: 'Wcu2LVCFMkBP3HraRvb7pgSpt64' + }; + merge = { SpeedUp: {}, JDBean: {}, @@ -1987,8 +1854,6 @@ function initial() { JDMakeup: {}, Overseas: {}, JDWomen: {}, - JRGame: {}, - JRSeeAds: {}, JDCare: {}, JDFood: {}, JDClean: {}, @@ -2052,6 +1917,8 @@ function GetCookie() { } else { $nobyda.notify("用户名: " + DecodeName, "", "更新京东" + CookieName + "Cookie成功 🎉"); } + } else { + console.log("京东: \n与历史Cookie相同, 跳过写入") } } else { var cookie = $nobyda.write(CookieValue, CookieKey); @@ -2212,4 +2079,4 @@ function nobyda() { done } }; -ReadCookie(); +ReadCookie(); \ No newline at end of file diff --git a/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/newapp.sh b/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/newapp.sh index 94db34dd92..65116336da 100755 --- a/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/newapp.sh +++ b/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/newapp.sh @@ -140,7 +140,7 @@ update() { if [ $? -ne 0 ]; then cancel "501" fi - if [ $(echo "$local_ver < $remote_ver" | bc) -eq 1 ]; then + if [ $(expr $local_ver \< $remote_ver) -eq 1 ]; then cp -r $TEMP_SCRIPT $JD_SCRIPT fill_cookie uci set jd-dailybonus.@global[0].version=$remote_ver diff --git a/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/rpcd/acl.d/luci-app-jd-dailybonus.json b/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/rpcd/acl.d/luci-app-jd-dailybonus.json index 083edfd259..3b8d97a0fe 100644 --- a/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/rpcd/acl.d/luci-app-jd-dailybonus.json +++ b/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/rpcd/acl.d/luci-app-jd-dailybonus.json @@ -2,17 +2,10 @@ "luci-app-jd-dailybonus": { "description": "Grant UCI access for luci-app-jd-dailybonus", "read": { - "uci": [ "jd-dailybonus" ], - "file": { - "/usr/share/jd-dailybonus/*": ["read"], - "/www/JD_DailyBonus.htm": ["read"] - } + "uci": [ "jd-dailybonus" ] }, "write": { - "uci": [ "jd-dailybonus" ], - "file": { - "/usr/share/jd-dailybonus/*": ["write"] - } + "uci": [ "jd-dailybonus" ] } } }