This commit is contained in:
Faker 2022-04-19 20:10:27 +08:00
commit 880108aa91
36 changed files with 2683 additions and 6185 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -97,5 +97,5 @@ let envName = process.env.ShareCodeEnvName
if (nameConfig && envName) { if (nameConfig && envName) {
SetShareCodesEnv(nameConfig, envName) SetShareCodesEnv(nameConfig, envName)
} else { } else {
console.debug(`OKYYDS 友情提示:您的脚本正常运行中`) console.debug(`faker 友情提示:您的脚本正常运行中`)
} }

View File

@ -69,11 +69,10 @@ if (UidFileexists) {
var tempptpin = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); var tempptpin = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
var intSeq = inArray(tempptpin, arrEnvPtPin); var intSeq = inArray(tempptpin, arrEnvPtPin);
if (intSeq != -1) { if (intSeq != -1) {
intSeq += 1;
arrCkPtPin.push(tempptpin); arrCkPtPin.push(tempptpin);
strCk += "【"+intSeq + "】" + tempptpin ; strCk += "【"+(intSeq+1) + "】" + tempptpin ;
if (arrEnvOnebyOne[i]) { if (arrEnvOnebyOne[intSeq]) {
strCk += "(账号已启用一对一推送)" strCk += "(已启用一对一推送)"
} }
strCk +="\n"; strCk +="\n";
} }
@ -86,14 +85,14 @@ if (UidFileexists) {
if (intSeq == -1) { if (intSeq == -1) {
strNoFoundCk += "【" + (i + 1) + "】" + tempptpin; strNoFoundCk += "【" + (i + 1) + "】" + tempptpin;
if (arrEnvStatus[i] == 1) { if (arrEnvStatus[i] == 1) {
strNoFoundCk += "(状态已禁用)" strNoFoundCk += "(已禁用)"
if ($.isNode() && WP_APP_TOKEN_ONE) { if ($.isNode() && WP_APP_TOKEN_ONE) {
await notify.sendNotifybyWxPucher("账号下线通知", strNotify, tempptpin); await notify.sendNotifybyWxPucher("账号下线通知", strNotify, tempptpin);
await $.wait(1000); await $.wait(1000);
} }
} }
if (arrEnvOnebyOne[i]) { if (arrEnvOnebyOne[i]) {
strNoFoundCk += "(账号已启用一对一推送)" strNoFoundCk += "(已启用一对一推送)"
} }
strNoFoundCk += "\n"; strNoFoundCk += "\n";
@ -118,7 +117,7 @@ if (UidFileexists) {
function inArray(search, array) { function inArray(search, array) {
var lnSeq = -1; var lnSeq = -1;
for (var i in array) { for (let i = 0; i < array.length; i++) {
if (array[i] == search) { if (array[i] == search) {
lnSeq = i; lnSeq = i;
} }
@ -126,6 +125,7 @@ function inArray(search, array) {
return parseInt(lnSeq); return parseInt(lnSeq);
} }
function getuuid(strRemark, PtPin) { function getuuid(strRemark, PtPin) {
var strTempuuid = ""; var strTempuuid = "";
if (strRemark) { if (strRemark) {

View File

@ -1,3 +1,12 @@
/*
* 详细版京东京豆统计
* 默认不发送通知
[task_local]
#京豆详情统计
20 22 * * * jd_bean_info.js, tag=京豆详情统计, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true
* */
const $ = new Env('京豆详情统计'); const $ = new Env('京豆详情统计');
const notify = $.isNode() ? require('./sendNotify') : ''; const notify = $.isNode() ? require('./sendNotify') : '';
//Node.js用户请在jdCookie.js处填写京东ck; //Node.js用户请在jdCookie.js处填写京东ck;
@ -20,6 +29,7 @@ if ($.isNode()) {
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
return; return;
} }
console.log(`\n正在查询今天所有账号的京豆收入......`);
for (let i = 0; i < cookiesArr.length; i++) { for (let i = 0; i < cookiesArr.length; i++) {
if (cookiesArr[i]) { if (cookiesArr[i]) {
cookie = cookiesArr[i]; cookie = cookiesArr[i];
@ -36,7 +46,7 @@ if ($.isNode()) {
$.balance = 0; $.balance = 0;
$.expiredBalance = 0; $.expiredBalance = 0;
await TotalBean(); await TotalBean();
console.log(`\n********开始【京东账号${$.index}${$.nickName || $.UserName}******\n`); //console.log(`\n********开始【京东账号${$.index}】${$.nickName || $.UserName}******\n`);
if (!$.isLogin) { if (!$.isLogin) {
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
@ -51,8 +61,9 @@ if ($.isNode()) {
} }
} }
allMessage += `\n今日全部账号收入:${allBean}个京豆 🐶\n` allMessage += `\n今日全部账号收入:${allBean}个京豆 🐶\n`
console.log(`${allMessage}`)
if ($.isNode() && allMessage) { if ($.isNode() && allMessage) {
await notify.sendNotify(`${$.name}`, `${allMessage}`, { url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` }) //await notify.sendNotify(`${$.name}`, `${allMessage}`, { url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` })
} }
})() })()
.catch((e) => { .catch((e) => {
@ -64,7 +75,7 @@ if ($.isNode()) {
async function showMsg() { async function showMsg() {
if ($.errorMsg) return if ($.errorMsg) return
allMessage += `\n【账号${$.index}${$.nickName || $.UserName} 京豆详情统计】\n\n`; allMessage += `\n【账号${$.index}${$.nickName || $.UserName} 京豆详情统计】\n\n`;
allMessage += `今日收入${$.todayIncomeBean}京豆 🐶\n` allMessage += `今日收入总计${$.todayIncomeBean}京豆 🐶\n`
allBean = allBean + parseInt($.todayIncomeBean) allBean = allBean + parseInt($.todayIncomeBean)
for (let key of myMap.keys()) { for (let key of myMap.keys()) {
allMessage += key + ' ---> ' +myMap.get(key)+'京豆 🐶\n' allMessage += key + ' ---> ' +myMap.get(key)+'京豆 🐶\n'

33
jd_captian_flp.js Executable file

File diff suppressed because one or more lines are too long

33
jd_captian_mn.js Executable file

File diff suppressed because one or more lines are too long

33
jd_captian_xay.js Executable file

File diff suppressed because one or more lines are too long

View File

@ -20,7 +20,7 @@ d、 30000名之外0京豆
cron "1 0,6,12,18 * * *" script-path=jd_carnivalcity.js, tag=京东手机狂欢城 cron "1 0,6,12,18 * * *" script-path=jd_carnivalcity.js, tag=京东手机狂欢城
====================Surge================ ====================Surge================
京东手机狂欢城 = type=cron,cronexp=1 0,6,12,18 * * *,wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_carnivalcity.js 京东手机狂欢城 = type=cron,cronexp=1 0,6,12,18 * * *,wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_carnivalcity.js
============小火箭========= ============小火箭=========
京东手机狂欢城 = type=cron,script-path=jd_carnivalcity.js, cronexpr="1 0,6,12,18 * * *", timeout=3600, enable=true 京东手机狂欢城 = type=cron,script-path=jd_carnivalcity.js, cronexpr="1 0,6,12,18 * * *", timeout=3600, enable=true

View File

@ -5,14 +5,14 @@
============Quantumultx=============== ============Quantumultx===============
[task_local] [task_local]
#财富岛兑换红包 #财富岛兑换红包
50 * * * * https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd.hb.js, tag=财富岛兑换红包, enabled=true 50 * * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd.hb.js, tag=财富岛兑换红包, enabled=true
===========Loon============ ===========Loon============
[Script] [Script]
cron "50 * * * *" script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd.hb.js,tag=财富岛兑换红包 cron "50 * * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd.hb.js,tag=财富岛兑换红包
============Surge============= ============Surge=============
财富岛兑换红包 = type=cron,cronexp="50 * * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd.hb.js 财富岛兑换红包 = type=cron,cronexp="50 * * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd.hb.js
===========小火箭======== ===========小火箭========
财富岛兑换红包 = type=cron,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd.hb.jss, cronexpr="50 * * * *", timeout=3600, enable=true 财富岛兑换红包 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd.hb.jss, cronexpr="50 * * * *", timeout=3600, enable=true
*/ */
const $ = new Env('财富岛兑换红包'); const $ = new Env('财富岛兑换红包');
CryptoScripts() CryptoScripts()

View File

@ -8,17 +8,17 @@
============Quantumultx=============== ============Quantumultx===============
[task_local] [task_local]
#京喜财富岛合成珍珠 #京喜财富岛合成珍珠
30 0-23/2 * * * https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd_pearl.js, tag=京喜财富岛合成珍珠, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true 30 0-23/2 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd_pearl.js, tag=京喜财富岛合成珍珠, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true
================Loon============== ================Loon==============
[Script] [Script]
cron "30 0-23/2 * * *" script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd_pearl.js,tag=京喜财富岛合成珍珠 cron "30 0-23/2 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd_pearl.js,tag=京喜财富岛合成珍珠
===============Surge================= ===============Surge=================
京喜财富岛合成珍珠 = type=cron,cronexp="30 0-23/2 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd_pearl.js 京喜财富岛合成珍珠 = type=cron,cronexp="30 0-23/2 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd_pearl.js
============小火箭========= ============小火箭=========
京喜财富岛合成珍珠 = type=cron,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd_pearl.js, cronexpr="30 0-23/2 * * *", timeout=3600, enable=true 京喜财富岛合成珍珠 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd_pearl.js, cronexpr="30 0-23/2 * * *", timeout=3600, enable=true
*/ */

View File

@ -26,22 +26,30 @@ let num=0
let shopname='' let shopname=''
const token = [ const token = [
"4BF0331BCB845ABC79145753E605E9C3", "4BF0331BCB845ABC79145753E605E9C3",
"490047103854B8B5E17D3D76C2C65D1D", "7D8DF37F588D261C59994A1C6F472ABA",
"F4132FED0919E26A040981E77C3FD009", "07D72B6BEC5DDC95E475D019FA89F39D",
"3068C74A35718BF761F8E10F52824696", "0950F5FA76B0EC70FD8E3CA4E0B9FABF",
"AF994FA00C2086F08849D5FB7122E79F", "EE60F07CE497C8C2915262C4A681016A",
"97CE35E23187041CD746CA5B4E7F4B38", "E08EA466C50A0C894FE750FB54B5B1B6",
"E20BD5091D8F70B4649D529A09183F04", "E20BD5091D8F70B4649D529A09183F04",
"88ECFB91288FD2DE93DDBDDAA9409D8E", "65761481817B9111E49E939888419250",
"1B2F8250713AD30F335B092B70A4DBF5", "6441D5406FD81386379AED19FA122DBE",
"642395217049DBC4F56F105B3FBA0633", "642395217049DBC4F56F105B3FBA0633",
"8E3E6081738C9C30446C20F347516649", "D5D7E1A6A35DD6DF590F1D26183C0D40",
"57B5F1912B8A5F7C3913EEB0CFA9130B", "31D76EB23737B3BF03EBDCC06EA2B9EC",
"C5F5FF51E040B2415A435D5BFDA15348",
"3705013F73CEEA8CB2311DB6607046FE", "3705013F73CEEA8CB2311DB6607046FE",
"50EFAF0B1C9520C4AC3FFBFE6B9C13F8", "50EFAF0B1C9520C4AC3FFBFE6B9C13F8",
"903DFFB65088484F7743B5F437BB1649", "903DFFB65088484F7743B5F437BB1649",
"3FCA9C124FC3A1D02D4191696590DC92" "3FCA9C124FC3A1D02D4191696590DC92",
"41AFADC9C4AF8807DEC071FE688596FB",
"CE544106AB7A796944BC56B403ED02A1",
"62F921549D1B7244101CCC5AFBC2E952",
"A3B3E3A15E365F2F5709618D27C9DDCD",
"FE30AB00038CFFEF00DA9E9B8E932721",
"F0C24D7588D90922393B423C6623F31A",
"DFD953F3D54DAE2721568457FE12068C",
"3DEACB6A49D5954B134A6C4DE73FEF42",
"634E143046CCD9EBAA298A70B7672A63"
] ]
if ($.isNode()) { if ($.isNode()) {

View File

@ -14,17 +14,17 @@ byjiulan
============Quantumultx=============== ============Quantumultx===============
[task_local] [task_local]
#京东评价 #京东评价
37 15 * * * https://raw.githubusercontent.com/okyyds/yydspure/master/jd_evaluation.js, tag=京东评价, enabled=true 37 15 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_evaluation.js, tag=京东评价, enabled=true
================Loon============== ================Loon==============
[Script] [Script]
cron "37 15 * * *" script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_evaluation.js,tag=京东评价 cron "37 15 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_evaluation.js,tag=京东评价
===============Surge================= ===============Surge=================
京东评价 = type=cron,cronexp="37 15 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_evaluation.js 京东评价 = type=cron,cronexp="37 15 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_evaluation.js
============小火箭========= ============小火箭=========
京东评价 = type=cron,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_evaluation.js, cronexpr="37 15 * * *", timeout=3600, enable=true 京东评价 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_evaluation.js, cronexpr="37 15 * * *", timeout=3600, enable=true
*/ */
const $ = new Env('京东评价'); const $ = new Env('京东评价');
const notify = $.isNode() ? require('./sendNotify') : ''; const notify = $.isNode() ? require('./sendNotify') : '';

View File

@ -7,17 +7,17 @@
===================quantumultx================ ===================quantumultx================
[task_local] [task_local]
#东东健康社区 #东东健康社区
5 4,14 * * * https://raw.githubusercontent.com/okyyds/yydspure/master/jd_health_help.js, tag=东东健康社区, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true 5 4,14 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_health_help.js, tag=东东健康社区, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true
=====================Loon================ =====================Loon================
[Script] [Script]
cron "5 4,14 * * *" script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_health_help.js, tag=东东健康社区 cron "5 4,14 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_health_help.js, tag=东东健康社区
====================Surge================ ====================Surge================
东东健康社区 = type=cron,cronexp="5 4,14 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_health_help.js 东东健康社区 = type=cron,cronexp="5 4,14 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_health_help.js
============小火箭========= ============小火箭=========
东东健康社区 = type=cron,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_health_help.js, cronexpr="5 4,14 * * *", timeout=3600, enable=true 东东健康社区 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_health_help.js, cronexpr="5 4,14 * * *", timeout=3600, enable=true
*/ */
const $ = new Env("东东健康社区内部互助"); const $ = new Env("东东健康社区内部互助");
const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; const jdCookieNode = $.isNode() ? require("./jdCookie.js") : "";

View File

@ -6,17 +6,17 @@
=================================Quantumultx========================= =================================Quantumultx=========================
[task_local] [task_local]
#京东特价翻翻乐 #京东特价翻翻乐
20 0-23/3 * * * https://raw.githubusercontent.com/okyyds/yydspure/master/jd_jdtj_winner.js, tag=京东特价翻翻乐, img-url=https://github.com/58xinian/icon/raw/master/jdgc.png, enabled=true 20 0-23/3 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdtj_winner.js, tag=京东特价翻翻乐, img-url=https://github.com/58xinian/icon/raw/master/jdgc.png, enabled=true
================Loon============== ================Loon==============
[Script] [Script]
cron "20 0-23/3 * * *" script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_jdtj_winner.js,tag=京东特价翻翻乐 cron "20 0-23/3 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdtj_winner.js,tag=京东特价翻翻乐
===============Surge================= ===============Surge=================
京东特价翻翻乐 = type=cron,cronexp="20 0-23/3 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_jdtj_winner.js 京东特价翻翻乐 = type=cron,cronexp="20 0-23/3 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdtj_winner.js
============小火箭========= ============小火箭=========
京东特价翻翻乐 = type=cron,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_jdtj_winner.js, cronexpr="20 0-23/3 * * *", timeout=3600, enable=true 京东特价翻翻乐 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_jdtj_winner.js, cronexpr="20 0-23/3 * * *", timeout=3600, enable=true
*/ */
const $ = new Env('京东特价翻翻乐'); const $ = new Env('京东特价翻翻乐');
const notify = $.isNode() ? require('./sendNotify') : ''; const notify = $.isNode() ? require('./sendNotify') : '';

549
jd_jin_tie.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,690 +0,0 @@
/*
领金贴(只做签到以及互助任务里面的部分任务) Fixed By X1a0He
Last Modified time: 2021-09-04 22:25:00
Last Modified By X1a0He
活动入口京东APP首页-领金贴[活动地址](https://active.jd.com/forever/cashback/index/)
*/
const $ = new Env('领金贴');
const notify = $.isNode() ? require('./sendNotify') : '';
//Node.js用户请在jdCookie.js处填写京东ck;
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
//IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [], cookie = '', message, allMessage = '';
if($.isNode()){
Object.keys(jdCookieNode).forEach((item) => {
cookiesArr.push(jdCookieNode[item]);
});
if(process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {};
} else {
cookiesArr = [
$.getdata("CookieJD"),
$.getdata("CookieJD2"),
...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item);
}
!(async() => {
if(!cookiesArr[0]){
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
return;
}
for(let i = 0; i < cookiesArr.length; i++){
if(cookiesArr[i]){
cookie = cookiesArr[i];
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
$.index = i + 1;
$.isLogin = true;
$.nickName = '';
message = '';
await TotalBean();
console.log(`\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`);
if(!$.isLogin){
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
if($.isNode()){
await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`);
}
continue
}
await main();
}
}
})().catch((e) => {
$.log('', `${$.name}, 失败! 原因: ${e}!`, '')
}).finally(() => {
$.done();
})
async function main(){
try{
await channelUserSignInfo_xh();
await queryMission_xh();
await channelUserSubsidyInfo_xh();
} catch(e){
$.logErr(e)
}
}
function channelUserSignInfo_xh(){
return new Promise((resolve) => {
const body = JSON.stringify({
"source": "JD_APP",
"channel": "scljticon",
"channelLv": "scljticon",
"apiVersion": "4.0.0",
"riskDeviceParam": `{\"macAddress\":\"\",\"imei\":\"\",\"eid\":\"\",\"openUUID\":\"\",\"uuid\":\"\",\"traceIp\":\"\",\"os\":\"\",\"osVersion\":\"\",\"appId\":\"\",\"clientVersion\":\"\",\"resolution\":\"\",\"channelInfo\":\"\",\"networkType\":\"\",\"startNo\":42,\"openid\":\"\",\"token\":\"\",\"sid\":\"\",\"terminalType\":\"\",\"longtitude\":\"\",\"latitude\":\"\",\"securityData\":\"\",\"jscContent\":\"\",\"fnHttpHead\":\"\",\"receiveRequestTime\":\"\",\"port\":80,\"appType\":\"\",\"deviceType\":\"\",\"fp\":\"\",\"ip\":\"\",\"idfa\":\"\",\"sdkToken\":\"\"}`,
"others": { "shareId": "" }
})
const options = taskUrl_xh('channelUserSignInfo', body, 'jrm');
$.get(options, async(err, resp, data) => {
try{
if(err){
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if(data.resultCode === 0){
if(data.resultData.code === '000'){
$.keepSigned = 0;
let state = false;
for(let i in data.resultData.data.signDetail){
if(data.resultData.data.signDetail[i].signed) $.keepSigned += 1
if(data.resultData.data.dayId === data.resultData.data.signDetail[i].id){
state = data.resultData.data.signDetail[i].signed
console.log('获取签到状态成功', state ? '今日已签到' : '今日未签到', '连续签到', $.keepSigned, '天\n')
}
}
if(!state) await channelSignInSubsidy_xh()
} else {
console.log('获取签到状态失败', data.resultData.msg)
}
} else {
console.log('获取签到状态失败', data.resultMsg)
}
}
} catch(e){
$.logErr(e, resp);
} finally{
resolve(data);
}
})
})
}
function channelSignInSubsidy_xh(){
return new Promise((resolve) => {
const body = JSON.stringify({
"source": "JD_APP",
"channel": "scljticon",
"channelLv": "scljticon",
"apiVersion": "4.0.0",
"riskDeviceParam": `{\"macAddress\":\"\",\"imei\":\"\",\"eid\":\"\",\"openUUID\":\"\",\"uuid\":\"\",\"traceIp\":\"\",\"os\":\"\",\"osVersion\":\"\",\"appId\":\"\",\"clientVersion\":\"\",\"resolution\":\"\",\"channelInfo\":\"\",\"networkType\":\"\",\"startNo\":42,\"openid\":\"\",\"token\":\"\",\"sid\":\"\",\"terminalType\":\"\",\"longtitude\":\"\",\"latitude\":\"\",\"securityData\":\"\",\"jscContent\":\"\",\"fnHttpHead\":\"\",\"receiveRequestTime\":\"\",\"port\":80,\"appType\":\"\",\"deviceType\":\"\",\"fp\":\"\",\"ip\":\"\",\"idfa\":\"\",\"sdkToken\":\"\"}`,
"others": { "shareId": "" }
})
const options = taskUrl_xh('channelSignInSubsidy', body, 'jrm');
$.get(options, async(err, resp, data) => {
try{
if(err){
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if(data.resultCode === 0){
if(data.resultData.code === '000'){
if(data.resultData.data.signSuccess){
console.log(`签到成功,获得 0.0${data.resultData.data.rewardAmount}`)
}
} else if(data.resultData.code === '001'){
console.log(`签到失败,可能今天已签到`)
} else {
// console.log(data)
console.log("签到失败")
}
} else {
// console.log(data)
console.log("签到失败")
}
}
} catch(e){
$.logErr(e, resp);
} finally{
resolve(data);
}
})
})
}
function queryMission_xh(){
return new Promise((resolve) => {
$.taskData = [];
const options = {
url: "https://ms.jr.jd.com/gw/generic/mission/h5/m/queryMission?reqData=%7B%22channelCode%22:%22SUBSIDY2%22,%22riskDeviceParam%22:%22%7B%5C%22eid%5C%22:%5C%22%5C%22,%5C%22fp%5C%22:%5C%22%5C%22,%5C%22sdkToken%5C%22:%5C%22%5C%22,%5C%22token%5C%22:%5C%22%5C%22,%5C%22undefined%5C%22:%5C%22%5C%22%7D%22,%22channel%22:%22%22%7D",
headers: {
'Accept': `*/*`,
'Origin': `https://u.jr.jd.com`,
'Accept-Encoding': `gzip, deflate, br`,
'Cookie': cookie,
'Content-Type': `application/x-www-form-urlencoded;charset=UTF-8`,
'Host': `ms.jr.jd.com`,
'Connection': `keep-alive`,
"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"),
'Referer': `https://u.jr.jd.com/`,
'Accept-Language': `zh-cn`
}
}
$.get(options, async(err, resp, data) => {
try{
if(err){
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if(data.resultCode === 0){
if(data.resultData.code === '0000'){
console.log('互动任务获取成功')
$.taskData = data.resultData.data;
for(let task of $.taskData){
if(task.missionId !== 4648){
console.log(`\n任务id${task.missionId} 任务状态:${task.status}`)
if(task.status === -1){
console.log(`正在做任务:${task.missionId}`)
await receiveMission_xh(task.missionId)
await queryMissionReceiveAfterStatus_xh(task.missionId)
} else if(task.status === 0){
await queryMissionReceiveAfterStatus_xh(task.missionId)
} else if(task.status === 1){
console.log(`正在领取任务:${task.missionId} 奖励`)
await awardMission_xh(task.missionId)
} else if(task.status === 2){
console.log(`任务id${task.missionId} 已完成`)
}
}
}
} else {
console.log('获取互动任务失败', data)
}
} else {
console.log('获取互动任务失败', data)
}
}
} catch(e){
$.logErr(e, resp);
} finally{
resolve(data);
}
})
})
}
function receiveMission_xh(missionId){
return new Promise((resolve) => {
const body = JSON.stringify({
"missionId": `${missionId}`,
"channelCode": "SUBSIDY2",
"timeStamp": new Date().toString(),
"env": "JDAPP"
})
const options = taskUrl_xh('receiveMission', body);
$.get(options, async(err, resp, data) => {
try{
if(err){
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if(data.resultCode === 0){
if(data.resultData.code === '0000'){
if(data.resultData.success){
console.log('领取任务成功')
}
} else if(data.resultData.code === '0005'){
console.log('已经接取过该任务')
} else {
console.log('领取任务失败', data)
}
} else {
console.log('领取任务失败', data)
}
}
} catch(e){
$.logErr(e, resp);
} finally{
resolve(data);
}
})
})
}
function queryMissionReceiveAfterStatus_xh(taskId){
return new Promise((resolve) => {
const body = JSON.stringify({ "missionId": `${taskId}` })
const options = taskUrl_xh('queryMissionReceiveAfterStatus', body);
$.get(options, async(err, resp, data) => {
try{
if(err){
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if(data.resultCode === 0){
if(data.resultData.code === '0000'){
console.log('正在浏览等待10s')
await $.wait(10000)
await finishReadMission_xh(`${taskId}`)
} else if(data.resultData.code === '0003'){
console.log('任务浏览失败', "非法参数")
} else if(data.resultData.code === '0001'){
console.log('任务浏览失败', "状态不正确")
} else {
console.log("任务浏览失败", data)
}
} else {
console.log('任务浏览失败', data)
}
}
} catch(e){
$.logErr(e, resp);
} finally{
resolve(data);
}
})
})
}
function finishReadMission_xh(missionId){
return new Promise((resolve) => {
const body = JSON.stringify({
"missionId": `${missionId}`,
"readTime": 10
})
const options = taskUrl_xh('finishReadMission', body);
$.get(options, async(err, resp, data) => {
try{
if(err){
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if(data.resultCode === 0){
if(data.resultData.code === '0000'){
if(data.resultData.success){
console.log('任务执行成功')
await awardMission_xh(missionId)
}
} else if(data.resultData.code === '0001' || data.resultData.code === '0004'){
console.log('状态不正确')
} else {
console.log('任务执行失败', data)
}
} else {
console.log('任务执行失败', data)
}
}
} catch(e){
$.logErr(e, resp);
} finally{
resolve(data);
}
})
})
}
function awardMission_xh(missionId){
return new Promise((resolve) => {
const body = JSON.stringify({
"missionId": `${missionId}`,
"channelCode": "SUBSIDY2",
"timeStamp": new Date().toString(),
"env": "JDAPP"
})
const options = taskUrl_xh('awardMission', body);
$.get(options, async(err, resp, data) => {
try{
if(err){
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if(data.resultCode === 0){
if(data.resultData.code === '0000'){
if(data.resultData.success){
console.log('领取金贴成功')
}
} else if(data.resultData.code === '0004'){
console.log('不满足领奖条件,可能已经完成')
} else {
console.log('领取金贴失败', data)
}
} else {
console.log('领取金贴失败', data)
}
}
} catch(e){
$.logErr(e, resp);
} finally{
resolve(data);
}
})
})
}
function channelUserSubsidyInfo_xh(){
return new Promise((resolve) => {
const body = JSON.stringify({
"source": "JD_APP",
"channel": "scljticon",
"channelLv": "scljticon",
"apiVersion": "4.0.0",
"riskDeviceParam": `{\"macAddress\":\"\",\"imei\":\"\",\"eid\":\"\",\"openUUID\":\"\",\"uuid\":\"\",\"traceIp\":\"\",\"os\":\"\",\"osVersion\":\"\",\"appId\":\"\",\"clientVersion\":\"\",\"resolution\":\"\",\"channelInfo\":\"\",\"networkType\":\"\",\"startNo\":42,\"openid\":\"\",\"token\":\"\",\"sid\":\"\",\"terminalType\":\"\",\"longtitude\":\"\",\"latitude\":\"\",\"securityData\":\"\",\"jscContent\":\"\",\"fnHttpHead\":\"\",\"receiveRequestTime\":\"\",\"port\":80,\"appType\":\"\",\"deviceType\":\"\",\"fp\":\"\",\"ip\":\"\",\"idfa\":\"\",\"sdkToken\":\"\"}`,
"others": { "shareId": "" }
})
const options = taskUrl_xh('channelUserSubsidyInfo', body, 'jrm');
$.get(options, async(err, resp, data) => {
try{
if(err){
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if(data.resultCode === 0){
if(data.resultData.code === '000'){
console.log(`\n京东账号${$.index} ${$.nickName || $.UserName} 当前总金贴:${data.resultData.data.availableAmount}`)
} else {
console.log('获取当前总金贴失败', data)
}
} else {
console.log('获取当前总金贴失败', data)
}
}
} catch(e){
$.logErr(e, resp);
} finally{
resolve(data);
}
})
})
}
function taskUrl_xh(function_id, body, type = 'mission'){
return {
url: `https://ms.jr.jd.com/gw/generic/${type}/h5/m/${function_id}?reqData=${encodeURIComponent(body)}`,
headers: {
'Accept': `*/*`,
'Origin': `https://u.jr.jd.com`,
'Accept-Encoding': `gzip, deflate, br`,
'Cookie': cookie,
'Content-Type': `application/x-www-form-urlencoded;charset=UTF-8`,
'Host': `ms.jr.jd.com`,
'Connection': `keep-alive`,
"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"),
'Referer': `https://u.jr.jd.com/`,
'Accept-Language': `zh-cn`
}
}
}
function TotalBean(){
return new Promise(async resolve => {
const options = {
url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion",
headers: {
Host: "me-api.jd.com",
Accept: "*/*",
Connection: "keep-alive",
Cookie: cookie,
"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"),
"Accept-Language": "zh-cn",
"Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&",
"Accept-Encoding": "gzip, deflate, br"
}
}
$.get(options, (err, resp, data) => {
try{
if(err){
$.logErr(err)
} else {
if(data){
data = JSON.parse(data);
if(data['retcode'] === "1001"){
$.isLogin = false; //cookie过期
return;
}
if(data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")){
$.nickName = data.data.userInfo.baseInfo.nickname;
}
} else {
$.log('京东服务器返回空数据');
}
}
} catch(e){
$.logErr(e)
} finally{
resolve();
}
})
})
}
// prettier-ignore
function Env(t, e){
class s{
constructor(t){this.env = t}
send(t, e = "GET"){
t = "string" == typeof t ? { url: t } : t;
let s = this.get;
return "POST" === e && (s = this.post), new Promise((e, i) => {s.call(this, t, (t, s, r) => {t ? i(t) : e(s)})})
}
get(t){return this.send.call(this.env, t)}
post(t){return this.send.call(this.env, t, "POST")}
}
return new class{
constructor(t, e){this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`)}
isNode(){return "undefined" != typeof module && !!module.exports}
isQuanX(){return "undefined" != typeof $task}
isSurge(){return "undefined" != typeof $httpClient && "undefined" == typeof $loon}
isLoon(){return "undefined" != typeof $loon}
toObj(t, e = null){try{return JSON.parse(t)} catch{return e}}
toStr(t, e = null){try{return JSON.stringify(t)} catch{return e}}
getjson(t, e){
let s = e;
const i = this.getdata(t);
if(i) try{s = JSON.parse(this.getdata(t))} catch{}
return s
}
setjson(t, e){try{return this.setdata(JSON.stringify(t), e)} catch{return !1}}
getScript(t){return new Promise(e => {this.get({ url: t }, (t, s, i) => e(i))})}
runScript(t, e){
return new Promise(s => {
let i = this.getdata("@chavy_boxjs_userCfgs.httpapi");
i = i ? i.replace(/\n/g, "").trim() : i;
let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");
r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r;
const [o, h] = i.split("@"), n = {
url: `http://${h}/v1/scripting/evaluate`,
body: { script_text: t, mock_type: "cron", timeout: r },
headers: { "X-Key": o, Accept: "*/*" }
};
this.post(n, (t, e, i) => s(i))
}).catch(t => this.logErr(t))
}
loaddata(){
if(!this.isNode()) return {};
{
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile),
s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e);
if(!s && !i) return {};
{
const i = s ? t : e;
try{return JSON.parse(this.fs.readFileSync(i))} catch(t){return {}}
}
}
}
writedata(){
if(this.isNode()){
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile),
s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data);
s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r)
}
}
lodash_get(t, e, s){
const i = e.replace(/\[(\d+)\]/g, ".$1").split(".");
let r = t;
for(const t of i) if(r = Object(r)[t], void 0 === r) return s;
return r
}
lodash_set(t, e, s){return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t)}
getdata(t){
let e = this.getval(t);
if(/^@/.test(t)){
const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : "";
if(r) try{
const t = JSON.parse(r);
e = t ? this.lodash_get(t, i, "") : e
} catch(t){e = ""}
}
return e
}
setdata(t, e){
let s = !1;
if(/^@/.test(e)){
const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i),
h = i ? "null" === o ? null : o || "{}" : "{}";
try{
const e = JSON.parse(h);
this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i)
} catch(e){
const o = {};
this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i)
}
} else s = this.setval(t, e);
return s
}
getval(t){return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null}
setval(t, e){return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null}
initGotEnv(t){this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar))}
get(t, e = (() => {})){
t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => {!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)})) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, { status: s, statusCode: i, headers: r, body: o }, o)
}, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => {
try{
if(t.headers["set-cookie"]){
const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();
s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar
}
} catch(t){this.logErr(t)}
}).then(t => {
const { statusCode: s, statusCode: i, headers: r, body: o } = t;
e(null, { status: s, statusCode: i, headers: r, body: o }, o)
}, t => {
const { message: s, response: i } = t;
e(s, i, i && i.body)
}))
}
post(t, e = (() => {})){
if(t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => {!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)}); else if(this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, { status: s, statusCode: i, headers: r, body: o }, o)
}, t => e(t)); else if(this.isNode()){
this.initGotEnv(t);
const { url: s, ...i } = t;
this.got.post(s, i).then(t => {
const { statusCode: s, statusCode: i, headers: r, body: o } = t;
e(null, { status: s, statusCode: i, headers: r, body: o }, o)
}, t => {
const { message: s, response: i } = t;
e(s, i, i && i.body)
})
}
}
time(t, e = null){
const s = e ? new Date(e) : new Date;
let i = {
"M+": s.getMonth() + 1,
"d+": s.getDate(),
"H+": s.getHours(),
"m+": s.getMinutes(),
"s+": s.getSeconds(),
"q+": Math.floor((s.getMonth() + 3) / 3),
S: s.getMilliseconds()
};
/(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length)));
for(let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length)));
return t
}
msg(e = t, s = "", i = "", r){
const o = t => {
if(!t) return t;
if("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0;
if("object" == typeof t){
if(this.isLoon()){
let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"];
return { openUrl: e, mediaUrl: s }
}
if(this.isQuanX()){
let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl;
return { "open-url": e, "media-url": s }
}
if(this.isSurge()){
let e = t.url || t.openUrl || t["open-url"];
return { url: e }
}
}
};
if(this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog){
let t = ["", "==============📣系统通知📣=============="];
t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t)
}
}
log(...t){t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator))}
logErr(t, e){
const s = !this.isSurge() && !this.isQuanX() && !this.isLoon();
s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t)
}
wait(t){return new Promise(e => setTimeout(e, t))}
done(t = {}){
const e = (new Date).getTime(), s = (e - this.startTime) / 1e3;
this.log("", `🔔${this.name}, 结束! 🕛 ${s}`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t)
}
}(t, e)
}

View File

@ -49,7 +49,6 @@ $.log(`最大化收益模式: 已${$.JOY_COIN_MAXIMIZE ? `默认开启` : `关
const JD_API_HOST = `https://api.m.jd.com/client.action`; const JD_API_HOST = `https://api.m.jd.com/client.action`;
message = "" message = ""
!(async () => { !(async () => {
$.user_agent = require('./USER_AGENTS').USER_AGENT
if (!cookiesArr[0]) { if (!cookiesArr[0]) {
$.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {
"open-url": "https://bean.m.jd.com/" "open-url": "https://bean.m.jd.com/"
@ -68,11 +67,13 @@ message = ""
// } // }
cookie = cookiesArr[i]; cookie = cookiesArr[i];
if (cookie) { if (cookie) {
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
$.index = i + 1; $.index = i + 1;
$.isLogin = true; $.isLogin = true;
$.nickName = ''; $.nickName = '';
$.maxJoyCount = 10 $.maxJoyCount = 10;
$.UA = `jdapp;iPhone;10.1.4;13.1.2;${randomString(40)};network/wifi;model/iPhone8,1;addressid/2308460611;appBuild/167814;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`
await TotalBean(); await TotalBean();
if (!$.isLogin) { if (!$.isLogin) {
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {
@ -505,7 +506,7 @@ function taskPostClientActionUrl(body, functionId) {
url: `https://api.m.jd.com/client.action?${functionId ? `functionId=${functionId}` : ``}`, url: `https://api.m.jd.com/client.action?${functionId ? `functionId=${functionId}` : ``}`,
body: body, body: body,
headers: { headers: {
'User-Agent': $.user_agent, 'User-Agent': $.UA,
'Content-Type': 'application/x-www-form-urlencoded', 'Content-Type': 'application/x-www-form-urlencoded',
'Host': 'api.m.jd.com', 'Host': 'api.m.jd.com',
'Origin': 'https://joypark.jd.com', 'Origin': 'https://joypark.jd.com',
@ -520,7 +521,7 @@ function taskGetClientActionUrl(body, functionId) {
url: `https://api.m.jd.com/client.action?functionId=${functionId}${body ? `&${body}` : ``}`, url: `https://api.m.jd.com/client.action?functionId=${functionId}${body ? `&${body}` : ``}`,
// body: body, // body: body,
headers: { headers: {
'User-Agent': $.user_agent, 'User-Agent': $.UA,
'Content-Type': 'application/x-www-form-urlencoded', 'Content-Type': 'application/x-www-form-urlencoded',
'Host': 'api.m.jd.com', 'Host': 'api.m.jd.com',
'Origin': 'https://joypark.jd.com', 'Origin': 'https://joypark.jd.com',
@ -542,7 +543,7 @@ function TotalBean() {
"Connection": "keep-alive", "Connection": "keep-alive",
"Cookie": cookie, "Cookie": cookie,
"Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2",
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1" "User-Agent": $.UA
} }
} }
$.post(options, (err, resp, data) => { $.post(options, (err, resp, data) => {
@ -574,7 +575,13 @@ function TotalBean() {
}) })
}) })
} }
function randomString(e) {
e = e || 32;
let t = "abcdef0123456789", a = t.length, n = "";
for (i = 0; i < e; i++)
n += t.charAt(Math.floor(Math.random() * a));
return n
}
function jsonParse(str) { function jsonParse(str) {
if (typeof str == "string") { if (typeof str == "string") {
try { try {

View File

@ -53,7 +53,9 @@ message = ""
$.index = i + 1; $.index = i + 1;
$.isLogin = true; $.isLogin = true;
$.nickName = ''; $.nickName = '';
$.openIndex = 0 $.openIndex = 0;
$.UA = `jdapp;iPhone;10.1.4;13.1.2;${randomString(40)};network/wifi;model/iPhone8,1;addressid/2308460611;appBuild/167814;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`
console.log(`\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`); console.log(`\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`);
// if ($.isNode()) { // if ($.isNode()) {
// if (process.env.HELP_JOYPARK && process.env.HELP_JOYPARK == "false") { // if (process.env.HELP_JOYPARK && process.env.HELP_JOYPARK == "false") {
@ -367,7 +369,7 @@ function taskPostClientActionUrl(body, functionId) {
url: `https://api.m.jd.com/client.action?${functionId ? `functionId=${functionId}` : ``}`, url: `https://api.m.jd.com/client.action?${functionId ? `functionId=${functionId}` : ``}`,
body: body, body: body,
headers: { headers: {
'User-Agent': 'jdltapp;iPhone;3.5.6;14.6;eac3e15e91fd380664fc7c788e8ab6a07805646d;network/4g;ADID/8F6CAEEA-5BF7-4F7E-86C3-A641C19CA832;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/1995295948;hasOCPay/0;appBuild/1070;supportBestPay/0;pv/41.26;apprpd/;ref/JDLTSubMainPageViewController;psq/2;ads/;psn/eac3e15e91fd380664fc7c788e8ab6a07805646d|112;jdv/0|kong|t_500509960_|jingfen|bb9c79e4c4174521873879a27a707da4|1625071927291|1625071930;adk/;app_device/IOS;pap/JA2020_3112531|3.5.6|IOS 14.6;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', 'User-Agent': $.UA,
'Content-Type': 'application/x-www-form-urlencoded', 'Content-Type': 'application/x-www-form-urlencoded',
'Host': 'api.m.jd.com', 'Host': 'api.m.jd.com',
'Origin': 'https://joypark.jd.com', 'Origin': 'https://joypark.jd.com',
@ -376,7 +378,13 @@ function taskPostClientActionUrl(body, functionId) {
} }
} }
} }
function randomString(e) {
e = e || 32;
let t = "abcdef0123456789", a = t.length, n = "";
for (i = 0; i < e; i++)
n += t.charAt(Math.floor(Math.random() * a));
return n
}
function jsonParse(str) { function jsonParse(str) {
if (typeof str == "string") { if (typeof str == "string") {
try { try {

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
/* /*
约惠春天 好物来袭 甄选大牌 品质嗨购
*/ */
const $ = new Env("约惠春天 好物来袭"); const $ = new Env("甄选大牌 品质嗨购");
const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; const jdCookieNode = $.isNode() ? require("./jdCookie.js") : "";
const notify = $.isNode() ? require("./sendNotify") : ""; const notify = $.isNode() ? require("./sendNotify") : "";
let cookiesArr = [], cookie = "", message = ""; let cookiesArr = [], cookie = "", message = "";
@ -55,17 +55,18 @@ if ($.isNode()) {
$.ADID = getUUID("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 1); $.ADID = getUUID("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 1);
$.UUID = getUUID("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); $.UUID = getUUID("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
authorCodeList = [ authorCodeList = [
"83d7976c2c6a43c29c6031d2c339b404", 'f204df5e8a184e3ca2f375d6d99c3cf9',
'438636e19e2d448c819415fef086a858', '88692f501f7d46188781bc8d679d026a',
'cf5c5fd7d6af44659c1ae464b3ab1f5d', '979863b255de401b9ddda464391f0502',
'7aee91c9f025430ca0fac6eb13ed9608', '91396b0a9f864ea3809e27cbbeae457b',
'e493ae577b0a47278946ca18fdc2e0cf'
]; ];
// $.authorCode = authorCodeList[random(0, authorCodeList.length)]; // $.authorCode = authorCodeList[random(0, authorCodeList.length)];
$.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)]
$.authorNum = `${random(1000000, 9999999)}`; $.authorNum = `${random(1000000, 9999999)}`;
$.randomCode = random(1000000, 9999999); $.randomCode = random(1000000, 9999999);
$.activityId = "dzlhkkb306433997033e689d45c00a"; $.activityId = "dzlhkk081f1bc4bacd11ec99b60200";
$.activityShopId = "1000013205"; $.activityShopId = "1000387046";
$.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/customized/common/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=undefined&lng=00.000000&lat=00.000000&sid=&un_area=`; $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/customized/common/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=undefined&lng=00.000000&lat=00.000000&sid=&un_area=`;
await member(); await member();
await $.wait(1000); await $.wait(1000);
@ -124,7 +125,7 @@ async function member() {
if (vo.status == 0) { if (vo.status == 0) {
await getShopOpenCardInfo({ venderId: `${vo.venderId}`, channel: "401" }, vo.venderId); await getShopOpenCardInfo({ venderId: `${vo.venderId}`, channel: "401" }, vo.venderId);
await bindWithVender({ venderId: `${vo.venderId}`, bindByVerifyCodeFlag: 1, registerExtend: {}, writeChildFlag: 0, activityId: $.openCardActivityId, channel: 401 }, vo.venderId); await bindWithVender({ venderId: `${vo.venderId}`, bindByVerifyCodeFlag: 1, registerExtend: {}, writeChildFlag: 0, activityId: $.openCardActivityId, channel: 401 }, vo.venderId);
await $.wait(1000); await $.wait(500);
} else { } else {
$.log(`>>> 已经是会员`); $.log(`>>> 已经是会员`);
} }

View File

@ -1,7 +1,7 @@
/* /*
早鸟焕春 大牌惠聚 型男精英 随心而动
*/ */
const $ = new Env("早鸟焕春 大牌惠聚"); const $ = new Env("型男精英 随心而动");
const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; const jdCookieNode = $.isNode() ? require("./jdCookie.js") : "";
const notify = $.isNode() ? require("./sendNotify") : ""; const notify = $.isNode() ? require("./sendNotify") : "";
let cookiesArr = [], cookie = "", message = ""; let cookiesArr = [], cookie = "", message = "";
@ -57,19 +57,19 @@ if ($.isNode()) {
$.ADID = getUUID("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 1); $.ADID = getUUID("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 1);
$.UUID = getUUID("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); $.UUID = getUUID("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
authorCodeList = [ authorCodeList = [
'116e7210cd8e434680736d56e9c3da97', '671f58b0e1ae44f68154b2b3ee104d1e',
'88f0c57b6eb7440b91ea5cd63861b30f', '3d49aaaf206f43918db9285e09c20b54',
'3234ec3533c24b5289bdd5b75f898e4e', '4d67eec71b684cb8a49f37e4cabeefa0',
'b1f0903668484ab282729de9eeac53fe', 'b6f55acd1e3348ec84cef8c53d20b41c',
'00a292e9c70e493ca9c36bc25ffbc738', '431e80b3d2cc485d92cd505fb04712a1'
]; ];
// $.authorCode = authorCodeList[random(0, authorCodeList.length)]; // $.authorCode = authorCodeList[random(0, authorCodeList.length)];
$.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)]
$.authorNum = `${random(1000000, 9999999)}`; $.authorNum = `${random(1000000, 9999999)}`;
$.randomCode = random(1000000, 9999999); $.randomCode = random(1000000, 9999999);
$.activityId = "dz3fb7e0f64f21afa7ff66d3daf15b"; $.activityId = "dz934e1f764aa2accb14bd217c55ca";
$.activityShopId = "1000004065"; $.activityShopId = "48034";
$.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/april/springUnion3/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=undefined&lng=00.000000&lat=00.000000&sid=&un_area=`; $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/april/manGod/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=undefined&lng=00.000000&lat=00.000000&sid=&un_area=`;
await member(); await member();
await $.wait(1000); await $.wait(1000);
if ($.bean > 0) { if ($.bean > 0) {
@ -108,16 +108,16 @@ async function member() {
await $.wait(1000); await $.wait(1000);
await task("wxActionCommon/getUserInfo", `pin=${encodeURIComponent($.secretPin)}`, 1); await task("wxActionCommon/getUserInfo", `pin=${encodeURIComponent($.secretPin)}`, 1);
if ($.index === 1) { if ($.index === 1) {
await task("april/springUnion3/activityContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1); await task("april/manGod/activityContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1);
} else { } else {
await task("april/springUnion3/activityContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`); await task("april/manGod/activityContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`);
} }
$.log("关注店铺"); $.log("关注店铺");
await task("april/springUnion3/saveTask", `activityId=${$.activityId}&actorUuid=${encodeURIComponent($.actorUuid)}&pin=${encodeURIComponent($.secretPin)}&taskType=23&taskValue=23&shareUuid=${encodeURIComponent($.authorCode)}`); await task("april/manGod/saveTask", `activityId=${$.activityId}&actorUuid=${encodeURIComponent($.actorUuid)}&pin=${encodeURIComponent($.secretPin)}&taskType=23&taskValue=23&shareUuid=${encodeURIComponent($.authorCode)}`);
await $.wait(1000); await $.wait(1000);
await task("taskact/common/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`); await task("taskact/common/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`);
await $.wait(1000); await $.wait(1000);
await task("april/springUnion3/initOpenCard", `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}`); await task("april/manGod/initOpenCard", `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}`);
$.log("加入店铺会员"); $.log("加入店铺会员");
if ($.openCardList) { if ($.openCardList) {
for (const vo of $.openCardList) { for (const vo of $.openCardList) {
@ -136,7 +136,7 @@ async function member() {
$.log("没有获取到对应的任务。\n"); $.log("没有获取到对应的任务。\n");
} }
await $.wait(1000); await $.wait(1000);
await task("april/springUnion3/initOpenCard", `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}`); await task("april/manGod/initOpenCard", `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}`);
console.log("去助力 -> " + $.authorCode); console.log("去助力 -> " + $.authorCode);
// await task("linkgame/assist/status", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&shareUuid=${$.authorCode}`); // await task("linkgame/assist/status", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&shareUuid=${$.authorCode}`);
// await task("linkgame/assist", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&shareUuid=${$.authorCode}`); // await task("linkgame/assist", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&shareUuid=${$.authorCode}`);
@ -158,7 +158,7 @@ async function member() {
// await getToken(); // await getToken();
await $.wait(2000) await $.wait(2000)
// await task('linkgame/draw/record', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.secretPin)}`); // await task('linkgame/draw/record', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.secretPin)}`);
await task('april/springUnion3/draw', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`); await task('april/manGod/draw', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`);
} }
} }
} }
@ -182,7 +182,7 @@ function task(function_id, body, isCommon = 0, own = 0) {
break; break;
case "wxActionCommon/getUserInfo": case "wxActionCommon/getUserInfo":
break; break;
case "april/springUnion3/activityContent": case "april/manGod/activityContent":
if (!data.data.hasEnd) { if (!data.data.hasEnd) {
$.log(`开启【${data.data.activityName}】活动`); $.log(`开启【${data.data.activityName}】活动`);
$.log("-------------------"); $.log("-------------------");
@ -195,12 +195,12 @@ function task(function_id, body, isCommon = 0, own = 0) {
$.log("活动已经结束"); $.log("活动已经结束");
} }
break; break;
case "april/springUnion3/initOpenCard": case "april/manGod/initOpenCard":
$.openCardList = data.data.openInfo; $.openCardList = data.data.openInfo;
$.openCardStatus = data.data.allOpenCard; $.openCardStatus = data.data.allOpenCard;
// console.log(data) // console.log(data)
break; break;
case "april/springUnion3/saveTask": case "april/manGod/saveTask":
console.log(data); console.log(data);
break; break;
case "linkgame/sign": case "linkgame/sign":
@ -220,7 +220,7 @@ function task(function_id, body, isCommon = 0, own = 0) {
case "interaction/write/writePersonInfo": case "interaction/write/writePersonInfo":
console.log(data); console.log(data);
break; break;
case "april/springUnion3/draw": case "april/manGod/draw":
console.log(data); console.log(data);
break; break;
case "linkgame/draw/record": case "linkgame/draw/record":

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

508
jd_lzdz1_customized19_3.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -6,17 +6,17 @@ JoyJd任务脚本
============Quantumultx=============== ============Quantumultx===============
[task_local] [task_local]
#JoyJd任务脚本 #JoyJd任务脚本
5 2,18 * * * https://raw.githubusercontent.com/okyyds/yydspure/master/jd_joyjd_open.js, tag=JoyJd任务脚本, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true 5 2,18 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_joyjd_open.js, tag=JoyJd任务脚本, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true
================Loon============== ================Loon==============
[Script] [Script]
cron "5 2,18 * * *" script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_joyjd_open.js,tag=JoyJd任务脚本 cron "5 2,18 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_joyjd_open.js,tag=JoyJd任务脚本
===============Surge================= ===============Surge=================
JoyJd任务脚本 = type=cron,cronexp="5 2,18 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_joyjd_open.js JoyJd任务脚本 = type=cron,cronexp="5 2,18 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_joyjd_open.js
============小火箭========= ============小火箭=========
JoyJd任务脚本 = type=cron,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_joyjd_open.js, cronexpr="5 2,18 * * *", timeout=3600, enable=true JoyJd任务脚本 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_joyjd_open.js, cronexpr="5 2,18 * * *", timeout=3600, enable=true
*/ */

View File

@ -10,17 +10,17 @@
=====================================Quantumult X================================= =====================================Quantumult X=================================
[task_local] [task_local]
1 7-21/2 * * * https://raw.githubusercontent.com/KingRan/JDJB/main/jd_plantBean.js, tag=种豆得豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdzd.png, enabled=true 1 7-21/2 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean.js, tag=种豆得豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdzd.png, enabled=true
=====================================Loon================================ =====================================Loon================================
[Script] [Script]
cron "1 7-21/2 * * *" script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_plantBean.js,tag=京东种豆得豆 cron "1 7-21/2 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean.js,tag=京东种豆得豆
======================================Surge========================== ======================================Surge==========================
京东种豆得豆 = type=cron,cronexp="1 7-21/2 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_plantBean.js 京东种豆得豆 = type=cron,cronexp="1 7-21/2 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean.js
====================================小火箭============================= ====================================小火箭=============================
京东种豆得豆 = type=cron,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_plantBean.js, cronexpr="1 7-21/2 * * *", timeout=3600, enable=true 京东种豆得豆 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean.js, cronexpr="1 7-21/2 * * *", timeout=3600, enable=true
*/ */
const $ = new Env('种豆得豆'); const $ = new Env('种豆得豆');

View File

@ -10,17 +10,17 @@
=====================================Quantumult X================================= =====================================Quantumult X=================================
[task_local] [task_local]
40 4,17 * * * https://raw.githubusercontent.com/KingRan/JDJB/main/jd_plantBean_help.js, tag=种豆得豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdzd.png, enabled=true 40 4,17 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean_help.js, tag=种豆得豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdzd.png, enabled=true
=====================================Loon================================ =====================================Loon================================
[Script] [Script]
cron "40 4,17 * * *" script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_plantBean_help.js,tag=京东种豆得豆 cron "40 4,17 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean_help.js,tag=京东种豆得豆
======================================Surge========================== ======================================Surge==========================
京东种豆得豆 = type=cron,cronexp="40 4,17 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_plantBean_help.js 京东种豆得豆 = type=cron,cronexp="40 4,17 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean_help.js
====================================小火箭============================= ====================================小火箭=============================
京东种豆得豆 = type=cron,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_plantBean_help.js, cronexpr="40 4,17 * * *", timeout=3600, enable=true 京东种豆得豆 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_plantBean_help.js, cronexpr="40 4,17 * * *", timeout=3600, enable=true
*/ */
const $ = new Env('种豆得豆内部互助'); const $ = new Env('种豆得豆内部互助');

579
jd_speed_signfree.js Normal file
View File

@ -0,0 +1,579 @@
/*
入口>京东极速版>首页>签到免单
京东极速版,先下单,第二天开始签到
18 8,20 * * * jd_speed_signfree.js 签到免单
*/
const $ = new Env('京东极速版签到免单');
const notify = $.isNode() ? require('./sendNotify') : '';
//Node.js用户请在jdCookie.js处填写京东ck;
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
const UA = $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1")
//IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [],
cookie,
msg = []
const activityId = 'PiuLvM8vamONsWzC0wqBGQ'
if ($.isNode()) {
console.log('\n入口>京东极速版>首页>签到免单')
console.log('京东极速版,先下单,第二天开始签到')
console.log('请自行测试是否有效!!!')
Object.keys(jdCookieNode).forEach((item) => {
cookiesArr.push(jdCookieNode[item])
})
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {};
} else {
cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item);
}
const JD_API_HOST = 'https://api.m.jd.com/';
!(async () => {
for (let i = 0; i < cookiesArr.length; i++) {
if (cookiesArr[i]) {
cookie = cookiesArr[i];
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
$.index = i + 1;
$.nickName = '';
message = '';
console.log(`\n******开始【京东账号${$.index}${$.nickName || $.UserName}*********\n`);
msg.push(($.nickName || $.UserName) + ':')
first_flag = true
await sign_all()
}
}
if (msg.length) {
console.log('有消息,推送消息')
await notify.sendNotify($.name, msg.join('\n'))
} else {
console.error('无消息,推送错误')
await notify.sendNotify($.name + '错误!!', "无消息可推送!!")
}
})()
.catch((e) => {
$.log('', `${$.name}, 失败! 原因: ${e}!`, '')
notify.sendNotify($.name + '异常!!', msg.join('\n') + '\n' + e)
})
.finally(() => {
$.msg($.name, '', `结束`);
$.done();
})
async function sign_all() {
await query()
if (!$.signFreeOrderInfoList){
return
}
await $.wait(3000)
for (const order of $.signFreeOrderInfoList) {
// console.debug('now:', order)
$.productName = order.productName
await sign(order.orderId)
await $.wait(3000)
}
await $.wait(3000)
await query()
await $.wait(3000)
for (const order of $.signFreeOrderInfoList) {
// console.debug('2nd now:', order)
if (order.needSignDays == order.hasSignDays) {
console.log(order.productName, '可提现,执行提现')
$.productName = order.productName
await cash(order.orderId)
await $.wait(3000)
}
}
}
function query() {
return new Promise(resolve => {
$.get(taskGetUrl("signFreeHome", { "linkId": activityId }), async (err, resp, data) => {
try {
if (err) {
console.error(`${JSON.stringify(err)}`)
} else {
// console.debug('query:', data)
data = JSON.parse(data)
$.signFreeOrderInfoList = data.data.signFreeOrderInfoList
if (data.success == true) {
if (!data.data.signFreeOrderInfoList) {
console.log("没有需要签到的商品,请到京东极速版[签到免单]购买商品");
msg.push("没有需要签到的商品,请到京东极速版[签到免单]购买商品")
} else {
$.signFreeOrderInfoList = data.data.signFreeOrderInfoList
if (first_flag) {
first_flag = false
console.log("脚本也许随时失效,请注意");
msg.push("脚本也许随时失效,请注意")
if (data.data.risk == false) {
console.log("风控用户,可能有异常");
msg.push("风控用户,可能有异常")
}
}
}
}else{
console.error("失败");
}
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
}
})
})
}
function sign(orderId) {
return new Promise(resolve => {
// console.debug('sign orderId:', orderId)
$.post(taskPostUrl("signFreeSignIn", { "linkId": activityId, "orderId": orderId }), async (err, resp, data) => {
try {
if (err) {
console.error(`${JSON.stringify(err)}`)
} else {
// console.debug('sign:', data)
data = JSON.parse(data)
let msg_temp
if (data.success) {
msg_temp = $.productName + ' 签到成功'
} else {
msg_temp = $.productName + ' ' + (data.errMsg || '未知错误')
}
console.log(msg_temp)
msg.push(msg_temp)
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
}
})
})
}
function cash(orderId) {
return new Promise(resolve => {
// console.debug('cash orderId:', orderId)
$.post(taskPostUrl("signFreePrize", { "linkId": activityId, "orderId": orderId, "prizeType": 2 }), async (err, resp, data) => {
try {
if (err) {
console.error(`${JSON.stringify(err)}`)
} else {
// console.debug('cash:', data)
data = JSON.parse(data)
let msg_temp
if (data.success) {
msg_temp = $.productName + ' 提现成功'
} else {
msg_temp = $.productName + ' ' + (data.errMsg || '未知错误')
}
console.log(msg_temp)
msg.push(msg_temp)
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve(data);
}
})
})
}
function taskPostUrl(function_id, body) {
return {
url: `${JD_API_HOST}`,
body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&_t=${new Date()}&appid=activities_platform`,
headers: {
'Cookie': cookie,
'Host': 'api.m.jd.com',
// 'Connection': 'keep-alive',
'Content-Type': 'application/x-www-form-urlencoded',
"User-Agent": UA,
'accept-language': 'en-US,zh-CN;q=0.9',
'accept-encoding': 'gzip, deflate, br',
"referer": "https://signfree.jd.com/?activityId=" + activityId
}
}
}
function taskGetUrl(function_id, body) {
return {
url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&_t=${new Date()}&appid=activities_platform`,
headers: {
'Cookie': cookie,
'Host': 'api.m.jd.com',
'Accept': 'application/json, text/plain, */*',
'origin': 'https://signfree.jd.com',
// 'Connection': 'keep-alive',
'user-agent': UA,
'accept-language': 'en-US,zh-CN;q=0.9',
'accept-encoding': 'gzip, deflate, br',
"referer": "https://signfree.jd.com/?activityId=" + activityId
}
}
}
function safeGet(data) {
try {
if (typeof JSON.parse(data) == "object") {
return true;
}
} catch (e) {
console.log(e);
console.log(`京东服务器访问数据为空,请检查自身设备网络情况`);
return false;
}
}
function jsonParse(str) {
if (typeof str == "string") {
try {
return JSON.parse(str);
} catch (e) {
console.log(e);
$.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie')
return [];
}
}
}
// prettier-ignore
function Env(t, e) {
"undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0);
class s {
constructor(t) {
this.env = t
}
send(t, e = "GET") {
t = "string" == typeof t ? {
url: t
} : t;
let s = this.get;
return "POST" === e && (s = this.post), new Promise((e, i) => {
s.call(this, t, (t, s, r) => {
t ? i(t) : e(s)
})
})
}
get(t) {
return this.send.call(this.env, t)
}
post(t) {
return this.send.call(this.env, t, "POST")
}
}
return new class {
constructor(t, e) {
this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`)
}
isNode() {
return "undefined" != typeof module && !!module.exports
}
isQuanX() {
return "undefined" != typeof $task
}
isSurge() {
return "undefined" != typeof $httpClient && "undefined" == typeof $loon
}
isLoon() {
return "undefined" != typeof $loon
}
toObj(t, e = null) {
try {
return JSON.parse(t)
} catch {
return e
}
}
toStr(t, e = null) {
try {
return JSON.stringify(t)
} catch {
return e
}
}
getjson(t, e) {
let s = e;
const i = this.getdata(t);
if (i) try {
s = JSON.parse(this.getdata(t))
} catch {}
return s
}
setjson(t, e) {
try {
return this.setdata(JSON.stringify(t), e)
} catch {
return !1
}
}
getScript(t) {
return new Promise(e => {
this.get({
url: t
}, (t, s, i) => e(i))
})
}
runScript(t, e) {
return new Promise(s => {
let i = this.getdata("@chavy_boxjs_userCfgs.httpapi");
i = i ? i.replace(/\n/g, "").trim() : i;
let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");
r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r;
const [o, h] = i.split("@"), n = {
url: `http://${h}/v1/scripting/evaluate`,
body: {
script_text: t,
mock_type: "cron",
timeout: r
},
headers: {
"X-Key": o,
Accept: "*/*"
}
};
this.post(n, (t, e, i) => s(i))
}).catch(t => this.logErr(t))
}
loaddata() {
if (!this.isNode()) return {}; {
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
const t = this.path.resolve(this.dataFile),
e = this.path.resolve(process.cwd(), this.dataFile),
s = this.fs.existsSync(t),
i = !s && this.fs.existsSync(e);
if (!s && !i) return {}; {
const i = s ? t : e;
try {
return JSON.parse(this.fs.readFileSync(i))
} catch (t) {
return {}
}
}
}
}
writedata() {
if (this.isNode()) {
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
const t = this.path.resolve(this.dataFile),
e = this.path.resolve(process.cwd(), this.dataFile),
s = this.fs.existsSync(t),
i = !s && this.fs.existsSync(e),
r = JSON.stringify(this.data);
s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r)
}
}
lodash_get(t, e, s) {
const i = e.replace(/\[(\d+)\]/g, ".$1").split(".");
let r = t;
for (const t of i)
if (r = Object(r)[t], void 0 === r) return s;
return r
}
lodash_set(t, e, s) {
return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t)
}
getdata(t) {
let e = this.getval(t);
if (/^@/.test(t)) {
const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : "";
if (r) try {
const t = JSON.parse(r);
e = t ? this.lodash_get(t, i, "") : e
} catch (t) {
e = ""
}
}
return e
}
setdata(t, e) {
let s = !1;
if (/^@/.test(e)) {
const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}";
try {
const e = JSON.parse(h);
this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i)
} catch (e) {
const o = {};
this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i)
}
} else s = this.setval(t, e);
return s
}
getval(t) {
return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null
}
setval(t, e) {
return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null
}
initGotEnv(t) {
this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar))
}
get(t, e = (() => {})) {
t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
"X-Surge-Skip-Scripting": !1
})), $httpClient.get(t, (t, s, i) => {
!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)
})) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
hints: !1
})), $task.fetch(t).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => {
try {
if (t.headers["set-cookie"]) {
const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();
s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar
}
} catch (t) {
this.logErr(t)
}
}).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => {
const {
message: s,
response: i
} = t;
e(s, i, i && i.body)
}))
}
post(t, e = (() => {})) {
if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
"X-Surge-Skip-Scripting": !1
})), $httpClient.post(t, (t, s, i) => {
!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)
});
else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
hints: !1
})), $task.fetch(t).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => e(t));
else if (this.isNode()) {
this.initGotEnv(t);
const {
url: s,
...i
} = t;
this.got.post(s, i).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => {
const {
message: s,
response: i
} = t;
e(s, i, i && i.body)
})
}
}
time(t, e = null) {
const s = e ? new Date(e) : new Date;
let i = {
"M+": s.getMonth() + 1,
"d+": s.getDate(),
"H+": s.getHours(),
"m+": s.getMinutes(),
"s+": s.getSeconds(),
"q+": Math.floor((s.getMonth() + 3) / 3),
S: s.getMilliseconds()
};
/(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length)));
for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length)));
return t
}
msg(e = t, s = "", i = "", r) {
const o = t => {
if (!t) return t;
if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? {
"open-url": t
} : this.isSurge() ? {
url: t
} : void 0;
if ("object" == typeof t) {
if (this.isLoon()) {
let e = t.openUrl || t.url || t["open-url"],
s = t.mediaUrl || t["media-url"];
return {
openUrl: e,
mediaUrl: s
}
}
if (this.isQuanX()) {
let e = t["open-url"] || t.url || t.openUrl,
s = t["media-url"] || t.mediaUrl;
return {
"open-url": e,
"media-url": s
}
}
if (this.isSurge()) {
let e = t.url || t.openUrl || t["open-url"];
return {
url: e
}
}
}
};
if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) {
let t = ["", "==============📣系统通知📣=============="];
t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t)
}
}
log(...t) {
t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator))
}
logErr(t, e) {
const s = !this.isSurge() && !this.isQuanX() && !this.isLoon();
s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t)
}
wait(t) {
return new Promise(e => setTimeout(e, t))
}
done(t = {}) {
const e = (new Date).getTime(),
s = (e - this.startTime) / 1e3;
this.log("", `🔔${this.name}, 结束! 🕛 ${s}`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t)
}
}(t, e)
}

View File

@ -5,17 +5,17 @@
===============Quantumultx=============== ===============Quantumultx===============
[task_local] [task_local]
#众筹许愿池 #众筹许愿池
40 0,2 * * * https://raw.githubusercontent.com/KingRan/JDJB/main/jd_wish.js, tag=众筹许愿池, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true 40 0,2 * * * https://raw.githubusercontent.com/222222/sync/jd_scripts/jd_wish.js, tag=众筹许愿池, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true
================Loon============== ================Loon==============
[Script] [Script]
cron "40 0,2 * * *" script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_wish.js,tag=众筹许愿池 cron "40 0,2 * * *" script-path=https://raw.githubusercontent.com/222222/sync/jd_scripts/jd_wish.js,tag=众筹许愿池
===============Surge================= ===============Surge=================
众筹许愿池 = type=cron,cronexp="40 0,2 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_wish.js 众筹许愿池 = type=cron,cronexp="40 0,2 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/222222/sync/jd_scripts/jd_wish.js
============小火箭========= ============小火箭=========
众筹许愿池 = type=cron,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_wish.js, cronexpr="40 0,2 * * *", timeout=3600, enable=true 众筹许愿池 = type=cron,script-path=https://raw.githubusercontent.com/222222/sync/jd_scripts/jd_wish.js, cronexpr="40 0,2 * * *", timeout=3600, enable=true
*/ */
const $ = new Env('众筹许愿池'); const $ = new Env('众筹许愿池');
const notify = $.isNode() ? require('./sendNotify') : ''; const notify = $.isNode() ? require('./sendNotify') : '';
@ -25,8 +25,8 @@ let message = '', allMessage = '';
//IOS等用户直接用NobyDa的jd cookie //IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [], cookie = ''; let cookiesArr = [], cookie = '';
const JD_API_HOST = 'https://api.m.jd.com/client.action'; const JD_API_HOST = 'https://api.m.jd.com/client.action';
let appIdArr = ['1FFVQyqw','1EFRWxKuG', '1E1xZy6s']; let appIdArr = ['1EFBTxa6H','1FFVQyqw','1EFRWxKuG', '1E1xZy6s'];
let appNameArr = ['1111点心动','许愿抽好礼', 'PLUS生活特权']; let appNameArr = ['森林历险记','1111点心动','许愿抽好礼', 'PLUS生活特权'];
let appId, appName; let appId, appName;
$.shareCode = []; $.shareCode = [];
if ($.isNode()) { if ($.isNode()) {
@ -72,7 +72,12 @@ if ($.isNode()) {
if ($.isNode()) await notify.sendNotify($.name, allMessage); if ($.isNode()) await notify.sendNotify($.name, allMessage);
$.msg($.name, '', allMessage) $.msg($.name, '', allMessage)
} }
let res = await getAuthorShareCode('https://gitee.com/KingRan521/JD-Scripts/raw/master/shareCodes/wish.json') let res = await getAuthorShareCode('https://raw.githubusercontent.com/222222/11111128/master/shareCodes/11111127')
if (!res) {
$.http.get({url: 'https://purge.jsdelivr.net/gh/222222/11111128@master/shareCodes/11111127'}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e));
await $.wait(1000)
res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/222222/11111128@master/shareCodes/11111127')
}
$.shareCode = [...$.shareCode, ...(res || [])] $.shareCode = [...$.shareCode, ...(res || [])]
for (let i = 0; i < cookiesArr.length; i++) { for (let i = 0; i < cookiesArr.length; i++) {
if (cookiesArr[i]) { if (cookiesArr[i]) {
@ -131,6 +136,7 @@ async function jd_wish() {
await interact_template_getLotteryResult() await interact_template_getLotteryResult()
await $.wait(2000) await $.wait(2000)
} }
if (message) allMessage += `京东账号${$.index} ${$.nickName || $.UserName}\n${appName}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}`
} catch (e) { } catch (e) {
$.logErr(e) $.logErr(e)
@ -139,7 +145,6 @@ async function jd_wish() {
async function healthyDay_getHomeData(type = true) { async function healthyDay_getHomeData(type = true) {
return new Promise(async resolve => { return new Promise(async resolve => {
// console.log(taskUrl('healthyDay_getHomeData', { "appId": appId, "taskToken": "", "channelId": 1 }));
$.post(taskUrl('healthyDay_getHomeData', {"appId":appId,"taskToken":"","channelId":1}), async (err, resp, data) => { $.post(taskUrl('healthyDay_getHomeData', {"appId":appId,"taskToken":"","channelId":1}), async (err, resp, data) => {
try { try {
if (err) { if (err) {
@ -148,50 +153,25 @@ async function healthyDay_getHomeData(type = true) {
} else { } else {
if (safeGet(data)) { if (safeGet(data)) {
data = JSON.parse(data); data = JSON.parse(data);
// console.log(data);
if (type) { if (type) {
for (let key of Object.keys(data.data.result.hotTaskVos).reverse()) {
let vo = data.data.result.hotTaskVos[key]
if (vo.status !== 2) {
if (vo.taskType === 12) {
console.log(`点击热区`)
await harmony_collectScore({"appId":appId,"taskToken":vo.simpleRecordInfoVo.taskToken,"taskId":vo.taskId,"actionType":"0"}, vo.taskType)
}
}else {
console.log(`${vo.taskName}】已完成\n`)
}
}
for (let key of Object.keys(data.data.result.taskVos).reverse()) { for (let key of Object.keys(data.data.result.taskVos).reverse()) {
let vo = data.data.result.taskVos[key] let vo = data.data.result.taskVos[key]
if (vo.status !== 2) { if (vo.status !== 2 && vo.status !== 0) {
if (vo.taskType === 13 || vo.taskType === 12) { if (vo.taskType === 13 || vo.taskType === 12) {
console.log(`签到`) console.log(`签到`)
await harmony_collectScore({"appId":appId,"taskToken":vo.simpleRecordInfoVo.taskToken,"taskId":vo.taskId,"actionType":"0"}, vo.taskType) await harmony_collectScore({"appId":appId,"taskToken":vo.simpleRecordInfoVo.taskToken,"taskId":vo.taskId,"actionType":"0"}, vo.taskType)
} else if (vo.taskType === 1) { } else if (vo.taskType === 1) {
$.complete = false;
for (let key of Object.keys(vo.followShopVo)) { for (let key of Object.keys(vo.followShopVo)) {
let followShopVo = vo.followShopVo[key] let followShopVo = vo.followShopVo[key]
if (followShopVo.status !== 2) { if (followShopVo.status !== 2) {
console.log(`${followShopVo.shopName}${vo.subTitleName}`) console.log(`${followShopVo.shopName}${vo.subTitleName}`)
await harmony_collectScore({"appId":appId,"taskToken":followShopVo.taskToken,"taskId":vo.taskId,"actionType":"0"}) await harmony_collectScore({"appId":appId,"taskToken":followShopVo.taskToken,"taskId":vo.taskId,"actionType":"0"})
} if ($.complete) break;
}
} else if (vo.taskType === 5) {
for (let key of Object.keys(vo.browseShopVo)) {
let browseShopVo = vo.browseShopVo[key]
if (browseShopVo.status !== 2) {
console.log(`${browseShopVo.skuName}${vo.subTitleName}`)
await harmony_collectScore({ "appId": appId, "taskToken": browseShopVo.taskToken, "taskId": vo.taskId, "actionType": "0" })
}
}
} else if (vo.taskType === 15) {
for (let key of Object.keys(vo.productInfoVos)) {
let productInfoVos = vo.productInfoVos[key]
if (productInfoVos.status !== 2) {
console.log(`${productInfoVos.skuName}${vo.subTitleName}`)
await harmony_collectScore({ "appId": appId, "taskToken": productInfoVos.taskToken, "taskId": vo.taskId, "actionType": "0" })
} }
} }
} else if (vo.taskType === 8) { } else if (vo.taskType === 8) {
$.complete = false;
for (let key of Object.keys(vo.productInfoVos)) { for (let key of Object.keys(vo.productInfoVos)) {
let productInfoVos = vo.productInfoVos[key] let productInfoVos = vo.productInfoVos[key]
if (productInfoVos.status !== 2) { if (productInfoVos.status !== 2) {
@ -199,12 +179,11 @@ async function healthyDay_getHomeData(type = true) {
await harmony_collectScore({"appId":appId,"taskToken":productInfoVos.taskToken,"taskId":vo.taskId,"actionType":"1"}) await harmony_collectScore({"appId":appId,"taskToken":productInfoVos.taskToken,"taskId":vo.taskId,"actionType":"1"})
await $.wait(vo.waitDuration * 1000) await $.wait(vo.waitDuration * 1000)
await harmony_collectScore({"appId":appId,"taskToken":productInfoVos.taskToken,"taskId":vo.taskId,"actionType":"0"}) await harmony_collectScore({"appId":appId,"taskToken":productInfoVos.taskToken,"taskId":vo.taskId,"actionType":"0"})
if ($.complete) break;
} }
} }
} else if (vo.taskType === 27 && vo.taskId === 18) {
console.log(`${vo.subTitleName}`)
await harmony_collectScore({ "appId": appId, "taskToken": vo.productInfoVos[0].taskToken, "taskId": vo.taskId, "actionType": "0" })
} else if (vo.taskType === 9 || vo.taskType === 26) { } else if (vo.taskType === 9 || vo.taskType === 26) {
$.complete = false;
for (let key of Object.keys(vo.shoppingActivityVos)) { for (let key of Object.keys(vo.shoppingActivityVos)) {
let shoppingActivityVos = vo.shoppingActivityVos[key] let shoppingActivityVos = vo.shoppingActivityVos[key]
if (shoppingActivityVos.status !== 2) { if (shoppingActivityVos.status !== 2) {
@ -214,6 +193,7 @@ async function healthyDay_getHomeData(type = true) {
await $.wait(vo.waitDuration * 1000) await $.wait(vo.waitDuration * 1000)
} }
await harmony_collectScore({"appId":appId,"taskToken":shoppingActivityVos.taskToken,"taskId":vo.taskId,"actionType":"0"}) await harmony_collectScore({"appId":appId,"taskToken":shoppingActivityVos.taskToken,"taskId":vo.taskId,"actionType":"0"})
if ($.complete) break;
} }
} }
} else if (vo.taskType === 14) { } else if (vo.taskType === 14) {
@ -254,7 +234,7 @@ function harmony_collectScore(body = {}, taskType = '') {
if (data && data.data && data.data.bizCode === 0) { if (data && data.data && data.data.bizCode === 0) {
if (taskType === 13) { if (taskType === 13) {
console.log(`签到成功:获得${data.data.result.score}金币\n`) console.log(`签到成功:获得${data.data.result.score}金币\n`)
} else if (body.taskId == 5) { } else if (body.taskId == 6) {
console.log(`助力成功:您的好友获得${data.data.result.score}金币\n`) console.log(`助力成功:您的好友获得${data.data.result.score}金币\n`)
} else { } else {
console.log(`完成任务:获得${data.data.result.score}金币\n`) console.log(`完成任务:获得${data.data.result.score}金币\n`)
@ -262,12 +242,13 @@ function harmony_collectScore(body = {}, taskType = '') {
} else { } else {
if (taskType === 13) { if (taskType === 13) {
console.log(`签到失败:${data.data.bizMsg}\n`) console.log(`签到失败:${data.data.bizMsg}\n`)
} else if (body.taskId == 5) { } else if (body.taskId == 6) {
console.log(`助力失败:${data.data.bizMsg || data.msg}\n`) console.log(`助力失败:${data.data.bizMsg || data.msg}\n`)
if (data.code === -30001 || (data.data && data.data.bizCode === 108)) $.canHelp = false if (data.code === -30001 || (data.data && data.data.bizCode === 108)) $.canHelp = false
if (data.data.bizCode === 103) $.delcode = true if (data.data.bizCode === 103) $.delcode = true
} else { } else {
console.log(body.actionType === "0" ? `完成任务失败:${data.data.bizMsg}\n` : data.data.bizMsg) console.log(body.actionType === "0" ? `完成任务失败:${data.data.bizMsg}\n` : data.data.bizMsg)
if (data.data.bizMsg === "任务已完成") $.complete = true;
} }
} }
} }
@ -280,7 +261,6 @@ function harmony_collectScore(body = {}, taskType = '') {
}) })
}) })
} }
function interact_template_getLotteryResult() { function interact_template_getLotteryResult() {
return new Promise(resolve => { return new Promise(resolve => {
$.post(taskUrl('interact_template_getLotteryResult', {"appId":appId}), (err, resp, data) => { $.post(taskUrl('interact_template_getLotteryResult', {"appId":appId}), (err, resp, data) => {

338
jd_xtclh.js Normal file

File diff suppressed because one or more lines are too long

337
jd_zmhwlh.js Normal file

File diff suppressed because one or more lines are too long