|
|
@@ -73,15 +73,15 @@ const magicJS = MagicJS(scriptName, "INFO");
|
|
|
|
|
|
let gLotteryCode = 10058;
|
|
|
let gUserAgent = `Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148`;
|
|
|
-let gHost = `e7i.16890269.com`;
|
|
|
+let gBuyPlanHost = `e7i.16890269.com`;
|
|
|
|
|
|
-const gCommonHeaders = {
|
|
|
+const gBuyPlanHeaders = {
|
|
|
'Accept': `*/*`,
|
|
|
'Accept-Encoding': `gzip, deflate, br`,
|
|
|
'Connection': `keep-alive`,
|
|
|
'Sec-Fetch-Mode': `cors`,
|
|
|
- 'Referer': `https://${gHost}/v1/html/buy_plan/buy_plan.html`,
|
|
|
- 'Host': gHost,
|
|
|
+ 'Referer': `https://${gBuyPlanHost}/v1/html/buy_plan/buy_plan.html`,
|
|
|
+ 'Host': gBuyPlanHost,
|
|
|
'User-Agent': gUserAgent,
|
|
|
'Sec-Fetch-Site': `same-origin`,
|
|
|
'Accept-Language': `zh-CN,zh-Hans;q=0.9`,
|
|
|
@@ -115,6 +115,20 @@ const gCaiLeHeaders = {
|
|
|
};
|
|
|
|
|
|
|
|
|
+let gExpertsRecommendToken = `jGu36jgpJJYPh6AsOGQydYj8GEKxUnvw`;
|
|
|
+let gExpertsRecommendHost = `n3iiz7z5p.168fxo67.com`;
|
|
|
+
|
|
|
+const gExpertsRecommendHeaders = {
|
|
|
+ 'Cookie' : `__nxquid=xFcoBcm0I0z0zfRnkzrBrh0Z+z0ppg==0022`,
|
|
|
+ 'Accept' : `*/*`,
|
|
|
+ 'Connection' : `keep-alive`,
|
|
|
+ 'Accept-Encoding' : `gzip, deflate, br`,
|
|
|
+ 'Host' : gExpertsRecommendHost,
|
|
|
+ 'User-Agent' : `CaiPiao/2.1.64 (iPhone; iOS 16.6.1; Scale/3.00)`,
|
|
|
+ 'Accept-Language' : `zh-Hans-CN;q=1`,
|
|
|
+ 'token' : gExpertsRecommendToken
|
|
|
+};
|
|
|
+
|
|
|
const formatNow = () => {
|
|
|
return magicJS.formatDate(new Date(), 'yyyy-MM-dd');
|
|
|
}
|
|
|
@@ -124,9 +138,9 @@ async function Main() {
|
|
|
if (magicJS.isRequest) {
|
|
|
checkHandleRequest();
|
|
|
} else {
|
|
|
- gHost = magicJS.data.read('168_PksPlanAPIHost', 'e7i.16890269.com');
|
|
|
- gCommonHeaders.Host = gHost;
|
|
|
- gCommonHeaders.Referer = `https://${gHost}/v1/html/buy_plan/buy_plan.html`;
|
|
|
+ gBuyPlanHost = magicJS.data.read('168_PksPlanAPIHost', 'e7i.16890269.com');
|
|
|
+ gBuyPlanHeaders.Host = gBuyPlanHost;
|
|
|
+ gBuyPlanHeaders.Referer = `https://${gBuyPlanHost}/v1/html/buy_plan/buy_plan.html`;
|
|
|
|
|
|
gLotteryCode = magicJS.data.read('168_PksPlanLotteryCode', 10058);
|
|
|
let result = await checkLotteryResult();
|
|
|
@@ -286,8 +300,8 @@ async function getHtmlContent(url, headers) {
|
|
|
}
|
|
|
|
|
|
async function checkLotteryResult() {
|
|
|
- // let htmlUrl = `https://${gHost}/v1/html/buy_plan/buy_plan.html`;
|
|
|
- // let htmlContent = await getHtmlContent(htmlUrl, gCommonHeaders);
|
|
|
+ // let htmlUrl = `https://${gBuyPlanHost}/v1/html/buy_plan/buy_plan.html`;
|
|
|
+ // let htmlContent = await getHtmlContent(htmlUrl, gBuyPlanHeaders);
|
|
|
|
|
|
let nowDate = formatNow();
|
|
|
let pksPlanListData = await getPksPlanList(gLotteryCode, nowDate);
|
|
|
@@ -683,7 +697,7 @@ async function checkPlanABuyNotify(pksPlanItemData, pksPlanListData) {
|
|
|
}
|
|
|
|
|
|
async function getPksPlanList(lotCode, date, rows = 30) {
|
|
|
- const url = `https://${gHost}/api/LotteryPlan/getPksPlanList.do?lotCode=${lotCode}&rows=${rows}&date=${date}`;
|
|
|
+ const url = `https://${gBuyPlanHost}/api/LotteryPlan/getPksPlanList.do?lotCode=${lotCode}&rows=${rows}&date=${date}`;
|
|
|
magicJS.logger.info(url);
|
|
|
let cacheData = magicJS.data.read('168_PksPlanListDataCache', null);
|
|
|
// magicJS.logger.info(`cacheData=${JSON.stringify(cacheData)}`);
|
|
|
@@ -698,7 +712,7 @@ async function getPksPlanList(lotCode, date, rows = 30) {
|
|
|
}
|
|
|
const myRequest = {
|
|
|
url: url,
|
|
|
- headers: gCommonHeaders,
|
|
|
+ headers: gBuyPlanHeaders,
|
|
|
body: ``
|
|
|
};
|
|
|
let result = await magicJS.http.get(myRequest).then(response => {
|
|
|
@@ -739,11 +753,11 @@ async function getPksPlanList(lotCode, date, rows = 30) {
|
|
|
}
|
|
|
|
|
|
async function pingPksPlan(date, rows = 30) {
|
|
|
- const url = `https://${gHost}/api/?rows=${rows}&date=${date}`;
|
|
|
+ const url = `https://${gBuyPlanHost}/api/?rows=${rows}&date=${date}`;
|
|
|
magicJS.logger.info(url);
|
|
|
const myRequest = {
|
|
|
url: url,
|
|
|
- headers: gCommonHeaders,
|
|
|
+ headers: gBuyPlanHeaders,
|
|
|
body: ``
|
|
|
};
|
|
|
let result = await magicJS.http.get(myRequest).then(response => {
|
|
|
@@ -759,11 +773,165 @@ async function pingPksPlan(date, rows = 30) {
|
|
|
}
|
|
|
|
|
|
async function getPksPlanItem(lotCode) {
|
|
|
- const url = `https://${gHost}/api/LotteryPlan/getPksPlan.do?lotCode=${lotCode}`;
|
|
|
+ const url = `https://${gBuyPlanHost}/api/LotteryPlan/getPksPlan.do?lotCode=${lotCode}`;
|
|
|
magicJS.logger.info(url);
|
|
|
const myRequest = {
|
|
|
url: url,
|
|
|
- headers: gCommonHeaders,
|
|
|
+ headers: gBuyPlanHeaders,
|
|
|
+ body: ``
|
|
|
+ };
|
|
|
+ let result = await magicJS.http.get(myRequest).then(response => {
|
|
|
+ try {
|
|
|
+ const body = response.body;
|
|
|
+ // magicJS.logger.info(JSON.stringify(body));
|
|
|
+ let rspData;
|
|
|
+ if (typeof body === "string") {
|
|
|
+ return {
|
|
|
+ errorCode: -1,
|
|
|
+ message: '操作失败',
|
|
|
+ result: null,
|
|
|
+ };
|
|
|
+ } else if (typeof body === "object") {
|
|
|
+ rspData = body;
|
|
|
+ }
|
|
|
+ return rspData;
|
|
|
+ } catch (e) {
|
|
|
+ magicJS.logger.error(e);
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ const msg = `请求发生异常\n${JSON.stringify(err)}`;
|
|
|
+ magicJS.logger.error(msg);
|
|
|
+ });
|
|
|
+ if (!result) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (result.errorCode != 0 || result.result == void 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (result.result.businessCode != 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ return result.result.data;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+async function getExpertsRecommendList(lotCode, groupCode=1, ranking=1, field='winningProbability') {
|
|
|
+ const reqData = {
|
|
|
+ lotCode:lotCode,
|
|
|
+ groupCode: groupCode,
|
|
|
+ ranking: ranking,
|
|
|
+ field: field,
|
|
|
+ type: 0,
|
|
|
+ sort: 'desc',
|
|
|
+ s: '168noadv',
|
|
|
+ };
|
|
|
+ const queryStr = magicJS.objToQueryStr(reqData);
|
|
|
+ const url = `https://${gExpertsRecommendHost}/expertsRecommend/list.do?${queryStr}`;
|
|
|
+ magicJS.logger.info(url);
|
|
|
+ const myRequest = {
|
|
|
+ url: url,
|
|
|
+ headers: gExpertsRecommendHeaders,
|
|
|
+ body: ``
|
|
|
+ };
|
|
|
+ let result = await magicJS.http.get(myRequest).then(response => {
|
|
|
+ try {
|
|
|
+ const body = response.body;
|
|
|
+ // magicJS.logger.info(JSON.stringify(body));
|
|
|
+ let rspData;
|
|
|
+ if (typeof body === "string") {
|
|
|
+ return {
|
|
|
+ errorCode: -1,
|
|
|
+ message: '操作失败',
|
|
|
+ result: null,
|
|
|
+ };
|
|
|
+ } else if (typeof body === "object") {
|
|
|
+ rspData = body;
|
|
|
+ }
|
|
|
+ return rspData;
|
|
|
+ } catch (e) {
|
|
|
+ magicJS.logger.error(e);
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ const msg = `请求发生异常\n${JSON.stringify(err)}`;
|
|
|
+ magicJS.logger.error(msg);
|
|
|
+ });
|
|
|
+ if (!result) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (result.errorCode != 0 || result.result == void 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (result.result.businessCode != 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ return result.result.data;
|
|
|
+}
|
|
|
+
|
|
|
+async function getExpertsRecommendDetail(userId, lotCode, groupCode=1, ranking=1) {
|
|
|
+ const reqData = {
|
|
|
+ userId: userId,
|
|
|
+ lotCode:lotCode,
|
|
|
+ groupCode: groupCode,
|
|
|
+ ranking: ranking,
|
|
|
+ type: 0,
|
|
|
+ sort: 'desc',
|
|
|
+ s: '168noadv',
|
|
|
+ };
|
|
|
+ const queryStr = magicJS.objToQueryStr(reqData);
|
|
|
+ const url = `https://${gExpertsRecommendHost}/expertsRecommend/detail.do?${queryStr}`;
|
|
|
+ magicJS.logger.info(url);
|
|
|
+ const myRequest = {
|
|
|
+ url: url,
|
|
|
+ headers: gExpertsRecommendHeaders,
|
|
|
+ body: ``
|
|
|
+ };
|
|
|
+ let result = await magicJS.http.get(myRequest).then(response => {
|
|
|
+ try {
|
|
|
+ const body = response.body;
|
|
|
+ // magicJS.logger.info(JSON.stringify(body));
|
|
|
+ let rspData;
|
|
|
+ if (typeof body === "string") {
|
|
|
+ return {
|
|
|
+ errorCode: -1,
|
|
|
+ message: '操作失败',
|
|
|
+ result: null,
|
|
|
+ };
|
|
|
+ } else if (typeof body === "object") {
|
|
|
+ rspData = body;
|
|
|
+ }
|
|
|
+ return rspData;
|
|
|
+ } catch (e) {
|
|
|
+ magicJS.logger.error(e);
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ const msg = `请求发生异常\n${JSON.stringify(err)}`;
|
|
|
+ magicJS.logger.error(msg);
|
|
|
+ });
|
|
|
+ if (!result) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (result.errorCode != 0 || result.result == void 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (result.result.businessCode != 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ return result.result.data;
|
|
|
+}
|
|
|
+
|
|
|
+async function getLotteryPksInfo(lotCode) {
|
|
|
+ const reqData = {
|
|
|
+ iOSVersion: '2.1.64',
|
|
|
+ lotCode: lotCode,
|
|
|
+ s: '168noadv',
|
|
|
+ token: `tpM9v7lYiy0ctYv9AOlaztoyUcH9y/YR2Gt2jQT8dBd1edkFSV8Vuu%2BQ00/kNgeeksf`,
|
|
|
+ };
|
|
|
+ const queryStr = magicJS.objToQueryStr(reqData);
|
|
|
+ const url = `https://${gExpertsRecommendHost}/pks/getLotteryPksInfo.do?${queryStr}`;
|
|
|
+ magicJS.logger.info(url);
|
|
|
+ const myRequest = {
|
|
|
+ url: url,
|
|
|
+ headers: gExpertsRecommendHeaders,
|
|
|
body: ``
|
|
|
};
|
|
|
let result = await magicJS.http.get(myRequest).then(response => {
|
|
|
@@ -1032,6 +1200,8 @@ async function recognizeCaptchaByDdddocr(captchaInfo) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
function randomFloat(min, max) {
|
|
|
return Math.random() * (max - min) + min;
|
|
|
}
|