加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
jd_connoisseur.js 24.25 KB
一键复制 编辑 原始数据 按行查看 历史
dongdong 提交于 2021-11-03 17:12 . 优化一些脚本
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647
/*
内容鉴赏官
更新时间:2021-09-09
已支持IOS双京东账号,Node.js支持N个京东账号
脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js
============Quantumultx===============
[task_local]
#内容鉴赏官
15 3,6 * * * jd_connoisseur.js, tag=内容鉴赏官, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true
================Loon==============
[Script]
cron "15 3,6 * * *" script-path=jd_connoisseur.js,tag=内容鉴赏官
===============Surge=================
内容鉴赏官 = type=cron,cronexp="15 3,6 * * *",wake-system=1,timeout=3600,script-path=jd_connoisseur.js
============小火箭=========
内容鉴赏官 = type=cron,script-path=jd_connoisseur.js, cronexpr="15 3,6 * * *", timeout=3600, enable=true
*/
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') : '';
let jdNotify = true; //是否关闭通知,false打开通知推送,true关闭通知推送
//IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [],
cookie = '',
message;
let isLoginInfo = {};
$.shareCodes = [
'S5KkcRRcd_AbUJB2nk_YCcA'
];
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/';
let agid = [],
pageId,
encodeActivityId,
paginationFlrs,
activityId;
let allMessage = '';
!(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;
}
let res = [
];
for (let i = 0; i < cookiesArr.length; i++) {
if (cookiesArr[i]) {
$.cookie = cookie = cookiesArr[i];
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
$.index = i + 1;
$.isLogin = true;
$.nickName = '';
message = '';
await $.totalBean();
isLoginInfo[$.UserName] = $.isLogin;
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 jdConnoisseur();
}
}
$.shareCodes = [...$.shareCodes, ...(res || [])];
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]);
if (!isLoginInfo[$.UserName]) continue;
$.canHelp = true;
if ($.shareCodes && $.shareCodes.length) {
console.log(`\n开始互助\n`);
for (let j = 0; j < $.shareCodes.length && $.canHelp; j++) {
console.log(`账号${$.UserName} 去助力 ${$.shareCodes[j].use} 的助力码 ${$.shareCodes[j].code}`);
if ($.UserName === $.shareCodes[j].use) {
console.log(`助力失败:不能助力自己`);
continue;
}
$.delcode = false;
await getTaskInfo('2', $.projectCode, $.taskCode, '2', $.shareCodes[j].code);
await $.wait(2000);
if ($.delcode) {
$.shareCodes.splice(j, 1);
j--;
continue;
}
}
}
}
}
})()
.catch((e) => {
$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '');
})
.finally(() => {
$.done();
});
async function jdConnoisseur() {
await getActiveInfo();
await $.wait(2000);
await getshareCode();
}
async function getActiveInfo(url = 'https://prodev.m.jd.com/mall/active/2y1S9xVYdTud2VmFqhHbkcoAYhJT/index.html') {
let options = {
url,
headers: {
Host: 'prodev.m.jd.com',
Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'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',
Cookie: cookie,
},
};
return new Promise(async (resolve) => {
$.get(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} getActiveInfo API请求失败,请检查网路重试`);
} else {
if (data) {
data = data && data.match(/window\.performance.mark\(e\)}}\((.*)\);<\/script>/)[1];
data = JSON.parse(data);
pageId = data.activityInfo.pageId;
encodeActivityId = data.activityInfo.encodeActivityId;
paginationFlrs = data.paginationFlrs;
activityId = data.activityInfo.activityId;
for (let key of Object.keys(data.codeFloors)) {
let vo = data.codeFloors[key];
if (vo.boardParams && vo.boardParams.taskCode === '2PbAu1BAT79RxrM5V7c2VAPUQDSd') {
agid.push(vo.materialParams.advIdKOC[0].advGrpId);
agid.push(vo.materialParams.advIdVideo[0].advGrpId);
console.log(`去做【${vo.boardParams.btnText}】`);
await getTaskInfo('5', vo.boardParams.projectCode, vo.boardParams.taskCode);
await $.wait(2000);
} else if (vo.boardParams && (vo.boardParams.taskCode === 'XTXNrKoUP5QK1LSU8LbTJpFwtbj' || vo.boardParams.taskCode === '2bpKT3LMaEjaGyVQRr2dR8zzc9UU')) {
console.log(`去做【${vo.boardParams.titleText}】`);
await getTaskInfo('9', vo.boardParams.projectCode, vo.boardParams.taskCode);
await $.wait(2000);
} else if (vo.boardParams && (vo.boardParams.taskCode === '3dw9N5yB18RaN9T1p5dKHLrWrsX' || vo.boardParams.taskCode === 'CtXTxzkh4ExFCrGf8si3ePxGnPy')) {
await getTaskInfo('1', vo.boardParams.projectCode, vo.boardParams.taskCode);
await $.wait(2000);
}
}
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
async function getTaskInfo(type, projectId, assignmentId, helpType = '1', itemId = '') {
let body = { type: type, projectId: projectId, assignmentId: assignmentId, doneHide: false };
if (assignmentId === $.taskCode) (body['itemId'] = itemId), (body['helpType'] = helpType);
return new Promise(async (resolve) => {
$.post(taskUrl('interactive_info', body), async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} getTaskInfo API请求失败,请检查网路重试`);
} else {
if (data) {
data = JSON.parse(data);
if (
(assignmentId === '2PbAu1BAT79RxrM5V7c2VAPUQDSd' ||
assignmentId === '3dw9N5yB18RaN9T1p5dKHLrWrsX' ||
assignmentId === '2gWnJADG8JXMpp1WXiNHgSy4xUSv' ||
assignmentId === 'CtXTxzkh4ExFCrGf8si3ePxGnPy' ||
assignmentId === '26KhtkXmoaj6f37bE43W5kF8a9EL' ||
assignmentId === 'bWE8RTJm5XnooFr4wwdDM5EYcKP') &&
!body['helpType']
) {
if (assignmentId !== '2PbAu1BAT79RxrM5V7c2VAPUQDSd') console.log(`去做【${data.data[0].title}】`);
if (data.code === '0' && data.data && data.data.length > 0) {
if (data.data[0].status !== '2') {
await interactive_done(type, data.data[0].projectId, data.data[0].assignmentId, data.data[0].itemId);
await $.wait(data.data[0].waitDuration || 2000);
} else {
console.log(assignmentId === '2PbAu1BAT79RxrM5V7c2VAPUQDSd' ? `今日已签到` : `任务已完成`);
}
} else {
console.log(data.message);
}
} else if ((assignmentId === 'XTXNrKoUP5QK1LSU8LbTJpFwtbj' || assignmentId === '2bpKT3LMaEjaGyVQRr2dR8zzc9UU') && !body['helpType']) {
if (data.code === '0' && data.data) {
if (data.data[0].status !== '2') {
await sign_interactive_done(type, data.data[0].projectId, data.data[0].assignmentId);
await $.wait(2000);
await interactive_reward(type, data.data[0].projectId, data.data[0].assignmentId);
} else {
console.log(`任务已完成`);
}
} else {
console.log(data.message);
}
} else if (assignmentId === 'Hys8nCmAaqKmv1G3Y3a5LJEk36Y' && !body['helpType']) {
if (data.code === '0' && data.data) {
console.log(`去做【${data.data[0].title}】`);
if (data.data[0].status !== '2') {
await interactive_accept(type, data.data[0].projectId, data.data[0].assignmentId, data.data[0].itemId);
await $.wait(data.data[0].waitDuration);
await qryViewkitCallbackResult(data.data[0].projectId, data.data[0].assignmentId, data.data[0].itemId);
} else {
console.log(`任务已完成`);
}
} else {
console.log(data.message);
}
} else if (assignmentId === $.taskCode && body['helpType']) {
if (helpType === '1') {
if (data.code === '0' && data.data) {
if (data.data[0].status !== '2') {
console.log(`【京东账号${$.index}${$.UserName})的内容鉴赏官好友互助码】${data.data[0].itemId}`);
$.shareCodes.push({
use: $.UserName,
code: data.data[0].itemId,
});
}
} else {
console.log(data.message);
}
} else if (helpType === '2') {
if (data.code === '0' && data.data) {
if (data.data[0].code === '0') {
await interactive_done(type, $.projectCode, $.taskCode, itemId);
} else if (data.data[0].code === '103') {
$.canHelp = false;
console.log(`助力失败:无助力次数`);
} else if (data.data[0].code === '102') {
console.log(`助力失败:${data.data[0].msg}`);
} else if (data.data[0].code === '106') {
$.delcode = true;
console.log(`助力失败:您的好友已完成任务`);
} else {
console.log(JSON.stringify(data));
}
} else {
console.log(data.message);
}
}
}
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function interactive_done(type, projectId, assignmentId, itemId) {
let body = { projectId: projectId, assignmentId: assignmentId, itemId: itemId, type: type };
if (type === '5' || type === '2') body['agid'] = agid;
return new Promise((resolve) => {
$.post(taskUrl('interactive_done', body), (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} interactive_done API请求失败,请检查网路重试`);
} else {
if (data) {
data = JSON.parse(data);
if (type === '2') {
if (data.code === '0') {
console.log(data.data.msg);
if (!data.data.success) $.canHelp = false;
} else {
console.log(data.message);
}
} else {
if (data.code === '0') {
console.log(data.data.rewardMsg);
} else {
console.log(data.message);
}
}
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
async function sign_interactive_done(type, projectId, assignmentId) {
let functionId = 'interactive_done';
let body = JSON.stringify({ assignmentId: assignmentId, type: type, projectId: projectId });
let uuid = randomString(16);
let sign = await getSign(functionId, body, uuid);
let url = `${JD_API_HOST}client.action?functionId=${functionId}&client=apple&clientVersion=10.1.0&uuid=${uuid}&${sign}`;
return new Promise((resolve) => {
$.post(taskPostUrl(url, body), (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} sign_interactive_done API请求失败,请检查网路重试`);
} else {
if (data) {
data = JSON.parse(data);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function interactive_reward(type, projectId, assignmentId) {
return new Promise((resolve) => {
$.post(taskUrl('interactive_reward', { projectId: projectId, assignmentId: assignmentId, type: type }), (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} interactive_reward API请求失败,请检查网路重试`);
} else {
if (data) {
data = JSON.parse(data);
if (data.code === '0') {
console.log(data.data.rewardMsg);
} else {
console.log(data.message);
}
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function interactive_accept(type, projectId, assignmentId, itemId) {
return new Promise((resolve) => {
$.post(taskUrl('interactive_accept', { projectId: projectId, assignmentId: assignmentId, type: type, itemId: itemId }), (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} interactive_accept API请求失败,请检查网路重试`);
} else {
if (data) {
data = JSON.parse(data);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
async function qryViewkitCallbackResult(encryptProjectId, encryptAssignmentId, itemId) {
let functionId = 'qryViewkitCallbackResult';
let body = JSON.stringify({
dataSource: 'babelInteractive',
method: 'customDoInteractiveAssignmentForBabel',
reqParams: `{\"itemId\":\"${itemId}\",\"encryptProjectId\":\"${encryptProjectId}\",\"encryptAssignmentId\":\"${encryptAssignmentId}\"}`,
});
let uuid = randomString(16);
let sign = await getSign(functionId, body, uuid);
let url = `${JD_API_HOST}client.action?functionId=${functionId}&client=apple&clientVersion=10.1.0&uuid=${uuid}&${sign}`;
return new Promise((resolve) => {
$.post(taskPostUrl(url, body), (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} qryViewkitCallbackResult API请求失败,请检查网路重试`);
} else {
if (data) {
data = JSON.parse(data);
console.log(`恭喜获得2个京豆`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
async function getshareCode() {
let body = JSON.stringify({
activityId: encodeActivityId,
pageNum: '-1',
innerAnchor: '',
innerExtId: '',
hideTopFoot: '',
innerLinkBase64: '',
innerIndex: '0',
focus: '',
forceTop: '',
addressId: '',
posLng: '',
posLat: '',
homeLng: '',
homeLat: '',
headId: '',
headArea: '',
warehouseId: '',
dcId: '',
babelChannel: 'ttt3',
mitemAddrId: '',
geo: { lng: '', lat: '' },
flt: '',
jda: '168871293.16308322604432132666501.1630832260.1631174347.1631180687.40',
topNavStyle: '',
url: `https://prodev.m.jd.com/mall/active/${encodeActivityId}/index.html?babelChannel=ttt3&tttparams=eisYm3eyJnTG5nIjoiMTE3LjAxMDA3MSIsImdMYXQiOiI0MC4xODk5My6J9&lng=&lat=&sid=&un_area=1_2953_54044_0`,
fullUrl: `https://prodev.m.jd.com/mall/active/${encodeActivityId}/index.html?babelChannel=ttt3&tttparams=eisYm3eyJnTG5nIjoiMTE3LjAxMDA3MSIsImdMYXQiOiI0MC4xODk5My6J9&lng=&lat=&sid=&un_area=1_2953_54044_0`,
autoSkipEmptyPage: false,
paginationParam: '2',
paginationFlrs: paginationFlrs,
transParam: `{\"bsessionId\":\"\",\"babelChannel\":\"ttt3\",\"actId\":\"${activityId}\",\"enActId\":\"${encodeActivityId}\",\"pageId\":\"${pageId}\",\"encryptCouponFlag\":\"1\",\"sc\":\"apple\",\"scv\":\"10.1.2\",\"requestChannel\":\"h5\",\"jdAtHomePage\":\"0\"}`,
siteClient: 'apple',
siteClientVersion: '10.1.2',
matProExt: {
unpl: 'V2_ZzNtbUBSS0dzARMEfhxYDGIEGl9LUBBHclgVUyxJWgBuVhAPclRCFnUUR1xnGFUUZAEZXUNcQBFFCEZkexhdBG4KFV9FUXMldglHGXsYXWtlTiJeQmdCJXUPR1NzH1oGYAsaXEFXShJ8CENRcxxbNVcDG15yV0IUdwlGVHkaXAFhBRFtclZzFEUJdhUVGV0EYQMRXUAaQxJ0D05SfRpbDW8CEV1LUEoVcA1OUXwpXTVk',
},
userInterest: { whiteNote: '0_0_0', payment: '0_0_0', plusNew: '0_0_0', plusRenew: '0_0_0' },
});
let options = {
url: `${JD_API_HOST}?client=wh5&clientVersion=1.0.0&functionId=qryH5BabelFloors`,
body: `body=${escape(body)}`,
headers: {
Host: 'api.m.jd.com',
Accept: '*/*',
'Content-Type': 'application/x-www-form-urlencoded',
Origin: 'https://prodev.m.jd.com',
'Accept-Language': 'zh-cn',
'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://prodev.m.jd.com/mall/active/2y1S9xVYdTud2VmFqhHbkcoAYhJT/index.html',
'Accept-Encoding': 'gzip, deflate, br',
Cookie: cookie,
},
};
return new Promise(async (resolve) => {
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} getshareCode API请求失败,请检查网路重试`);
} else {
if (data) {
data = JSON.parse(data);
for (let key of Object.keys(data.floorList)) {
let vo = data.floorList[key];
if (
vo.boardParams &&
(vo.boardParams.taskCode === '2gWnJADG8JXMpp1WXiNHgSy4xUSv' ||
vo.boardParams.taskCode === '26KhtkXmoaj6f37bE43W5kF8a9EL' ||
vo.boardParams.taskCode === 'bWE8RTJm5XnooFr4wwdDM5EYcKP' ||
vo.boardParams.taskCode === 'Hys8nCmAaqKmv1G3Y3a5LJEk36Y')
) {
await getTaskInfo('1', vo.boardParams.projectCode, vo.boardParams.taskCode);
await $.wait(2000);
} else if (vo.boardParams && vo.boardParams.taskCode === '3PX8SPeYoQMgo1aJBZYVkeC7QzD3') {
$.projectCode = vo.boardParams.projectCode;
$.taskCode = vo.boardParams.taskCode;
}
}
await getTaskInfo('2', $.projectCode, $.taskCode);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function showMsg() {
return new Promise((resolve) => {
if (!jdNotify) {
$.msg($.name, '', `${message}`);
} else {
$.log(`京东账号${$.index}${$.nickName}\n${message}`);
}
resolve();
});
}
function taskUrl(functionId, body) {
if (functionId === 'interactive_info') {
body = `[${escape(JSON.stringify(body))}]`;
} else {
body = escape(JSON.stringify(body));
}
return {
url: `${JD_API_HOST}${functionId}?functionId=${functionId}&appid=contenth5_common&body=${body}&client=wh5`,
headers: {
Host: 'api.m.jd.com',
Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/x-www-form-urlencoded',
Origin: 'https://prodev.m.jd.com',
'Accept-Language': 'zh-cn',
'Accept-Encoding': 'gzip, deflate, br',
'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://prodev.m.jd.com/mall/active/2y1S9xVYdTud2VmFqhHbkcoAYhJT/index.html',
Cookie: cookie,
},
};
}
function taskPostUrl(url, body) {
return {
url,
body: `body=${escape(body)}`,
headers: {
Cookie: cookie,
Host: 'api.m.jd.com',
Connection: 'keep-alive',
'Content-Type': 'application/x-www-form-urlencoded',
Referer: '',
'User-Agent': 'JD4iPhone/167774 (iPhone; iOS 14.7.1; Scale/3.00)',
'Accept-Language': 'zh-Hans-CN;q=1',
'Accept-Encoding': 'gzip, deflate, br',
},
};
}
function getSign(functionid, body, uuid) {
return new Promise(async (resolve) => {
let data = {
functionId: functionid,
body: body,
uuid: uuid,
client: 'apple',
clientVersion: '10.1.0',
};
let HostArr = ['jdsign.cf', 'signer.nz.lu'];
let Host = HostArr[Math.floor(Math.random() * HostArr.length)];
let options = {
url: `https://cdn.nz.lu/ddo`,
body: JSON.stringify(data),
headers: {
Host,
'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',
},
timeout: 30 * 1000,
};
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} getSign API请求失败,请检查网路重试`);
} else {
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
});
}
function randomString(e) {
e = e || 32;
let t = 'abcdefghijklmnopqrstuvwxyz0123456789',
a = t.length,
n = '';
for (let i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a));
return n;
}
function getAuthorShareCode(url) {
return new Promise(async (resolve) => {
const options = {
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',
},
};
if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) {
const tunnel = require('tunnel');
const agent = {
https: tunnel.httpsOverHttp({
proxy: {
host: process.env.TG_PROXY_HOST,
port: process.env.TG_PROXY_PORT * 1,
},
}),
};
Object.assign(options, { agent });
}
$.get(options, async (err, resp, data) => {
try {
resolve(JSON.parse(data));
} catch (e) {
// $.logErr(e, resp)
} finally {
resolve();
}
});
await $.wait(10000);
resolve();
});
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化