luci-app-jd-dailybonus: sync with upstream source

This commit is contained in:
CN_SZTL 2020-07-19 17:43:31 +08:00
parent 1ac34f379c
commit ed6a824884
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
7 changed files with 191 additions and 333 deletions

View File

@ -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

View File

@ -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
return log

View File

@ -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")

View File

@ -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'

View File

@ -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();

View File

@ -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

View File

@ -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" ]
}
}
}