|
|
@@ -22,22 +22,22 @@ let gCaiLeToken = `d16e47c3aa4fa856032da779e7467790fac7f93c`;
|
|
|
let gCaiLeNewrelic = `ewoiZCI6IHsKImFjIjogIjM5NTQxNDYiLAoiYXAiOiAiNjAxMzk5MzYzIiwKImlkIjogIjQ3YWY3ZjdhNDZjNjVkZmMiLAoidGkiOiAxNzE5NzUzNzE4NTM2LAoidHIiOiAiMzAxZDlkMjI2NGUxZTBlMjNiZTY4ZTRlNTVkNDFmNmYiLAoidHkiOiAiTW9iaWxlIgp9LAoidiI6IFsKMCwKMgpdCn0=`;
|
|
|
|
|
|
const gCaiLeHeaders = {
|
|
|
- 'systemversion' : `16.6.1`,
|
|
|
- 'tracestate' : `3954146@nr=0-2-3954146-601399363-47af7f7a46c65dfc--0--1719753718536`,
|
|
|
- 'Connection' : `keep-alive`,
|
|
|
- 'Accept-Encoding' : `gzip, deflate, br`,
|
|
|
- 'newrelic' : gCaiLeNewrelic,
|
|
|
- 'X-NewRelic-ID' : `Vw8CVVdXDhAGVFBRDggEUFc=`,
|
|
|
- 'traceparent' : `00-301d9d2264e1e0e23be68e4e55d41f6f-47af7f7a46c65dfc-00`,
|
|
|
- 'Content-Type' : `application/json`,
|
|
|
- 'os' : `ios`,
|
|
|
- 'User-Agent' : gCaiLeUserAgent,
|
|
|
- 'token' : gCaiLeToken,
|
|
|
- 'Host' : gCaiLeHost,
|
|
|
- 'apuid' : `sg282zfK1ZE5G`,//13位
|
|
|
- 'appv' : `3.0.48`,
|
|
|
- 'Accept-Language' : `zh-CN,zh-Hans;q=0.9`,
|
|
|
- 'Accept' : `application/json, text/plain, */*`
|
|
|
+ 'systemversion': `16.6.1`,
|
|
|
+ 'tracestate': `3954146@nr=0-2-3954146-601399363-47af7f7a46c65dfc--0--1719753718536`,
|
|
|
+ 'Connection': `keep-alive`,
|
|
|
+ 'Accept-Encoding': `gzip, deflate, br`,
|
|
|
+ 'newrelic': gCaiLeNewrelic,
|
|
|
+ 'X-NewRelic-ID': `Vw8CVVdXDhAGVFBRDggEUFc=`,
|
|
|
+ 'traceparent': `00-301d9d2264e1e0e23be68e4e55d41f6f-47af7f7a46c65dfc-00`,
|
|
|
+ 'Content-Type': `application/json`,
|
|
|
+ 'os': `ios`,
|
|
|
+ 'User-Agent': gCaiLeUserAgent,
|
|
|
+ 'token': gCaiLeToken,
|
|
|
+ 'Host': gCaiLeHost,
|
|
|
+ 'apuid': `sg282zfK1ZE5G`,//13位
|
|
|
+ 'appv': `3.0.48`,
|
|
|
+ 'Accept-Language': `zh-CN,zh-Hans;q=0.9`,
|
|
|
+ 'Accept': `application/json, text/plain, */*`
|
|
|
};
|
|
|
|
|
|
|
|
|
@@ -45,7 +45,7 @@ let gRetBody;
|
|
|
async function Main() {
|
|
|
if (magicJS.isRequest) {
|
|
|
checkHandleRequest();
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
updateRequestHeaders();
|
|
|
await doTestBet();
|
|
|
}
|
|
|
@@ -91,9 +91,9 @@ function getResponsePlainData() {
|
|
|
if (!data) {
|
|
|
return;
|
|
|
}
|
|
|
- try{
|
|
|
+ try {
|
|
|
return JSON.parse(data);
|
|
|
- } catch(err){
|
|
|
+ } catch (err) {
|
|
|
magicJS.logger.error(err);
|
|
|
}
|
|
|
}
|
|
|
@@ -133,31 +133,31 @@ function handleTokenAndCookie() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-async function doNetworkTest(){
|
|
|
+async function doNetworkTest() {
|
|
|
const url = `https://${gCaiLeHost}/network-test?t=${Date.now()}`;
|
|
|
let result = await clyRequest('get', url);
|
|
|
return result == 'OK';
|
|
|
}
|
|
|
|
|
|
|
|
|
-async function doTestBet(){
|
|
|
+async function doTestBet() {
|
|
|
let drawIssue = magicJS.data.read('168_PksPlanDrawIssueCustom', null);
|
|
|
- if(!drawIssue){
|
|
|
+ if (!drawIssue) {
|
|
|
drawIssue = magicJS.data.read('168_PksPlanPreDrawIssue', null);
|
|
|
}
|
|
|
let planStr = magicJS.data.read('168_PksPlanCustom', null);
|
|
|
- if(!drawIssue || !planStr){
|
|
|
+ if (!drawIssue || !planStr) {
|
|
|
return;
|
|
|
}
|
|
|
drawIssue = String(drawIssue);
|
|
|
planStr = String(planStr);
|
|
|
- if(planStr.length == 0){
|
|
|
+ if (planStr.length == 0) {
|
|
|
return;
|
|
|
}
|
|
|
let betRet = await doDragonBet(drawIssue, planStr, 1);
|
|
|
- if(!betRet){
|
|
|
+ if (!betRet) {
|
|
|
let loginRet = await tryReLogin();
|
|
|
- if(!loginRet){
|
|
|
+ if (!loginRet) {
|
|
|
return;
|
|
|
}
|
|
|
betRet = await doDragonBet(drawIssue, planStr, 1);
|
|
|
@@ -165,11 +165,11 @@ async function doTestBet(){
|
|
|
return betRet;
|
|
|
}
|
|
|
|
|
|
-async function doDragonBet(drawIssue, planStr, betAmount){
|
|
|
+async function doDragonBet(drawIssue, planStr, betAmount) {
|
|
|
let lotteryType = 'SGFT';
|
|
|
let numArr = planStr.split(',');
|
|
|
let bets = [];
|
|
|
- for(let i=0; i < numArr.length; i++){
|
|
|
+ for (let i = 0; i < numArr.length; i++) {
|
|
|
let numStr = numArr[i].trim();
|
|
|
let element = {
|
|
|
amount: betAmount,
|
|
|
@@ -194,27 +194,27 @@ async function doDragonBet(drawIssue, planStr, betAmount){
|
|
|
}
|
|
|
|
|
|
|
|
|
-async function tryReLogin(){
|
|
|
+async function tryReLogin() {
|
|
|
let captchaRet = await doGenerateCaptcha();
|
|
|
- if(!captchaRet || captchaRet.statusCode != 200){
|
|
|
+ if (!captchaRet || captchaRet.statusCode != 200) {
|
|
|
return;
|
|
|
}
|
|
|
let recognizeRet = await tryAutoRecognizeCaptcha('ddddocr', captchaRet.result);
|
|
|
- if(!recognizeRet){
|
|
|
+ if (!recognizeRet) {
|
|
|
return;
|
|
|
}
|
|
|
let validateRet = await doValidateCaptcha(recognizeRet.uuid, recognizeRet.positionX, recognizeRet.positionY);
|
|
|
- if(!validateRet || validateRet.statusCode != 200){
|
|
|
+ if (!validateRet || validateRet.statusCode != 200) {
|
|
|
return;
|
|
|
}
|
|
|
let vFinalResult = validateRet.result;
|
|
|
- if(vFinalResult.status != 'OK'){
|
|
|
+ if (vFinalResult.status != 'OK') {
|
|
|
return;
|
|
|
}
|
|
|
let username = 'aiyo21';
|
|
|
let password = 'aiyo510520';
|
|
|
let loginRet = await doLogin(username, password, vFinalResult.code, vFinalResult.cryptograph);
|
|
|
- if(!loginRet || loginRet.statusCode != 0){
|
|
|
+ if (!loginRet || loginRet.statusCode != 0) {
|
|
|
return;
|
|
|
}
|
|
|
let newToken = loginRet.token;
|
|
|
@@ -225,7 +225,7 @@ async function tryReLogin(){
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-async function doLogin(username, password, code, cryptograph){
|
|
|
+async function doLogin(username, password, code, cryptograph) {
|
|
|
const url = `https://${gCaiLeHost}/rest/login`;
|
|
|
let reqData = {
|
|
|
username: username,
|
|
|
@@ -239,7 +239,7 @@ async function doLogin(username, password, code, cryptograph){
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
-async function doValidateCaptcha(uuid, positionX, positionY){
|
|
|
+async function doValidateCaptcha(uuid, positionX, positionY) {
|
|
|
const url = `https://${gCaiLeHost}/rest/captcha/validate`;
|
|
|
let reqData = {
|
|
|
uuid: uuid,
|
|
|
@@ -250,7 +250,7 @@ async function doValidateCaptcha(uuid, positionX, positionY){
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
-async function doGenerateCaptcha(){
|
|
|
+async function doGenerateCaptcha() {
|
|
|
const url = `https://${gCaiLeHost}/rest/captcha/generate`;
|
|
|
let result = await clyRequest('get', url);
|
|
|
return result;
|
|
|
@@ -312,7 +312,7 @@ async function recognizeCaptchaByDdddocr(captchaInfo) {
|
|
|
const msg = `请求滑块验证异常\n${JSON.stringify(err)}`;
|
|
|
magicJS.logger.error(msg);
|
|
|
});
|
|
|
- if(result){
|
|
|
+ if (result) {
|
|
|
result.uuid = uuid;
|
|
|
}
|
|
|
return result;
|
|
|
@@ -330,7 +330,7 @@ function generateRandString(length) {
|
|
|
|
|
|
async function clyRequest(method, url, reqData) {
|
|
|
let nowTime = Date.now();
|
|
|
- let newrelicData ={
|
|
|
+ let newrelicData = {
|
|
|
"d": {
|
|
|
"ac": "3954146",
|
|
|
"ap": "601399363",
|
|
|
@@ -339,7 +339,7 @@ async function clyRequest(method, url, reqData) {
|
|
|
"tr": "301d9d2264e1e0e23be68e4e55d41f6f",
|
|
|
"ty": "Mobile"
|
|
|
},
|
|
|
- "v": [ 0, 2 ]
|
|
|
+ "v": [0, 2]
|
|
|
};
|
|
|
let tracestate = `${newrelicData.d.ac}@nr=0-2-${newrelicData.d.ac}-${newrelicData.d.ap}-${newrelicData.d.id}--0--${newrelicData.d.ti}`;
|
|
|
let traceparent = `00-${newrelicData.d.tr}-${newrelicData.d.id}-00`;
|