@@ -31,6 +31,8 @@
|
||||
"10 7 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_ds.js, tag=京东代属, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_ds.png",
|
||||
"10 7 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_digital_floor.js, tag=数码加购京豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png",
|
||||
"0 0,9,11,13,15,17,19,20,21,23 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_live_redrain.js, tag=直播红包雨, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png",
|
||||
"10 0 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_apple_live.js, tag=苹果抽奖机, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png",
|
||||
"10 1 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_pubg.js, tag=PUBG, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png",
|
||||
"15 17 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/xmSports.js, tag=小米运动, img-url=https://raw.githubusercontent.com/58xinian/icon/master/xmyd.png"
|
||||
]
|
||||
}
|
||||
|
@@ -9,7 +9,7 @@
|
||||
"id": "QQ_READ",
|
||||
"name": "企鹅阅读(QQ小程序)",
|
||||
"keys": [
|
||||
"qqreadhd",
|
||||
"qqreadbodyVal",
|
||||
"qqreadtimeurl",
|
||||
"qqreadtimehd"
|
||||
],
|
||||
|
689
backUp/qqread.js
689
backUp/qqread.js
@@ -6,7 +6,7 @@
|
||||
多个账号 对应三个环境变量/secret 使用@符号或者换行隔开
|
||||
iOS可使用BoxJs可使用此订阅修改复制所需的环境变量 https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/mySelf.boxjs.json
|
||||
环境变量与BoxJs里面对应关系
|
||||
QQ_READ_HEADER_VAL ------》 qqreadhd
|
||||
QQ_READ_HEADER_VAL ------》 qqreadbodyVal
|
||||
QQ_READ_TIME_URL_VAL ------》 qqreadtimeurl
|
||||
QQ_READ_TIME_HEADER_VAL ------》 qqreadtimehd
|
||||
*****************************************************************************************************************
|
||||
@@ -38,56 +38,40 @@ ziye
|
||||
⚠️宝箱奖励为20分钟一次,自己根据情况设置定时,建议设置11分钟一次
|
||||
|
||||
hostname=mqqapi.reader.qq.com
|
||||
|
||||
############## 圈x
|
||||
|
||||
#企鹅读书获取cookie
|
||||
https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init url script-request-header https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js
|
||||
|
||||
#企鹅读书获取更新body
|
||||
https:\/\/mqqapi\.reader\.qq\.com\/log\/v4\/mqq\/track url script-request-body https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js
|
||||
#企鹅读书获取时长cookie
|
||||
https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? url script-request-header https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js
|
||||
|
||||
|
||||
############## loon
|
||||
|
||||
//企鹅读书获取cookie
|
||||
http-request https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js,requires-header=true, tag=企鹅读书获取cookie
|
||||
|
||||
//企鹅读书获取时长cookie
|
||||
#企鹅读书获取更新body
|
||||
http-request https:\/\/mqqapi\.reader\.qq\.com\/log\/v4\/mqq\/track script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js,requires-body=true, tag=企鹅读书获取更新body
|
||||
#企鹅读书获取时长cookie
|
||||
http-request https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js, requires-header=true, tag=企鹅读书获取时长cookie
|
||||
|
||||
|
||||
############## surge
|
||||
#企鹅读书获取更新body
|
||||
企鹅读书获取更新body = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/log\/v4\/mqq\/track,requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js, script-update-interval=0
|
||||
#企鹅读书获取时长cookie
|
||||
企鹅读书获取时长cookie = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid?,script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js
|
||||
|
||||
//企鹅读书获取cookie
|
||||
企鹅读书 = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init,script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js, requires-header=true
|
||||
|
||||
//企鹅读书获取时长cookie
|
||||
企鹅读书 = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid?,script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js, requires-header=true
|
||||
|
||||
|
||||
*/
|
||||
|
||||
const jsname = '企鹅读书'
|
||||
const $ = Env(jsname)
|
||||
let task = '', config, ssr2 = '', wktime;
|
||||
let task = '', config, ssr2 = '', wktime, day = 0;
|
||||
console.log(`\n========= 脚本执行时间(TM):${new Date(new Date().getTime() + 0 * 60 * 60 * 1000).toLocaleString('zh', {hour12: false})} =========\n`)
|
||||
|
||||
const logs = 1; //0为关闭日志,1为开启
|
||||
const notifyInterval = 3
|
||||
//0为关闭通知,1为所有通知,2为宝箱领取成功通知,3为宝箱每15次通知一次
|
||||
|
||||
const dd = 1//单次任务延迟,默认1秒
|
||||
const TIME = 30//单次时长上传限制,默认5分钟
|
||||
const maxtime = 20//每日上传时长限制,默认20小时
|
||||
const wktimess = 1200//周奖励领取标准,默认1200分钟
|
||||
var tz = ''
|
||||
const qqreadurlVal = `https://mqqapi.reader.qq.com/mqq/user/init`;
|
||||
const qqreadurlKey = 'qqreadurl'
|
||||
// const qqreadurlVal = $.getdata(qqreadurlKey)
|
||||
let tz = '',kz;
|
||||
const qqreadbodyValKey = 'qqreadbodyVal'
|
||||
let qqreadbodyVal = $.getdata(qqreadbodyValKey)
|
||||
|
||||
const qqreadheaderKey = 'qqreadhd'
|
||||
let qqreadheaderVal = $.getdata(qqreadheaderKey)
|
||||
|
||||
const qqreadtimeurlKey = 'qqreadtimeurl'
|
||||
let qqreadtimeurlVal = $.getdata(qqreadtimeurlKey)
|
||||
@@ -97,24 +81,23 @@ let qqreadtimeheaderVal = $.getdata(qqreadtimeheaderKey)
|
||||
//云函数使用在下面填写
|
||||
let QQ_READ_COOKIES = [
|
||||
{
|
||||
qqreadurlVal,
|
||||
"qqreadheaderVal": ``,
|
||||
"qqreadbodyVal": ``,
|
||||
"qqreadtimeurlVal": ``,
|
||||
"qqreadtimeheaderVal": ``
|
||||
}
|
||||
]
|
||||
function getNodeCookie() {
|
||||
if ($.isNode()) {
|
||||
let QQ_READ_HEADER_VAL = [], QQ_READ_TIME_URL_VAL = [], QQ_READ_TIME_HEADER_VAL = [];
|
||||
let QQ_READ_BODY_VAL = [], QQ_READ_TIME_URL_VAL = [], QQ_READ_TIME_HEADER_VAL = [];
|
||||
if (process.env.QQ_READ_HEADER_VAL) {
|
||||
if (process.env.QQ_READ_HEADER_VAL.indexOf('@') > -1) {
|
||||
console.log(`您的QQ_READ_HEADER_VAL选择的是用@隔开\n`)
|
||||
QQ_READ_HEADER_VAL = process.env.QQ_READ_HEADER_VAL.split('@');
|
||||
QQ_READ_BODY_VAL = process.env.QQ_READ_HEADER_VAL.split('@');
|
||||
} else if (process.env.QQ_READ_HEADER_VAL.indexOf('\n') > -1) {
|
||||
console.log(`您的QQ_READ_HEADER_VAL选择的是用换行隔开\n`)
|
||||
QQ_READ_HEADER_VAL = process.env.QQ_READ_HEADER_VAL.split('\n');
|
||||
QQ_READ_BODY_VAL = process.env.QQ_READ_HEADER_VAL.split('\n');
|
||||
} else {
|
||||
QQ_READ_HEADER_VAL = [process.env.QQ_READ_HEADER_VAL];
|
||||
QQ_READ_BODY_VAL = [process.env.QQ_READ_HEADER_VAL];
|
||||
}
|
||||
// QQ_READ_HEADER_VAL = [...new Set(QQ_READ_HEADER_VAL)]
|
||||
// $.log(QQ_READ_HEADER_VAL)
|
||||
@@ -143,11 +126,10 @@ function getNodeCookie() {
|
||||
}
|
||||
// QQ_READ_TIME_HEADER_VAL = [...new Set(QQ_READ_TIME_HEADER_VAL)]
|
||||
}
|
||||
if (QQ_READ_HEADER_VAL && QQ_READ_HEADER_VAL.length > 0) QQ_READ_COOKIES = [];
|
||||
for (let i = 0; i < QQ_READ_HEADER_VAL.length; i ++) {
|
||||
if (QQ_READ_BODY_VAL && QQ_READ_BODY_VAL.length > 0) QQ_READ_COOKIES = [];
|
||||
for (let i = 0; i < QQ_READ_BODY_VAL.length; i ++) {
|
||||
QQ_READ_COOKIES.push({
|
||||
qqreadurlVal,
|
||||
"qqreadheaderVal": QQ_READ_HEADER_VAL[i] || "",
|
||||
"qqreadbodyVal": QQ_READ_BODY_VAL[i] || "",
|
||||
"qqreadtimeurlVal": QQ_READ_TIME_URL_VAL[i] || "",
|
||||
"qqreadtimeheaderVal": QQ_READ_TIME_HEADER_VAL[i] || ""
|
||||
})
|
||||
@@ -174,24 +156,13 @@ if (isGetCookie) {
|
||||
}
|
||||
|
||||
function GetCookie() {
|
||||
|
||||
if ($request && $request.url.indexOf("init") >= 0) {
|
||||
|
||||
// const qqreadurlVal = $request.url
|
||||
// if (qqreadurlVal) $.setdata(qqreadurlVal, qqreadurlKey)
|
||||
// $.log(`[${jsname}] 获取url请求: 成功,qqreadurlVal: ${qqreadurlVal}`)
|
||||
|
||||
// const qqreadbodyVal = $request.body
|
||||
// if (qqreadbodyVal) $.setdata(qqreadbodyVal, qqreadbodyKey)
|
||||
// $.log(`[${jsname}] 获取阅读: 成功,qqreadbodyVal: ${qqreadbodyVal}`)
|
||||
|
||||
// $.setdata(qqreadurlVal, qqreadurlKey);
|
||||
const qqreadheaderVal = JSON.stringify($request.headers)
|
||||
if (qqreadheaderVal) $.setdata(qqreadheaderVal, qqreadheaderKey)
|
||||
$.log(`[${jsname}] 获取Cookie: 成功,qqreadheaderVal: ${qqreadheaderVal}`)
|
||||
$.msg(qqreadheaderKey, `获取cookie: 成功🎉`, ``)
|
||||
|
||||
} else if ($request && $request.url.indexOf("addReadTimeWithBid?") >= 0) {
|
||||
if ($request.body && $request.body.indexOf("bookDetail_bottomBar_read_C") >= 0 && $request.body.indexOf("bookRead_show_I") >= 0 && $request.body.indexOf("topBar_left_back_C") < 0 && $request.body.indexOf("bookRead_dropOut_shelfYes_C") < 0) {
|
||||
const qqreadbodyVal = $request.body;
|
||||
if (qqreadbodyVal) $.setdata(qqreadbodyVal, qqreadbodyValKey);
|
||||
$.log(`[${jsname}] 获取更新body: 成功,qqreadbodyVal: ${qqreadbodyVal}`);
|
||||
$.msg(jsname, `获取更新body: 成功🎉`, ``);
|
||||
}
|
||||
if ($request && $request.url.indexOf("addReadTimeWithBid?") >= 0) {
|
||||
const qqreadtimeurlVal = $request.url
|
||||
if (qqreadtimeurlVal) $.setdata(qqreadtimeurlVal, qqreadtimeurlKey)
|
||||
$.log(`[${jsname}] 获取阅读时长url: 成功,qqreadtimeurlVal: ${qqreadtimeurlVal}`)
|
||||
@@ -200,7 +171,6 @@ function GetCookie() {
|
||||
if (qqreadtimeheaderVal) $.setdata(qqreadtimeheaderVal, qqreadtimeheaderKey)
|
||||
$.log(`[${jsname}] 获取时长header: 成功,qqreadtimeheaderVal: ${qqreadtimeheaderVal}`)
|
||||
$.msg(qqreadtimeheaderKey, `获取阅读时长cookie: 成功🎉`, ``)
|
||||
|
||||
}
|
||||
$.done();
|
||||
}
|
||||
@@ -208,513 +178,462 @@ async function QQ_READ() {
|
||||
for (let i = 0; i < QQ_READ_COOKIES.length; i++) {
|
||||
$.log(`\n*************开始QQ账号${i + 1}**************\n`);
|
||||
tz = '';
|
||||
if (!QQ_READ_COOKIES[i]["qqreadheaderVal"] || !QQ_READ_COOKIES[i]['qqreadtimeurlVal'] || !QQ_READ_COOKIES[i]['qqreadtimeheaderVal']) {
|
||||
if (!QQ_READ_COOKIES[i]["qqreadbodyVal"] || !QQ_READ_COOKIES[i]['qqreadtimeurlVal'] || !QQ_READ_COOKIES[i]['qqreadtimeheaderVal']) {
|
||||
$.log(`账号${i + 1}暂未提供脚本执行所需的cookie`);
|
||||
continue
|
||||
}
|
||||
qqreadheaderVal = QQ_READ_COOKIES[i]['qqreadheaderVal'];
|
||||
qqreadbodyVal = QQ_READ_COOKIES[i]['qqreadbodyVal'];
|
||||
qqreadtimeurlVal = QQ_READ_COOKIES[i]['qqreadtimeurlVal'];
|
||||
qqreadtimeheaderVal = QQ_READ_COOKIES[i]['qqreadtimeheaderVal'];
|
||||
await qqreadinfo();//用户名
|
||||
// await $.wait(2000)
|
||||
await qqreadwktime();//周时长查询
|
||||
await qqreadtrack();
|
||||
await qqreadconfig();//时长查询
|
||||
// await $.wait(2000)
|
||||
await qqreadtask();//任务列表
|
||||
|
||||
if (config.data.pageParams.todayReadSeconds / 3600 <= maxtime) {
|
||||
await qqreadtime();// 上传时长
|
||||
}
|
||||
await qqreadpick();//领周时长奖励
|
||||
if (task.data.taskList[0].doneFlag == 0) {
|
||||
// await $.wait(2000)
|
||||
await qqreaddayread();//阅读任务
|
||||
}
|
||||
if (task.data.taskList[2].doneFlag == 0) {
|
||||
// await $.wait(2000)
|
||||
await qqreadsign();//金币签到
|
||||
// await $.wait(2000)
|
||||
await qqreadtake();//阅豆签到
|
||||
// await $.wait(2000)
|
||||
await qqreadsign2();//签到翻倍
|
||||
if (task.data.taskList[1].doneFlag == 0) {
|
||||
await $.wait(5000)
|
||||
await qqreadssr1();//阅读金币1
|
||||
}
|
||||
if (task.data.taskList[2].doneFlag == 0) {
|
||||
await qqreadsign();//金币签到
|
||||
await qqreadtake();//阅豆签到
|
||||
}
|
||||
if (task.data.taskList[3].doneFlag == 0) {
|
||||
await qqreadvideo();//视频奖励
|
||||
}
|
||||
|
||||
if (task.data.treasureBox.doneFlag == 0) {
|
||||
// await $.wait(2000)
|
||||
await qqreadbox();//宝箱
|
||||
}
|
||||
if (task.data.taskList[1].doneFlag == 0) {
|
||||
// await $.wait(2000)
|
||||
await qqreadssr1();//阅读金币1
|
||||
await $.wait(3000)
|
||||
await $.wait(5000)
|
||||
await qqreadssr2();//阅读金币2
|
||||
}
|
||||
if (task.data.taskList[2].doneFlag == 0) {
|
||||
await qqreadsign2();//金币签到
|
||||
}
|
||||
|
||||
if (task.data.treasureBox.videoDoneFlag == 0) {
|
||||
await qqreadbox2();//宝箱翻倍
|
||||
}
|
||||
if (task.data.taskList[1].doneFlag == 0) {
|
||||
await $.wait(5000)
|
||||
await qqreadssr3();//阅读金币3
|
||||
}
|
||||
if (task.data.taskList[3].doneFlag == 0) {
|
||||
// await $.wait(2000)
|
||||
await qqreadvideo();//视频奖励
|
||||
if (task.data.user.amount >= 100000) {
|
||||
await qqreadwithdraw();
|
||||
}
|
||||
if (task.data.treasureBox.videoDoneFlag == 0) {
|
||||
// await $.wait(2000)
|
||||
await qqreadbox2();//宝箱翻倍
|
||||
}
|
||||
if (config.data.pageParams.todayReadSeconds / 3600 <= maxtime) {
|
||||
// await $.wait(2000)
|
||||
await qqreadtime();
|
||||
}
|
||||
|
||||
await qqreadwktime();//周时长查询
|
||||
await qqreadpick();//领周时长奖励
|
||||
await showmsg();//通知
|
||||
}
|
||||
}
|
||||
|
||||
//任务列表
|
||||
function showmsg() {
|
||||
$.msg(jsname, "", tz); // 宝箱每15次通知一次
|
||||
}
|
||||
//提现
|
||||
function qqreadwithdraw() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadwithdrawurl = {
|
||||
url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/withdraw?amount=100000",
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
$.post(toqqreadwithdrawurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 提现: ${data}`);
|
||||
let withdraw = JSON.parse(data);
|
||||
if (withdraw.data.code == 0)
|
||||
tz += `【现金提现】:成功提现10元\n`;
|
||||
kz += `【现金提现】:成功提现10元\n`;
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
// 任务列表
|
||||
function qqreadtask() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadtaskurl = {
|
||||
url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/page?fromGuid=',
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/page?fromGuid=",
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
|
||||
timeout: 60000,
|
||||
};
|
||||
$.get(toqqreadtaskurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 任务列表: ${data}`)
|
||||
task = JSON.parse(data)
|
||||
if (logs) $.log(`${jsname}, 任务列表: ${data}`);
|
||||
task = JSON.parse(data);
|
||||
kz +=
|
||||
`【现金余额】:${(task.data.user.amount / 10000).toFixed(2)}元\n` +
|
||||
`【已开宝箱】:${task.data.treasureBox.count}个\n`;
|
||||
|
||||
tz +=
|
||||
'【现金余额】:' +
|
||||
(task.data.user.amount / 10000).toFixed(2) +
|
||||
'元\n' +
|
||||
'【第' +
|
||||
task.data.invite.issue +
|
||||
'期】:时间' +
|
||||
task.data.invite.dayRange +
|
||||
'\n' +
|
||||
' 已邀请' +
|
||||
task.data.invite.inviteCount +
|
||||
'人,再邀请' +
|
||||
task.data.invite.nextInviteConfig.count +
|
||||
'人获得' +
|
||||
task.data.invite.nextInviteConfig.amount +
|
||||
'金币\n' +
|
||||
'【' +
|
||||
task.data.taskList[0].title +
|
||||
'】:' +
|
||||
task.data.taskList[0].amount +
|
||||
'金币,' +
|
||||
task.data.taskList[0].actionText +
|
||||
'\n' +
|
||||
'【' +
|
||||
task.data.taskList[1].title +
|
||||
'】:' +
|
||||
task.data.taskList[1].amount +
|
||||
'金币,' +
|
||||
task.data.taskList[1].actionText +
|
||||
'\n' +
|
||||
'【' +
|
||||
task.data.taskList[2].title +
|
||||
'】:' +
|
||||
task.data.taskList[2].amount +
|
||||
'金币,' +
|
||||
task.data.taskList[2].actionText +
|
||||
'\n' +
|
||||
'【' +
|
||||
task.data.taskList[3].title +
|
||||
'】:' +
|
||||
task.data.taskList[3].amount +
|
||||
'金币,' +
|
||||
task.data.taskList[3].actionText +
|
||||
'\n' +
|
||||
'【宝箱任务' +
|
||||
(task.data.treasureBox.count + 1) +
|
||||
'】:' +
|
||||
task.data.treasureBox.tipText +
|
||||
'\n' +
|
||||
'【' + task.data.fans.title +
|
||||
'】:' +
|
||||
task.data.fans.fansCount +
|
||||
'个好友,' +
|
||||
task.data.fans.todayAmount +
|
||||
'金币\n'
|
||||
`【现金余额】:${(task.data.user.amount / 10000).toFixed(2)}元\n` +
|
||||
`【第${task.data.invite.issue}期】:时间${task.data.invite.dayRange}\n` +
|
||||
` 已邀请${task.data.invite.inviteCount}人,再邀请${task.data.invite.nextInviteConfig.count}人获得${task.data.invite.nextInviteConfig.amount}金币\n` +
|
||||
`【${task.data.taskList[0].title}】:${task.data.taskList[0].amount}金币,${task.data.taskList[0].actionText}\n` +
|
||||
`【${task.data.taskList[1].title}】:${task.data.taskList[1].amount}金币,${task.data.taskList[1].actionText}\n` +
|
||||
`【${task.data.taskList[2].title}】:${task.data.taskList[2].amount}金币,${task.data.taskList[2].actionText}\n` +
|
||||
`【${task.data.taskList[3].title}】:${task.data.taskList[3].amount}金币,${task.data.taskList[3].actionText}\n` +
|
||||
`【宝箱任务${task.data.treasureBox.count + 1}】:${
|
||||
task.data.treasureBox.tipText
|
||||
}\n` +
|
||||
`【${task.data.fans.title}】:${task.data.fans.fansCount}个好友,${task.data.fans.todayAmount}金币\n`;
|
||||
|
||||
resolve()
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//用户名
|
||||
// 更新
|
||||
function qqreadtrack() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const body = qqreadbodyVal.replace(new RegExp(/"dis":[0-9]{13}/), `"dis":${new Date().getTime()}`)
|
||||
const toqqreadtrackurl = {
|
||||
url: "https://mqqapi.reader.qq.com/log/v4/mqq/track",
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
body: body,
|
||||
timeout: 60000,
|
||||
};
|
||||
$.post(toqqreadtrackurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 更新: ${data}`);
|
||||
let track = JSON.parse(data);
|
||||
tz += `【数据更新】:更新${track.msg}\n`;
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 用户名
|
||||
function qqreadinfo() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadinfourl = {
|
||||
url: qqreadurlVal,
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
url: "https://mqqapi.reader.qq.com/mqq/user/init",
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
$.get(toqqreadinfourl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 用户名: ${data}`)
|
||||
const info = JSON.parse(data)
|
||||
tz +=
|
||||
'【用户信息】:' + info.data.user.nickName + '\n'
|
||||
if (logs) $.log(`${jsname}, 用户名: ${data}`);
|
||||
let info = JSON.parse(data);
|
||||
kz += `\n========== 【${info.data.user.nickName}】 ==========\n`;
|
||||
tz += `\n========== 【${info.data.user.nickName}】 ==========\n`;
|
||||
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//阅豆签到
|
||||
// 阅豆签到
|
||||
function qqreadtake() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadtakeurl = {
|
||||
url: 'https://mqqapi.reader.qq.com/mqq/sign_in/user',
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
url: "https://mqqapi.reader.qq.com/mqq/sign_in/user",
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
$.post(toqqreadtakeurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 阅豆签到: ${data}`)
|
||||
let take = JSON.parse(data)
|
||||
if (logs) $.log(`${jsname}, 阅豆签到: ${data}`);
|
||||
let take = JSON.parse(data);
|
||||
if (take.data.takeTicket > 0) {
|
||||
tz +=
|
||||
'【阅豆签到】:获得' + take.data.takeTicket + '豆\n'
|
||||
tz += `【阅豆签到】:获得${take.data.takeTicket}豆\n`;
|
||||
}
|
||||
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//阅读时长任务
|
||||
// 阅读时长任务
|
||||
function qqreadconfig() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadconfigurl = {
|
||||
url: 'https://mqqapi.reader.qq.com/mqq/page/config?router=%2Fpages%2Fbook-read%2Findex&options=',
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
url:
|
||||
"https://mqqapi.reader.qq.com/mqq/page/config?router=%2Fpages%2Fbook-read%2Findex&options=",
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
};
|
||||
$.get(toqqreadconfigurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 阅读时长查询: ${data}`)
|
||||
config = JSON.parse(data)
|
||||
if (logs) $.log(`${jsname}, 阅读时长查询: ${data}`);
|
||||
config = JSON.parse(data);
|
||||
if (config.code == 0)
|
||||
tz += '【时长查询】:今日阅读' + (config.data.pageParams.todayReadSeconds / 60).toFixed(0) + '分钟\n'
|
||||
tz += `【时长查询】:今日阅读${(
|
||||
config.data.pageParams.todayReadSeconds / 60
|
||||
).toFixed(0)}分钟\n`;
|
||||
|
||||
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//阅读时长
|
||||
// 阅读时长
|
||||
function qqreadtime() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadtimeurl = {
|
||||
url: qqreadtimeurlVal.replace(/readTime=/g, `readTime=${TIME}`),
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
|
||||
};
|
||||
|
||||
$.get(toqqreadtimeurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, qqreadtime-阅读时长: ${data}`)
|
||||
let time = JSON.parse(data)
|
||||
if (time && time.code == 0) tz += '【阅读时长】:上传' + TIME / 6 + '分钟\n'
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
if (logs) $.log(`${jsname}, 阅读时长qqreadtime: ${data}`);
|
||||
let time = JSON.parse(data);
|
||||
if (time.code == 0) tz += `【阅读时长】:上传${TIME / 6}分钟\n`;
|
||||
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//阅读金币1
|
||||
// 阅读金币1
|
||||
function qqreadssr1() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadssr1url = {
|
||||
url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=30`,
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
if (config.data.pageParams.todayReadSeconds / 60 >= 1) {
|
||||
|
||||
if (config.data && config.data.pageParams.todayReadSeconds / 60 >= 1) {
|
||||
$.get(toqqreadssr1url, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 金币奖励1: ${data}`)
|
||||
let ssr1 = JSON.parse(data)
|
||||
if (logs) $.log(`${jsname}, 金币奖励1: ${data}`);
|
||||
let ssr1 = JSON.parse(data);
|
||||
if (ssr1.data.amount > 0)
|
||||
tz += '【阅读金币1】获得' + ssr1.data.amount + '金币\n'
|
||||
|
||||
|
||||
resolve()
|
||||
})
|
||||
tz += `【阅读金币1】获得${ssr1.data.amount}金币\n`;
|
||||
});
|
||||
}
|
||||
resolve()
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//阅读金币2
|
||||
// 阅读金币2
|
||||
function qqreadssr2() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadssr2url = {
|
||||
url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=300`,
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
if (config.data.pageParams.todayReadSeconds / 60 >= 5) {
|
||||
|
||||
if (config.data && config.data.pageParams.todayReadSeconds / 60 >= 5) {
|
||||
$.get(toqqreadssr2url, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 金币奖励2: ${data}`)
|
||||
ssr2 = JSON.parse(data)
|
||||
if (ssr2.code === 0) {
|
||||
if (ssr2.data.amount > 0) tz += '【阅读金币2】获得' + ssr2.data.amount + '金币\n'
|
||||
}
|
||||
resolve()
|
||||
})
|
||||
if (logs) $.log(`${jsname}, 金币奖励2: ${data}`);
|
||||
ssr2 = JSON.parse(data);
|
||||
if (ssr2.data.amount > 0)
|
||||
tz += `【阅读金币2】获得${ssr2.data.amount}金币\n`;
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
resolve()
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//阅读金币3
|
||||
// 阅读金币3
|
||||
function qqreadssr3() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadssr3url = {
|
||||
url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=1800`,
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
|
||||
if (config.data.pageParams.todayReadSeconds / 60 >= 30) {
|
||||
|
||||
if (config.data && config.data.pageParams.todayReadSeconds / 60 >= 30) {
|
||||
$.get(toqqreadssr3url, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 金币奖励3: ${data}`)
|
||||
let ssr3 = JSON.parse(data)
|
||||
if (ssr3.code === 0) {
|
||||
if (ssr3.data.amount > 0) tz += '【阅读金币3】获得' + ssr3.data.amount + '金币\n'
|
||||
}
|
||||
resolve()
|
||||
})
|
||||
if (logs) $.log(`${jsname}, 金币奖励3: ${data}`);
|
||||
let ssr3 = JSON.parse(data);
|
||||
if (ssr3.data.amount > 0)
|
||||
tz += `【阅读金币3】获得${ssr3.data.amount}金币\n`;
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
resolve()
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//金币签到
|
||||
// 金币签到
|
||||
function qqreadsign() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadsignurl = {
|
||||
url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in/page',
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in/page",
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
$.get(toqqreadsignurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 金币签到: ${data}`)
|
||||
let sign = JSON.parse(data)
|
||||
|
||||
if (logs) $.log(`${jsname}, 金币签到: ${data}`);
|
||||
sign = JSON.parse(data);
|
||||
if (sign.data.videoDoneFlag) {
|
||||
tz +=
|
||||
'【金币签到】:获得' + sign.data.todayAmount + '金币\n'
|
||||
tz += `【金币签到】:获得${sign.data.todayAmount}金币\n`;
|
||||
}
|
||||
|
||||
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//金币签到翻倍
|
||||
// 金币签到翻倍
|
||||
function qqreadsign2() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadsign2url = {
|
||||
url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in_video',
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in_video",
|
||||
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
$.get(toqqreadsign2url, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 金币签到翻倍: ${data}`)
|
||||
let sign2 = JSON.parse(data)
|
||||
|
||||
if (logs) $.log(`${jsname}, 金币签到翻倍: ${data}`);
|
||||
let sign2 = JSON.parse(data);
|
||||
if (sign2.code == 0) {
|
||||
tz +=
|
||||
'【签到翻倍】:获得' + sign2.data.amount + '金币\n'
|
||||
tz += `【签到翻倍】:获得${sign2.data.amount}金币\n`;
|
||||
}
|
||||
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//每日阅读
|
||||
// 每日阅读
|
||||
function qqreaddayread() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreaddayreadurl = {
|
||||
url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/read_book',
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/read_book",
|
||||
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
$.get(toqqreaddayreadurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 每日阅读: ${data}`)
|
||||
let dayread = JSON.parse(data)
|
||||
if (logs) $.log(`${jsname}, 每日阅读: ${data}`);
|
||||
let dayread = JSON.parse(data);
|
||||
if (dayread.code == 0) {
|
||||
tz +=
|
||||
'【每日阅读】:获得' + dayread.data.amount + '金币\n'
|
||||
|
||||
tz += `【每日阅读】:获得${dayread.data.amount}金币\n`;
|
||||
}
|
||||
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//视频奖励
|
||||
// 视频奖励
|
||||
function qqreadvideo() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadvideourl = {
|
||||
url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/watch_video',
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/watch_video",
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
$.get(toqqreadvideourl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 视频奖励: ${data}`)
|
||||
let video = JSON.parse(data)
|
||||
|
||||
if (logs) $.log(`${jsname}, 视频奖励: ${data}`);
|
||||
let video = JSON.parse(data);
|
||||
if (video.code == 0) {
|
||||
tz +=
|
||||
'【视频奖励】:获得' + video.data.amount + '金币\n'
|
||||
|
||||
tz += `【视频奖励】:获得${video.data.amount}金币\n`;
|
||||
}
|
||||
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//宝箱奖励
|
||||
// 宝箱奖励
|
||||
function qqreadbox() {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
const toqqreadboxurl = {
|
||||
url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box',
|
||||
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box",
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
$.get(toqqreadboxurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 宝箱奖励: ${data}`)
|
||||
const box = JSON.parse(data)
|
||||
|
||||
if (logs) $.log(`${jsname}, 宝箱奖励: ${data}`);
|
||||
let box = JSON.parse(data);
|
||||
if (box.data.count >= 0) {
|
||||
tz +=
|
||||
'【宝箱奖励' + box.data.count + '】:获得' + box.data.amount + '金币\n'
|
||||
|
||||
tz += `【宝箱奖励${box.data.count}】:获得${box.data.amount}金币\n`;
|
||||
}
|
||||
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//宝箱奖励翻倍
|
||||
// 宝箱奖励翻倍
|
||||
function qqreadbox2() {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
const toqqreadbox2url = {
|
||||
url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box_video',
|
||||
url:
|
||||
"https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box_video",
|
||||
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
$.get(toqqreadbox2url, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 宝箱奖励翻倍: ${data}`)
|
||||
let box2 = JSON.parse(data)
|
||||
|
||||
if (logs) $.log(`${jsname}, 宝箱奖励翻倍: ${data}`);
|
||||
let box2 = JSON.parse(data);
|
||||
if (box2.code == 0) {
|
||||
tz +=
|
||||
'【宝箱翻倍】:获得' + box2.data.amount + '金币\n'
|
||||
tz += `【宝箱翻倍】:获得${box2.data.amount}金币\n`;
|
||||
}
|
||||
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//本周阅读时长
|
||||
// 本周阅读时长
|
||||
function qqreadwktime() {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
const toqqreadwktimeurl = {
|
||||
|
||||
url: `https://mqqapi.reader.qq.com/mqq/v1/bookShelfInit`,
|
||||
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
};
|
||||
|
||||
$.get(toqqreadwktimeurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, qqreadwktime 阅读时长: ${data}`)
|
||||
wktime = JSON.parse(data)
|
||||
if (wktime.code == 0) tz += '【本周阅读时长】:' + wktime.data.readTime + '分钟\n'
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
if (logs) $.log(`${jsname}, 阅读时长: ${data}`);
|
||||
wktime = JSON.parse(data);
|
||||
if (wktime.code == 0)
|
||||
tz += `【本周阅读时长】:${wktime.data.readTime}分钟\n`;
|
||||
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//本周阅读时长奖励任务
|
||||
// 本周阅读时长奖励任务
|
||||
function qqreadpick() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const toqqreadpickurl = {
|
||||
url: `https://mqqapi.reader.qq.com/mqq/pickPackageInit`,
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
};
|
||||
|
||||
if (wktime.data.readTime >= wktimess) {
|
||||
if (wktime.data.readTime >= wktimess && wktime.data.readTime <= 1250) {
|
||||
$.get(toqqreadpickurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname},周阅读时长奖励任务: ${data}`)
|
||||
let pick = JSON.parse(data)
|
||||
if (pick.data[7].isPick == true)
|
||||
tz += '【周时长奖励】:已全部领取\n'
|
||||
if (logs) $.log(`${jsname},周阅读时长奖励任务: ${data}`);
|
||||
let pick = JSON.parse(data);
|
||||
if (pick.data[7].isPick == true) tz += "【周时长奖励】:已全部领取\n";
|
||||
|
||||
for (let i = 0; i < pick.data.length; i++) {
|
||||
setTimeout(() => {
|
||||
var pickid = pick.data[i].readTime
|
||||
var Packageid = ['10', '10', '20', '30', '50', '80', '100', '120']
|
||||
const pickid = pick.data[i].readTime;
|
||||
const Packageid = [
|
||||
"10",
|
||||
"10",
|
||||
"20",
|
||||
"30",
|
||||
"50",
|
||||
"80",
|
||||
"100",
|
||||
"120",
|
||||
];
|
||||
const toqqreadPackageurl = {
|
||||
url: `https://mqqapi.reader.qq.com/mqq/pickPackage?readTime=${pickid}`,
|
||||
headers: JSON.parse(qqreadheaderVal),
|
||||
timeout: 60000
|
||||
headers: JSON.parse(qqreadtimeheaderVal),
|
||||
timeout: 60000,
|
||||
};
|
||||
$.get(toqqreadPackageurl, (error, response, data) => {
|
||||
if (logs) $.log(`${jsname}, 领周阅读时长: ${data}`)
|
||||
let Package = JSON.parse(data)
|
||||
if (logs) $.log(`${jsname}, 领周阅读时长: ${data}`);
|
||||
Package = JSON.parse(data);
|
||||
if (Package.code == 0)
|
||||
tz += '【周时长奖励' + (i + 1) + '】:领取' + Packageid[i] + '阅豆\n'
|
||||
})
|
||||
|
||||
}, i * 100)
|
||||
tz += `【周时长奖励${i + 1}】:领取${Packageid[i]}阅豆\n`;
|
||||
});
|
||||
}, i * 100);
|
||||
}
|
||||
|
||||
})
|
||||
resolve()
|
||||
});
|
||||
resolve();
|
||||
}
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function showmsg() {
|
||||
return new Promise(async resolve => {
|
||||
console.log(tz)
|
||||
|
||||
if (notifyInterval == 1)
|
||||
$.msg(jsname, '', tz)//显示所有通知
|
||||
|
||||
else if (notifyInterval == 2 && task.data.treasureBox.doneFlag == 0)
|
||||
$.msg(jsname, '', tz)//宝箱领取成功通知
|
||||
|
||||
else if (notifyInterval == 3 && task.data.treasureBox.count == 0 || task.data.treasureBox.count == 15 || task.data.treasureBox.count == 30 || task.data.treasureBox.count == 45 || task.data.treasureBox.count == 60)
|
||||
$.msg(jsname, '', tz)//宝箱每15次通知一次
|
||||
resolve()
|
||||
})
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
@@ -17,7 +17,11 @@
|
||||
# 直播红包雨(2020.12.12活动过期)
|
||||
0 0,9,11,13,15,17,19,20,21,23 * * * node /scripts/jd_live_redrain.js >> /scripts/logs/jd_live_redrain.log 2>&1
|
||||
# 数码加购京豆(2020.12.11活动过期)
|
||||
8 0 * * * node /scripts/jd_digital_floor.js >> /scripts/logs/jd_digital_floor.log 2>&1
|
||||
8 0 * * * node /scripts/jd_digital_floor.js >> /scripts/logs/jd_digital_floor.log 2>&1
|
||||
# jd_apple_live
|
||||
8 0,20 * * * node /scripts/jd_apple_live.js >> /scripts/logs/jd_apple_live.log 2>&1
|
||||
# jd_pubg
|
||||
8 1,20 * * * node /scripts/jd_pubg.js >> /scripts/logs/jd_pubg.log 2>&1
|
||||
##############长期活动##############
|
||||
|
||||
# 签到
|
||||
|
@@ -18,6 +18,10 @@
|
||||
0 0,9,11,13,15,17,19,20,21,23 * * * node /scripts/jd_live_redrain.js |ts >> /scripts/logs/jd_live_redrain.log 2>&1
|
||||
# 数码加购京豆(2020.12.11活动过期)
|
||||
8 0 * * * node /scripts/jd_digital_floor.js |ts >> /scripts/logs/jd_digital_floor.log 2>&1
|
||||
# jd_apple_live
|
||||
8 0,20 * * * node /scripts/jd_apple_live.js |ts >> /scripts/logs/jd_apple_live.log 2>&1
|
||||
# jd_pubg
|
||||
8 1,20 * * * node /scripts/jd_pubg.js |ts >> /scripts/logs/jd_pubg.log 2>&1
|
||||
##############长期活动##############
|
||||
|
||||
# 签到
|
||||
|
@@ -4,12 +4,12 @@
|
||||
支持京东N个账号
|
||||
*/
|
||||
//云服务器腾讯云函数等NOde.js用户在此处填写东东萌宠的好友码。
|
||||
// github action用户的好友互助码填写到Action->Settings->Secrets->new Secret里面(Name填写 PLANT_BEAN_SHARECODES(此处的Name必须按此来写,不能随意更改),内容处填写互助码,填写规则如下)
|
||||
// github action用户的好友互助码填写到Action->Settings->Secrets->new Secret里面(Name填写 DREAM_FACTORY_SHARE_CODES(此处的Name必须按此来写,不能随意更改),内容处填写互助码,填写规则如下)
|
||||
// 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例
|
||||
// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
||||
let shareCodes = [
|
||||
'V5LkjP4WRyjeCKR9VRwcRX0bBuTz7MEK0-E99EJ7u0k=@Bo-jnVs_m9uBvbRzraXcSA==',//账号一的好友shareCode,不同好友中间用@符号隔开
|
||||
'1uzRU5HkaUgvy0AB5Q9VUg==@PDPM257r_KuQhil2Y7koNw==',//账号二的好友shareCode,不同好友中间用@符号隔开
|
||||
'V5LkjP4WRyjeCKR9VRwcRX0bBuTz7MEK0-E99EJ7u0k=@Bo-jnVs_m9uBvbRzraXcSA==@-OvElMzqeyeGBWazWYjI1Q==',//账号一的好友shareCode,不同好友中间用@符号隔开
|
||||
'1uzRU5HkaUgvy0AB5Q9VUg==@PDPM257r_KuQhil2Y7koNw==@-OvElMzqeyeGBWazWYjI1Q==',//账号二的好友shareCode,不同好友中间用@符号隔开
|
||||
]
|
||||
// 判断github action里面是否有东东萌宠互助码
|
||||
if (process.env.DREAM_FACTORY_SHARE_CODES) {
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
苹果抽奖机
|
||||
脚本会给内置的码进行助力
|
||||
活动于2020-12-14日结束
|
||||
活动地址:https://h5.m.jd.com/babelDiy/Zeus/2zwQnu4WHRNfqMSdv69UPgpZMnE2/index.html/
|
||||
已支持IOS双京东账号,Node.js支持N个京东账号
|
||||
@@ -37,7 +38,7 @@ if ($.isNode()) {
|
||||
cookiesArr.push(...[$.getdata('CookieJD'), $.getdata('CookieJD2')]);
|
||||
}
|
||||
const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
||||
const inviteCodes = [`P04z54XCjVUm4aW5nJcXCCyoR8C6s-kRmWs@P04z54XCjVUm4aW5m9cZ2bx3y5Ow`, `P04z54XCjVUm4aW5nJcXCCyoR8C6s-kRmWs@P04z54XCjVUm4aW5m9cZ2bx3y5Ow`];
|
||||
const inviteCodes = [`P04z54XCjVUm4aW5nJcXCCyoR8C6s-kRmWs@P04z54XCjVUm4aW5m9cZ2bx3y5Ow@P04z54XCjVUm4aW5u2ak7ZCdan1BeYMuZ9HwF34gJjW@P04z54XCjVUm4aW5m9cZ2T6jChKkkjZEdhiKUY`, `P04z54XCjVUm4aW5nJcXCCyoR8C6s-kRmWs@P04z54XCjVUm4aW5m9cZ2bx3y5Ow`];
|
||||
!(async () => {
|
||||
await requireConfig();
|
||||
if (!cookiesArr[0]) {
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
数码加购京豆
|
||||
脚本会给内置的码进行助力
|
||||
共计25京豆,一天运行一次即可
|
||||
活动时间:2020-12-4 到 2020-12-11
|
||||
活动入口:https://prodev.m.jd.com/mall/active/nKxVyPnuLwAsQSTfidZ9z4RKVZy/index.html#/
|
||||
|
@@ -34,7 +34,7 @@ const randomCount = $.isNode() ? 20 : 5;
|
||||
const tuanActiveId = `gaVXW_NJ0KPEA2LyUhoXzA==`;
|
||||
const jxOpenUrl = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://wqsd.jd.com/pingou/dream_factory/index.html%22%20%7D`;
|
||||
let cookiesArr = [], cookie = '', message = '';
|
||||
const inviteCodes = ['V5LkjP4WRyjeCKR9VRwcRX0bBuTz7MEK0-E99EJ7u0k=', 'PDPM257r_KuQhil2Y7koNw==', "gB99tYLjvPcEFloDgamoBw=="];
|
||||
const inviteCodes = ['V5LkjP4WRyjeCKR9VRwcRX0bBuTz7MEK0-E99EJ7u0k=', 'PDPM257r_KuQhil2Y7koNw==', "gB99tYLjvPcEFloDgamoBw==", '-OvElMzqeyeGBWazWYjI1Q=='];
|
||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||
if ($.isNode()) {
|
||||
Object.keys(jdCookieNode).forEach((item) => {
|
||||
@@ -542,6 +542,8 @@ function userInfo() {
|
||||
console.log(`当前电力:${data.user.electric}`)
|
||||
console.log(`当前等级:${data.user.currentLevel}`)
|
||||
console.log(`分享码: ${data.user.encryptPin}`);
|
||||
console.log(`已投入电力:${production.investedElectric}`);
|
||||
console.log(`所需电力:${production.needElectric}`);
|
||||
console.log(`生产进度:${((production.investedElectric / production.needElectric) * 100).toFixed(2)}%`);
|
||||
message += `【京东账号${$.index}】${$.nickName}\n`
|
||||
message += `【生产商品】${$.productName}\n`;
|
||||
@@ -1008,6 +1010,7 @@ function CreateTuan() {
|
||||
async function joinLeaderTuan() {
|
||||
await updateTuanIds();
|
||||
if (!$.tuanIdS) await updateTuanIdsCDN();
|
||||
if (!$.tuanIdS) await updateTuanIdsCDN('https://cdn.jsdelivr.net/gh/lxk0301/updateTeam@master/jd_updateFactoryTuanId.json');
|
||||
for (let tuanId of $.tuanIdS.tuanIds) {
|
||||
if (!tuanId) continue
|
||||
await JoinTuan(tuanId);
|
||||
@@ -1182,7 +1185,7 @@ function updateTuanIds(url = 'https://raw.githubusercontent.com/lxk0301/updateTe
|
||||
})
|
||||
}
|
||||
function updateTuanIdsCDN(url = 'https://raw.fastgit.org/lxk0301/updateTeam/master/jd_updateFactoryTuanId.json') {
|
||||
return new Promise(resolve => {
|
||||
return new Promise(async resolve => {
|
||||
$.get({url}, (err, resp, data) => {
|
||||
try {
|
||||
if (err) {
|
||||
@@ -1196,6 +1199,8 @@ function updateTuanIdsCDN(url = 'https://raw.fastgit.org/lxk0301/updateTeam/mast
|
||||
resolve();
|
||||
}
|
||||
})
|
||||
await $.wait(3000)
|
||||
resolve();
|
||||
})
|
||||
}
|
||||
function checkExchange() {
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
健康抽奖机 ,活动于2020-12-31日结束
|
||||
脚本会给内置的码进行助力
|
||||
活动地址:https://h5.m.jd.com/babelDiy/Zeus/3HBUP66Gnx92mRt2bXbT9VamYWSx/index.html
|
||||
已支持IOS双京东账号,Node.js支持N个京东账号
|
||||
脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js
|
||||
|
52
jd_joy.js
52
jd_joy.js
@@ -131,12 +131,12 @@ async function joinTwoPeopleRun() {
|
||||
joyRunFlag = process.env.JOY_RUN_FLAG;
|
||||
}
|
||||
if (`${joyRunFlag}` === 'true') {
|
||||
console.log(`\n===========以下是双人赛跑信息========\n`)
|
||||
teamLevel = $.isNode() ? (process.env.JOY_TEAM_LEVEL ? process.env.JOY_TEAM_LEVEL : teamLevel) : ($.getdata('JOY_TEAM_LEVEL') ? $.getdata('JOY_TEAM_LEVEL') : teamLevel);
|
||||
console.log(`\n===========以下是${teamLevel}人赛跑信息========\n`)
|
||||
await getPetRace();
|
||||
if ($.petRaceResult) {
|
||||
teamLevel = $.isNode() ? (process.env.JOY_TEAM_LEVEL ? process.env.JOY_TEAM_LEVEL : teamLevel) : ($.getdata('JOY_TEAM_LEVEL') ? $.getdata('JOY_TEAM_LEVEL') : teamLevel);
|
||||
let petRaceResult = $.petRaceResult.data.petRaceResult;
|
||||
let raceUsers = $.petRaceResult.data.raceUsers;
|
||||
// let raceUsers = $.petRaceResult.data.raceUsers;
|
||||
console.log(`赛跑状态:${petRaceResult}\n`);
|
||||
if (petRaceResult === 'not_participate') {
|
||||
console.log(`暂未参赛,现在为您参加${teamLevel}人赛跑`);
|
||||
@@ -146,7 +146,8 @@ async function joinTwoPeopleRun() {
|
||||
message += `${teamLevel}人赛跑:成功参加\n`;
|
||||
await getPetRace();
|
||||
petRaceResult = $.petRaceResult.data.petRaceResult;
|
||||
raceUsers = $.petRaceResult.data.raceUsers;
|
||||
await getRankList();
|
||||
// raceUsers = $.petRaceResult.data.raceUsers;
|
||||
// console.log(`参赛后的状态:${petRaceResult}`)
|
||||
console.log(`双人赛跑助力请自己手动去邀请好友,脚本不带赛跑助力功能\n`);
|
||||
}
|
||||
@@ -172,25 +173,26 @@ async function joinTwoPeopleRun() {
|
||||
}
|
||||
}
|
||||
if (petRaceResult === 'participate') {
|
||||
if(raceUsers) {
|
||||
for (let index =0; index < raceUsers.length; index++) {
|
||||
if (raceUsers[index].myself) {
|
||||
console.log(`您当前里程:${raceUsers[index].distance}KM\n`);
|
||||
message += `您当前里程:${raceUsers[index].distance}km\n`;
|
||||
await getRankList();
|
||||
if($.raceUsers && $.raceUsers.length > 0) {
|
||||
for (let index = 0; index < $.raceUsers.length; index++) {
|
||||
if (index === 0) {
|
||||
console.log(`您当前里程:${$.raceUsers[index].distance}KM\n当前排名:第${$.raceUsers[index].rank}名\n将获得积分:${$.raceUsers[index].coin}\n`);
|
||||
// message += `您当前里程:${$.raceUsers[index].distance}km\n`;
|
||||
} else {
|
||||
console.log(`对手当前里程:${raceUsers[index].distance}KM\n`);
|
||||
message += `对手当前里程:${raceUsers[index].distance}km\n`;
|
||||
console.log(`对手当前里程:${$.raceUsers[index].distance}KM`);
|
||||
// message += `对手当前里程:${$.raceUsers[index].distance}km\n`;
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log('今日已参赛,下面显示应援团信息\n');
|
||||
console.log('\n今日已参赛,下面显示应援团信息');
|
||||
await getBackupInfo();
|
||||
if ($.getBackupInfoResult.success) {
|
||||
const { currentNickName, totalMembers, totalDistance, backupList } = $.getBackupInfoResult.data;
|
||||
console.log(`${currentNickName}的应援团信息如下\n团员:${totalMembers}个\n团员助力的里程数:${totalDistance}\n`);
|
||||
if (backupList && backupList.length > 0) {
|
||||
for (let item of backupList) {
|
||||
console.log(`${item.nickName}为您助力${item.distance}km\n`);
|
||||
console.log(`${item.nickName}为您助力${item.distance}km`);
|
||||
}
|
||||
} else {
|
||||
console.log(`暂无好友为您助力赛跑,如需助力,请手动去邀请好友助力\n`);
|
||||
@@ -610,6 +612,30 @@ function getPetRace() {
|
||||
})
|
||||
})
|
||||
}
|
||||
//查询赛跑排行榜
|
||||
function getRankList() {
|
||||
return new Promise(resolve => {
|
||||
const url = `${JD_API_HOST}/combat/getRankList`;
|
||||
$.raceUsers = [];
|
||||
$.get(taskUrl(url, `jdjoy.jd.com`, 'h5'), (err, resp, data) => {
|
||||
try {
|
||||
if (err) {
|
||||
console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️')
|
||||
} else {
|
||||
// console.log('查询赛跑信息API',(data))
|
||||
data = JSON.parse(data);
|
||||
if (data.success) {
|
||||
$.raceUsers = data.datas;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
$.logErr(e, resp);
|
||||
} finally {
|
||||
resolve();
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
//参加赛跑API
|
||||
function runMatch(teamLevel, timeout = 5000) {
|
||||
if (teamLevel === 10 || teamLevel === 50) timeout = 60000;
|
||||
|
File diff suppressed because one or more lines are too long
@@ -29,6 +29,7 @@ async function main() {
|
||||
if ($.body) {
|
||||
eval($.body);
|
||||
}
|
||||
$.done()
|
||||
}
|
||||
function updateShareCodes(url = 'https://raw.githubusercontent.com/yangtingxiao/QuantumultX/master/scripts/jd/jd_lotteryMachine.js') {
|
||||
return new Promise(resolve => {
|
||||
@@ -48,7 +49,7 @@ function updateShareCodes(url = 'https://raw.githubusercontent.com/yangtingxiao/
|
||||
})
|
||||
}
|
||||
function updateShareCodesCDN(url = 'https://raw.fastgit.org/yangtingxiao/QuantumultX/master/scripts/jd/jd_lotteryMachine.js') {
|
||||
return new Promise(resolve => {
|
||||
return new Promise(async resolve => {
|
||||
$.get({url}, async (err, resp, data) => {
|
||||
try {
|
||||
if (err) {
|
||||
@@ -63,6 +64,8 @@ function updateShareCodesCDN(url = 'https://raw.fastgit.org/yangtingxiao/Quantum
|
||||
resolve();
|
||||
}
|
||||
})
|
||||
await $.wait(3000)
|
||||
resolve();
|
||||
})
|
||||
}
|
||||
|
||||
|
13
jd_pubg.js
13
jd_pubg.js
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
PUBG
|
||||
PUBG ,运行时间会比较久,Surge请加大timeout时间
|
||||
脚本会给内置的码进行助力
|
||||
活动于2020-12-13日结束
|
||||
活动地址:https://starsingle.m.jd.com/static/index.html#/?fromChangeSkinNum=PUBG
|
||||
已支持IOS双京东账号,Node.js支持N个京东账号
|
||||
@@ -133,7 +134,7 @@ if ($.isNode()) {
|
||||
cookiesArr.push(...[$.getdata('CookieJD'), $.getdata('CookieJD2')]);
|
||||
}
|
||||
const JD_API_HOST = 'https://starsingle.m.jd.com/guardianstar/';
|
||||
const inviteCodes = ['65561ad5-af72-4d1c-a5be-37b3de372b67@2d5f579d-e6d1-479e-931f-c275d602caf5','65561ad5-af72-4d1c-a5be-37b3de372b67@2d5f579d-e6d1-479e-931f-c275d602caf5']
|
||||
const inviteCodes = ['65561ad5-af72-4d1c-a5be-37b3de372b67@2d5f579d-e6d1-479e-931f-c275d602caf5@a3551e1d-fb07-40f0-b9ad-d50e4b480098@696cfa20-3719-442a-a331-0e07beaeb375@718868ed-2202-465d-b3a4-54e76b30d02a','65561ad5-af72-4d1c-a5be-37b3de372b67@2d5f579d-e6d1-479e-931f-c275d602caf5']
|
||||
!(async () => {
|
||||
await requireConfig();
|
||||
if (!cookiesArr[0]) {
|
||||
@@ -207,7 +208,7 @@ function taskList(get=1) {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
let vo = data.data[0]
|
||||
console.log(`您的${$.name}好友助力码为:${vo.shareId}`)
|
||||
if (vo.shareId) console.log(`您的${$.name}好友助力码为:${vo.shareId}`)
|
||||
for (let i = 0; i< vo.venueList.length;++i){
|
||||
let venue = vo.venueList[i]
|
||||
if(venue.venueStatus === 1) {
|
||||
@@ -233,7 +234,7 @@ function taskList(get=1) {
|
||||
}
|
||||
for (let i = 0; i< vo.shopList.length;++i){
|
||||
let shop = vo.shopList[i]
|
||||
if(shop.shopStatus === 0) {
|
||||
if(shop.shopStatus === 0 || shop.shopStatus === 1) {
|
||||
console.log(`【关注店铺】去关注店铺 ${shop.shopName}`)
|
||||
await doTask(`starId=PUBG&type=shop&id=${shop.shopId}&status=1`)
|
||||
await $.wait(10000)
|
||||
@@ -413,7 +414,7 @@ function taskUrl(function_id, body = {}) {
|
||||
'cache-control': 'no-cache',
|
||||
"origin": "https://starsingle.m.jd.com",
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'dnt': 1,
|
||||
'dnt': '1',
|
||||
'pragma': 'no-cache',
|
||||
'referer': 'https://starsingle.m.jd.com/static/index.html',
|
||||
'timestamp': `${t}`,
|
||||
@@ -436,7 +437,7 @@ function taskPostUrl(body = "{}", functionId = 'doTask') {
|
||||
'cache-control': 'no-cache',
|
||||
"origin": "https://starsingle.m.jd.com",
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'dnt': 1,
|
||||
'dnt': '1',
|
||||
'pragma': 'no-cache',
|
||||
'referer': 'https://starsingle.m.jd.com/static/index.html',
|
||||
'timestamp': `${t}`,
|
||||
|
@@ -158,6 +158,7 @@ async function doChannelsListTask(taskId, taskType) {
|
||||
async function helpFriends() {
|
||||
await updateInviteCode();
|
||||
if (!$.inviteCodes) await updateInviteCodeCDN();
|
||||
if (!$.inviteCodes) await updateInviteCodeCDN('https://cdn.jsdelivr.net/gh/lxk0301/updateTeam@master/jd_updateSmallHomeInviteCode.json');
|
||||
for (let item of $.inviteCodes.inviteCode) {
|
||||
if (!item) continue
|
||||
await createAssistUser(item, $.createAssistUserID || "1318106976846299138");
|
||||
@@ -711,7 +712,7 @@ function updateInviteCode(url = 'https://raw.githubusercontent.com/lxk0301/updat
|
||||
})
|
||||
}
|
||||
function updateInviteCodeCDN(url = 'https://raw.fastgit.org/lxk0301/updateTeam/master/jd_updateSmallHomeInviteCode.json') {
|
||||
return new Promise(resolve => {
|
||||
return new Promise(async resolve => {
|
||||
$.get({url}, async (err, resp, data) => {
|
||||
try {
|
||||
if (err) {
|
||||
@@ -726,6 +727,8 @@ function updateInviteCodeCDN(url = 'https://raw.fastgit.org/lxk0301/updateTeam/m
|
||||
resolve();
|
||||
}
|
||||
})
|
||||
await $.wait(3000)
|
||||
resolve();
|
||||
})
|
||||
}
|
||||
function taskUrl(url, body = {}) {
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
金榜年终奖
|
||||
脚本会给内置的码进行助力
|
||||
活动时间:2020-12-12日结束
|
||||
活动入口:京东APP首页右边浮动飘窗
|
||||
已支持IOS双京东账号,Node.js支持N个京东账号
|
||||
|
@@ -43,7 +43,7 @@ inputs:
|
||||
- timer: # 宠汪汪积分兑换奖品# 宠汪汪偷好友积分与狗# 点点券
|
||||
parameters:
|
||||
name: jd_joy_reward_jd_joy_steal_jd_necklace
|
||||
cronExpression: "0 0 0-16/8 * * * *"
|
||||
cronExpression: "0 0 0-16/8,20 * * * *"
|
||||
enable: true
|
||||
argument: jd_joy_reward&jd_joy_steal&jd_necklace
|
||||
- timer: # 京东全民开红包 # 进店领豆 # 取关京东店铺商品# 京东抽奖机# 东东小窝# 秒杀红包雨# 健康抽奖机
|
||||
|
Reference in New Issue
Block a user