加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
jd_joy_park.js 21.56 KB
一键复制 编辑 原始数据 按行查看 历史
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584
/*
入口 极速版 汪汪乐园
新用户第一次想设置主号拉邀请就先分享到QQ查看邀请码 inviter就是
运行脚本查看邀请码
#自定义邀请码变量
export joyinviterPin=""
====================
*/
// [task_local]
// #汪汪乐园
// 30 2,20 * * * node /scripts/jd_joy_park.js >> /scripts/logs/jd_joy_park.log 2>&1
const jd_helpers = require('./utils/JDHelpers.js');
const jd_env = require('./utils/JDEnv.js');
const $ = jd_env.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;
let codeList = [];
let codeList1 = [];
let joyinviterPin = '';
if (process.env.joyinviterPin) {
joyinviterPin = process.env.joyinviterPin;
}
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'), ...jd_helpers.jsonParse($.getdata('CookiesJD') || '[]').map((item) => item.cookie)].filter((item) => !!item);
}
const JD_API_HOST = 'https://api.m.jd.com/client.action';
!(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 = cookie = cookiesArr[i];
ck2 = cookiesArr[Math.round(Math.random() * 3)];
$.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 joyBaseInfo();
await joyList();
//await joyBuy()
await tasklist();
}
}
})()
.catch((e) => {
$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '');
})
.finally(() => {
$.done();
});
function joyBaseInfo() {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/`,
body: `functionId=joyBaseInfo&body={"taskId":"","inviteType":"","inviterPin":"","linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=1625484389026&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
if (data.errMsg == 'success') {
dj = data.data.level;
gmdj = data.data.fastBuyLevel;
jb = data.data.joyCoin;
yqm = data.data.invitePin;
$.log(`\n===================================`);
$.log(`🐶旺财等级:${dj}\n🐶购买旺财等级:${gmdj}\n🐶当前金币:${jb}\n🐶邀请码:${yqm}\n===================================\n`);
} else if (data.errMsg == '操作失败') {
console.log('操作失败');
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function joyList() {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/?functionId=joyList&body={%22linkId%22:%22LsQNxL7iWDlXUs6cFl-AAg%22}&_t=1625484389027&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
Cookie: cookie,
},
};
$.get(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
if (data.errMsg == 'success') {
joyNumber = data.data.joyNumber;
$.log(`\n===================================`);
$.log(`总共养了:${joyNumber}🐶只旺财\n===================================\n`);
$.log(`可购买:${10 - joyNumber}`);
if (joyNumber !== 10) {
for (let k = 0; k < 10 - joyNumber; k++) {
await joyBuy();
}
}
workJoyInfoList = data.data.workJoyInfoList;
for (let i = 0; i < workJoyInfoList.length; i++) {
location = workJoyInfoList[i].location;
unlock = workJoyInfoList[i].unlock;
if (unlock == true) {
$.log(`${location}号地 此地已开`);
} else if (unlock == false) {
$.log(`${location}号地 此地未开 快去邀请好友开采`);
}
joyDTO = workJoyInfoList[i].joyDTO;
if (joyDTO !== null) {
doid = workJoyInfoList[i].joyDTO.id;
dolevel = workJoyInfoList[i].joyDTO.level;
doname = workJoyInfoList[i].joyDTO.name;
$.log(`🐶正在挖土的旺财:${doname}\n🐶等级:${dolevel}\n🐶旺财ID:${doid}\n===================================\n`);
} else if (joyDTO == null) {
$.log(`🐶此地还没旺财去挖土\n`);
$.log(`\n===================================`);
}
}
activityJoyList = data.data.activityJoyList;
for (let k = 0; k < activityJoyList.length; k++) {
wcid = activityJoyList[k].id;
wcname = activityJoyList[k].name;
wcdj = activityJoyList[k].level;
wchs = activityJoyList[k].recoveryPrice;
codeList[codeList.length] = wcid;
codeList1[codeList1.length] = wcdj;
for (l = 0; l < codeList.length && codeList1.length; l++) {
if (codeList[l] == codeList[l]) {
await joyMerge(codeList[1], codeList[l]);
await joyMerge(codeList[2], codeList[l]);
await joyMerge(codeList[3], codeList[l]);
await joyMerge(codeList[4], codeList[l]);
await joyMerge(codeList[5], codeList[l]);
await joyMerge(codeList[6], codeList[l]);
await joyMerge(codeList[7], codeList[l]);
await joyMerge(codeList[8], codeList[l]);
await joyMerge(codeList[9], codeList[l]);
await joyMerge(codeList[10], codeList[l]);
//$.log(`${codeList[l]} ${codeList1[l]}`)
//$.log(codeList1[l])
}
}
$.log(`🐶旺财:${wcname}\n🐶等级:${wcdj}\n🐶旺财ID:${wcid}\n🐶回收价格:${wchs}\n===================================\n`);
}
} else if (data.errMsg == '操作失败') {
console.log('操作失败');
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function joyMerge(a, b) {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/`,
body: `functionId=joyMerge&body={"joyOneId":${a},"joyTwoId":${b},"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=1625488466557&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
if (data.errMsg == 'success') {
hcid = data.data.joyVO.id;
hcname = data.data.joyVO.name;
hcdj = data.data.joyVO.level;
hchs = data.data.joyVO.recoveryPrice;
$.log(`\n===================================`);
$.log(`🐶合成旺财:${hcname}\n🐶合成等级:${hcdj}\n🐶合成旺财ID:${hcid}\n🐶合成回收价格:${hchs}\n===================================\n`);
}
//else if(data.errMsg == "操作失败"){
// console.log("操作失败")
//}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function joyBuy() {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/`,
body: `functionId=joyBuy&body={"level":${gmdj},"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=1625536191020&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
if (data.errMsg == 'success') {
buyid = data.data.id;
buyname = data.data.name;
buydj = data.data.level;
buyhs = data.data.recoveryPrice;
$.log(`\n===================================`);
$.log(`🐶购买旺财:${buyname}\n🐶购买等级:${buydj}\n🐶购买旺财ID:${buyid}\n🐶购买回收价格:${buyhs}\n===================================\n`);
} else if (data.errMsg == '操作失败') {
console.log('操作失败');
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function tasklist() {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/`,
body: `functionId=apTaskList&body={"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=1625536971467&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
//"Cookie": cookie,
},
};
$.post(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
if (data.success == true) {
task = data.data;
signtaskType = task[0].taskType;
signtaskid = task[0].id;
$.log(`\n===============签到===============`);
await dotask(signtaskType, signtaskid);
await apTaskDrawAward(signtaskType, signtaskid);
$.log(`\n===============浏览===============`);
lltaskType = task[3].taskType;
llsigntaskid = task[3].id;
await dotask(lltaskType, llsigntaskid, '70409858773');
await apTaskDrawAward(lltaskType, llsigntaskid, '70409858773');
await dotask(lltaskType, llsigntaskid, '10029398355348');
await apTaskDrawAward(lltaskType, llsigntaskid, '10029398355348');
await dotask(lltaskType, llsigntaskid, '10026179886685');
await apTaskDrawAward(lltaskType, llsigntaskid, '10026179886685');
await dotask(lltaskType, llsigntaskid, '10032911040996');
await apTaskDrawAward(lltaskType, llsigntaskid, '10032911040996');
await dotask(lltaskType, llsigntaskid, '10033042710323');
await apTaskDrawAward(lltaskType, llsigntaskid, '10033042710323');
await dotask(lltaskType, llsigntaskid, '59304295243');
await apTaskDrawAward(lltaskType, llsigntaskid, '59304295243');
await dotask(lltaskType, llsigntaskid, '10029677756218');
await apTaskDrawAward(lltaskType, llsigntaskid, '10029677756218');
await dotask(lltaskType, llsigntaskid, '10032928241364');
await apTaskDrawAward(lltaskType, llsigntaskid, '10032928241364');
await dotask(lltaskType, llsigntaskid, '10032992559557');
await apTaskDrawAward(lltaskType, llsigntaskid, '10032992559557');
await dotask(lltaskType, llsigntaskid, '10028926270219');
await apTaskDrawAward(lltaskType, llsigntaskid, '10028926270219');
$.log(`\n===============浏览会场===============`);
ll1taskType = task[2].taskType;
ll1signtaskid = task[2].id;
await dotask(ll1taskType, ll1signtaskid, 'https://prodev.m.jd.com/jdlite/active/4SuoxWhFFp5P8SpYoMm6iFuFrXxC/index.html');
await apTaskDrawAward(ll1taskType, ll1signtaskid, 'https://prodev.m.jd.com/jdlite/active/4SuoxWhFFp5P8SpYoMm6iFuFrXxC/index.html');
await dotask(ll1taskType, ll1signtaskid, 'https://pro.m.jd.com/jdlite/active/BMvPWMK1RsN4PWh1JksQUnRCxPy/index.html');
await apTaskDrawAward(ll1taskType, ll1signtaskid, 'https://pro.m.jd.com/jdlite/active/BMvPWMK1RsN4PWh1JksQUnRCxPy/index.html');
await dotask(ll1taskType, ll1signtaskid, 'https://pro.m.jd.com/jdlite/active/3H885vA4sQj6ctYzzPVix4iiYN2P/index.html');
await apTaskDrawAward(ll1taskType, ll1signtaskid, 'https://pro.m.jd.com/jdlite/active/3H885vA4sQj6ctYzzPVix4iiYN2P/index.html');
await dotask(ll1taskType, ll1signtaskid, 'https://pro.m.jd.com/jdlite/active/vN4YuYXS1mPse7yeVPRq4TNvCMR/index.html');
await apTaskDrawAward(ll1taskType, ll1signtaskid, 'https://pro.m.jd.com/jdlite/active/vN4YuYXS1mPse7yeVPRq4TNvCMR/index.html');
await dotask(ll1taskType, ll1signtaskid, 'https://pro.m.jd.com/jdlite/active/4AMo3SQzbqAzJgowhXqvt8Dpo8iA/index.html');
await apTaskDrawAward(ll1taskType, ll1signtaskid, 'https://pro.m.jd.com/jdlite/active/4AMo3SQzbqAzJgowhXqvt8Dpo8iA/index.html');
$.log(`\n===============邀请任务===============`);
await inviteType();
await apTaskinviter();
$.log(`\n===============开地邀请===============`);
await openinvite();
//$.log(`\n===============升级奖励===============`)
//await levelDrawAward()
console.log('操作失败');
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function openinvite() {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/`,
body: `functionId=joyBaseInfo&body={"taskId":"","inviteType":"2","inviterPin":"${joyinviterPin}","linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=1625540360946&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
//$.log(data)
try {
data = JSON.parse(data);
if (data.success == true) {
$.log(data.errMsg);
} else if (data.success == false) {
console.log(data.errMsg + '或者你的CK不足');
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function inviteType() {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/`,
body: `functionId=joyBaseInfo&body={"taskId":"167","inviteType":"1","inviterPin":"${joyinviterPin}","linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=1625540360946&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
//$.log(data)
try {
data = JSON.parse(data);
if (data.success == true) {
$.log(data.errMsg);
} else if (data.success == false) {
console.log(data.errMsg + '或者你的CK不足');
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function levelDrawAward() {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/`,
body: `functionId=joyBaseInfo&body={"taskId":"167","inviteType":"1","inviterPin":"${yqm}","linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=1625545015696&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
//$.log(data)
try {
data = JSON.parse(data);
if (data.success == true) {
$.log(data.errMsg);
} else if (data.success == false) {
console.log(data.errMsg);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function dotask(taskType, taskid, itemId) {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/`,
body: `functionId=apDoTask&body={"taskType":"${taskType}","taskId":${taskid},"channel":4,"linkId":"LsQNxL7iWDlXUs6cFl-AAg","itemId":"${itemId}"}&_t=1625537021966&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
//$.log(data)
try {
data = JSON.parse(data);
if (data.success == true) {
if (data.data.finished == true) {
$.log('任务完成');
} else if (data.data.finished == false) {
$.log(data.errMsg);
}
} else if (data.success == false) {
console.log(data.errMsg);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
//functionId=joyBaseInfo&body={"taskId":"167","inviteType":"1","inviterPin":"IANWqUmbgQVF9ePHGsGFA2m-zSTLKmHFbE-IW-Waarw","linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=1625543629130&appid=activities_platform
function apTaskinviter() {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/`,
body: `functionId=joyBaseInfo&body={"taskId":"167","inviteType":"1","inviterPin":"${yqm}","linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=1625543629130&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
if (data.success == true) {
data.errMsg;
} else if (data.success == false) {
console.log(data.errMsg);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function apTaskDrawAward(taskType, taskid) {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/`,
body: `functionId=apTaskDrawAward&body={"taskType":"${taskType}","taskId":${taskid},"linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&_t=1625537021966&appid=activities_platform`,
headers: {
Origin: 'https://joypark.jd.com',
Host: 'api.m.jd.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36',
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
if (data.success == true) {
DrawAward = data.data;
DrawAward = DrawAward[0].awardGivenNumber;
$.log('获得旺财币:' + DrawAward);
} else if (data.success == false) {
console.log(data.errMsg);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
async function taskPostUrl(functionId, body) {
return {
url: `${JD_API_HOST}`,
body: `functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=6898c30638c55142969304c8e2167997fa59eb54&t=1622588448365`,
headers: {
Cookie: cookie,
Host: 'api.m.jd.com',
Connection: 'keep-alive',
'Content-Type': 'application/x-www-form-urlencoded',
'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',
'Accept-Encoding': 'gzip, deflate, br',
},
};
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化