mirror of
https://github.com/shufflewzc/faker3.git
synced 2026-04-04 00:44:07 +08:00
sync
This commit is contained in:
146
jd_xmf.js
146
jd_xmf.js
@@ -19,7 +19,7 @@ cron "30 3,20 * * *" script-path=jd_xmf.js, tag=京东小魔方
|
||||
============小火箭=========
|
||||
京东小魔方 = type=cron,script-path=jd_xmf.js, cronexpr="30 3,20 * * *", timeout=3600, enable=true
|
||||
*/
|
||||
const $ = new Env('京东小魔方-LingFeng自用版');
|
||||
const $ = new Env('京东小魔方');
|
||||
const notify = $.isNode() ? require('./sendNotify') : '';
|
||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||
@@ -27,34 +27,16 @@ const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||
let cookiesArr = [], cookie = '';
|
||||
var timestamp = Math.round(new Date().getTime()).toString();
|
||||
$.shareCodes = [];
|
||||
let jdLogUrl = process.env.JD_LOG_URL ?? ""
|
||||
let logNums = process.env.LOG_NUMS ? Number(process.env.LOG_NUMS) : 100
|
||||
let RabbitUrl = process.env.Rabbit_Url ?? ""; // logurl
|
||||
let jdPandaToken = '';
|
||||
let jdLogsArr=[];
|
||||
jdPandaToken = $.isNode() ? (process.env.jdPandaToken ? process.env.jdPandaToken : `${jdPandaToken}`) : ($.getdata('jdPandaToken') ? $.getdata('jdPandaToken') : `${jdPandaToken}`);
|
||||
// if (!jdPandaToken && !RabbitUrl){
|
||||
// console.log(`请填写Panda获取的Token,变量是jdPandaToken 或者填写Rabbit获取的logurl,变量是Rabbit_Url`)
|
||||
// return;
|
||||
// }
|
||||
var logs;
|
||||
let jdLogUrl = process.env.JD_LOG_URL ?? "http://106.126.11.114:5889/log"
|
||||
!(async () => {
|
||||
await requireConfig()
|
||||
if(jdLogUrl){
|
||||
let res = await getJdLogs(jdLogUrl)
|
||||
jdLogsArr = [...jdLogsArr,...(res || [])]
|
||||
}
|
||||
if (jdLogsArr.length == 0){
|
||||
console.log(`提醒: log为空,脚本停止运行!`)
|
||||
return
|
||||
}
|
||||
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;
|
||||
}
|
||||
UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
|
||||
UA = `jdapp;iPhone;10.0.8;14.6;${UUID};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`;
|
||||
for (let i = 0; i < cookiesArr.length; i++) {
|
||||
UA = `jdapp;iPhone;10.0.8;14.6;${UUID};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`;
|
||||
if (cookiesArr[i]) {
|
||||
cookie = cookiesArr[i];
|
||||
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
||||
@@ -73,16 +55,14 @@ var logs;
|
||||
continue
|
||||
}
|
||||
await main()
|
||||
await $.wait(1500)
|
||||
}
|
||||
}
|
||||
})().catch((e) => { $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { $.done(); })
|
||||
|
||||
async function main() {
|
||||
await getInteractionHomeInfo();
|
||||
await $.wait(1500)
|
||||
await $.wait(500)
|
||||
await queryInteractiveInfo($.projectId)
|
||||
await $.wait(1500)
|
||||
if ($.taskList) {
|
||||
for (const vo of $.taskList) {
|
||||
if (vo.ext.extraType !== 'brandMemberList' && vo.ext.extraType !== 'assistTaskDetail') {
|
||||
@@ -99,24 +79,21 @@ async function main() {
|
||||
}
|
||||
for (let vi of vo.ext.shoppingActivity ?? []) {
|
||||
if (vi.status === 1) {
|
||||
await $.wait(1500)
|
||||
await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.advId, 1)
|
||||
await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.advId, 1)
|
||||
await $.wait(6000)
|
||||
await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.advId, 0)
|
||||
}
|
||||
}
|
||||
for (let vi of vo.ext.browseShop ?? []) {
|
||||
if (vi.status === 1) {
|
||||
await $.wait(1500)
|
||||
await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 1)
|
||||
await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 1)
|
||||
await $.wait(6000)
|
||||
await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 0)
|
||||
}
|
||||
}
|
||||
for (let vi of vo.ext.addCart ?? []) {
|
||||
if (vi.status === 1) {
|
||||
await $.wait(1500)
|
||||
await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 1)
|
||||
await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 1)
|
||||
await $.wait(6000)
|
||||
await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 0)
|
||||
}
|
||||
@@ -134,8 +111,7 @@ async function main() {
|
||||
async function doInteractiveAssignment(projectId, encryptAssignmentId, itemId, actionType) {
|
||||
// logs = await getJinliLogs()
|
||||
// let random = logs["random"].toString(),log =logs["log"].toString()
|
||||
await $.wait(1500)
|
||||
await getLog();
|
||||
await getLog();
|
||||
let body = { "encryptProjectId": projectId, "encryptAssignmentId": encryptAssignmentId, "sourceCode": "acexinpin0823", "itemId": itemId, "actionType": actionType, "completionFlag": "", "ext": {},"extParam":{"businessData":{"random":`${random}`},"signStr":`${log}`,"sceneid":"XMFhPageh5"} }
|
||||
return new Promise(resolve => {
|
||||
$.post(taskPostUrl("doInteractiveAssignment", body), async (err, resp, data) => {
|
||||
@@ -222,7 +198,7 @@ function taskPostUrl(function_id, body) {
|
||||
"Accept-Encoding": "gzip, deflate, br",
|
||||
"Connection": "keep-alive",
|
||||
"Accept": "application/json, text/plain, */*",
|
||||
"User-Agent": UA,
|
||||
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88",
|
||||
"Referer": "https://h5.m.jd.com/babelDiy/Zeus/2bf3XEEyWG11pQzPGkKpKX2GxJz2/index.html",
|
||||
"Cookie": cookie,
|
||||
}
|
||||
@@ -231,7 +207,7 @@ function taskPostUrl(function_id, body) {
|
||||
function getJdLogs(url) {
|
||||
return new Promise(resolve => {
|
||||
const options = {
|
||||
url: `${url}?${new Date()}&logNums=${logNums}`, "timeout": 10000, headers: {
|
||||
url: `${url}?${new Date()}`, "timeout": 10000, headers: {
|
||||
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88"
|
||||
}
|
||||
};
|
||||
@@ -261,115 +237,15 @@ function getJdLogs(url) {
|
||||
})
|
||||
})
|
||||
}
|
||||
function getJinliLogs() {
|
||||
if (jdPandaToken && RabbitUrl){
|
||||
let nums = Math.floor(Math.random() * 9)+1;
|
||||
if (nums<5){
|
||||
console.info('随机从panda接口获取log!')
|
||||
return pandaLogs();
|
||||
}else {
|
||||
console.info('随机从rabbit接口获取log!')
|
||||
return rabbitLogs();
|
||||
}
|
||||
}
|
||||
if(jdPandaToken && !RabbitUrl){
|
||||
console.info('进入panda接口获取log!')
|
||||
return pandaLogs();
|
||||
}
|
||||
if(RabbitUrl && !jdPandaToken){
|
||||
console.info('进入rabbit接口获取log!')
|
||||
return rabbitLogs();
|
||||
}
|
||||
return '';
|
||||
}
|
||||
function pandaLogs(){
|
||||
var logs = '';
|
||||
return new Promise((resolve) => {
|
||||
let url = {
|
||||
url: "https://api.jds.codes/jd/log",
|
||||
followRedirect: false,
|
||||
headers: {
|
||||
'Accept': '*/*',
|
||||
"accept-encoding": "gzip, deflate, br",
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': 'Bearer ' + jdPandaToken
|
||||
},
|
||||
timeout: 30000
|
||||
}
|
||||
$.get(url, async(err, resp, data) => {
|
||||
try {
|
||||
data = JSON.parse(data);
|
||||
if (data && data.code == 200) {
|
||||
lnrequesttimes = data.request_times;
|
||||
console.log("连接Panda服务成功,当前Token使用次数为" + lnrequesttimes);
|
||||
if (data.data)
|
||||
logs = data.data || '';
|
||||
//console.info(logs['random']+"----"+logs['log'])
|
||||
if (logs != '')
|
||||
resolve(logs);
|
||||
else
|
||||
console.log("签名获取失败,可能Token使用次数上限或被封.");
|
||||
} else {
|
||||
console.log("签名获取失败.");
|
||||
}
|
||||
|
||||
}catch (e) {
|
||||
$.logErr(e, resp);
|
||||
}finally {
|
||||
resolve(logs);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
function rabbitLogs(){
|
||||
var logs = '';
|
||||
return new Promise((resolve) => {
|
||||
let url = {
|
||||
url:`${RabbitUrl}`,
|
||||
followRedirect: false,
|
||||
timeout: 30000
|
||||
}
|
||||
$.get(url, async(err, resp, data) => {
|
||||
try {
|
||||
data = JSON.parse(data);
|
||||
if (data && data.status == 0) {
|
||||
lnrequesttimes = data.request_times;
|
||||
logs = {
|
||||
random: data.random,
|
||||
log: data.log
|
||||
}
|
||||
//console.info(logs['random']+"----"+logs['log'])
|
||||
if (logs != '')
|
||||
resolve(logs);
|
||||
else
|
||||
console.log("log获取失败.");
|
||||
} else {
|
||||
console.log("log获取失败.");
|
||||
}
|
||||
|
||||
}catch (e) {
|
||||
$.logErr(e, resp);
|
||||
}finally {
|
||||
resolve(logs);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
async function requireConfig() {
|
||||
return new Promise(resolve => {
|
||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||
const jdLogNode = $.isNode() ? require('./jdMsLogs.js') : '';
|
||||
if ($.isNode()) {
|
||||
Object.keys(jdCookieNode).forEach((item) => {
|
||||
if (jdCookieNode[item]) {
|
||||
cookiesArr.push(jdCookieNode[item])
|
||||
}
|
||||
})
|
||||
Object.keys(jdLogNode).forEach((item) => {
|
||||
if (jdLogNode[item]) {
|
||||
jdLogsArr.push(jdLogNode[item])
|
||||
}
|
||||
})
|
||||
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {
|
||||
};
|
||||
} else {
|
||||
@@ -380,7 +256,7 @@ async function requireConfig() {
|
||||
})
|
||||
}
|
||||
async function getLog() {
|
||||
var cuid = jdLogsArr[Math.floor((Math.random()*jdLogsArr.length))];
|
||||
var cuid = await getJdLogs(jdLogUrl);
|
||||
log = cuid["log"];
|
||||
random = cuid["random"];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user