|
|
@ -20,26 +20,40 @@ let dtsignArr = [] |
|
|
|
let amount = 0, userid, txflag = 0, imei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let completeflag=0 |
|
|
|
|
|
|
|
let tel,aliname //绑定信息
|
|
|
|
|
|
|
|
!(async () => { |
|
|
|
if (typeof $request !== "undefined") { |
|
|
|
await GetRewrite() |
|
|
|
} else { |
|
|
|
if (!(await checkEnv())) return; |
|
|
|
taskId=0 |
|
|
|
tipsNum=0 |
|
|
|
money=0 |
|
|
|
|
|
|
|
for (userid of dtsignArr) { |
|
|
|
console.log(`\n=====开始用户:${userid} `) |
|
|
|
await gameSubject(userid) |
|
|
|
//await getSubect()
|
|
|
|
//await orderNext()
|
|
|
|
console.log(`\n=====开始用户:${userid} 每次刷满5000====`) |
|
|
|
await updateInfo(userid) |
|
|
|
if(imei) |
|
|
|
{ |
|
|
|
//登录
|
|
|
|
await $.wait(200) |
|
|
|
await userLogin(imei); |
|
|
|
} |
|
|
|
|
|
|
|
await $.wait(200) |
|
|
|
if (amount < 3000) { |
|
|
|
await updateRedCoupons(userid) |
|
|
|
} |
|
|
|
|
|
|
|
if (amount > 3000) { |
|
|
|
console.log(`开始抽奖卷`) |
|
|
|
txflag = 0 |
|
|
|
await onCheck(userid) |
|
|
|
} |
|
|
|
|
|
|
|
//break
|
|
|
|
} |
|
|
|
console.log(`等待3分钟开始查看提现记录`) |
|
|
|
await $.wait(100000) |
|
|
|
for (userid of dtsignArr) { |
|
|
|
console.log(`\n=========${userid}========`) |
|
|
|
await Check(userid) |
|
|
|
} |
|
|
|
|
|
|
|
await showmsg() |
|
|
@ -90,67 +104,212 @@ function encrypt(str,timestamp,userid,type){ |
|
|
|
//console.log('sign:'+sign)
|
|
|
|
return sign |
|
|
|
} |
|
|
|
async function gameSubject(userid) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/Game/gameSubject' |
|
|
|
|
|
|
|
async function updateRedCoupons (userid) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/UserInfo/updateRedCoupons' |
|
|
|
let timestamp = + new Date() |
|
|
|
let redtype = 1 |
|
|
|
let sign = encrypt(redtype, timestamp, userid) |
|
|
|
let body = `&userId=${userid}&timeStamp=${timestamp}&redType=${redtype}&iCPM=0&sign=${sign}` |
|
|
|
//console.log(body)
|
|
|
|
//let body="&userId=67397&timeStamp=1653118736569&redType=1&iCPM=0&sign=448a1bf43e6a391258e509ad6c553040";
|
|
|
|
let urlObject = populateUrlObject(url, body) |
|
|
|
await httpRequest('post', urlObject) |
|
|
|
if (!httpResult || httpResult.statusCode != 200) { return; } |
|
|
|
let result = JSON.parse(httpResult.body); |
|
|
|
if (!result) return |
|
|
|
//console.log(`${JSON.stringify(result)}`)
|
|
|
|
//{"redcoupons":"291","addRed":261,"code":0}
|
|
|
|
if (result.code == 0) { |
|
|
|
amount = result.redcoupons |
|
|
|
console.log(`账号红包:${result.redcoupons} 增加:${result.addRed}`); |
|
|
|
if (amount < 5000) await $.wait(Math.floor(Math.random() * 3000) + 1000), await updateRedCoupons(userid); |
|
|
|
} else console.log(`${JSON.stringify(result)}`) |
|
|
|
} |
|
|
|
|
|
|
|
async function updateInfo (userid) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/UserInfo/updateInfo' |
|
|
|
let timestamp = + new Date() |
|
|
|
let sign=encrypt('',timestamp,userid,2) |
|
|
|
let sign = encrypt('', '', userid) |
|
|
|
let body = `&userId=${userid}&sign=${sign}` |
|
|
|
let urlObject = populateUrlObject(url, body) |
|
|
|
await httpRequest('post', urlObject) |
|
|
|
if (!httpResult || httpResult.statusCode != 200) { return; } |
|
|
|
let result = JSON.parse(httpResult.body); |
|
|
|
if (!result) return |
|
|
|
//console.log(`${JSON.stringify(result)}`)
|
|
|
|
if (result.code == 0) { |
|
|
|
imei = result.imei || '' |
|
|
|
console.log(`imei:${imei} `); |
|
|
|
let tel = result.alipayaccount || ''; |
|
|
|
tel = '' + tel |
|
|
|
if (tel) var newTel = tel.substr(0, 3) + "****" + tel.substr(7) |
|
|
|
let aliname = result.alipayname |
|
|
|
if (aliname) var newname = aliname.substr(0, 1) + '**' + aliname.substr(2) |
|
|
|
amount = result.redcoupons |
|
|
|
console.log(`绑定:${newTel}-${newname} 答题次数:${result.answernum} 金币数:${amount}`); |
|
|
|
} else console.log(`${JSON.stringify(result)}`) |
|
|
|
} |
|
|
|
|
|
|
|
async function onAdClick (userid) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/CashOutInfo/onAdClick' |
|
|
|
let timestamp = + new Date() |
|
|
|
let sign = encrypt(imei, timestamp, userid, 3) |
|
|
|
let body = `&userId=${userid}&timeStamp=${timestamp}&sign=${sign}` |
|
|
|
//let body=`&userId=67929&timeStamp=1655892868546&sign=2c765de3eeaca1c4bd58a26d8ac4b6b2`
|
|
|
|
let urlObject = populateUrlObject(url, body) |
|
|
|
await httpRequest('post', urlObject) |
|
|
|
if (!httpResult || httpResult.statusCode != 200) { return; } |
|
|
|
let result = JSON.parse(httpResult.body); |
|
|
|
if (!result) return |
|
|
|
if(result.success = 1) { |
|
|
|
taskId=result.data.positionid |
|
|
|
//tipsNum=result.tipsNum
|
|
|
|
money=result.money |
|
|
|
console.log(`开始答题:${result.data.subject}`) |
|
|
|
//console.log(`${JSON.stringify(result)}`)
|
|
|
|
//console.log(result)
|
|
|
|
let pid=result.data.positionid |
|
|
|
let tipnum=result.tipsNum |
|
|
|
console.log(`通关:${result.yesTimes}`); |
|
|
|
await getSubect(userid,pid,taskId,tipnum,money) |
|
|
|
if (result.code == 0) { |
|
|
|
console.log(`提现任务:${result.task.curclick}/${result.task.looknum} `); |
|
|
|
txflag = 1 |
|
|
|
} else console.log(`${JSON.stringify(result)}`) |
|
|
|
} |
|
|
|
async function getSubect(userid,pid,taskId,tipnum,money) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/Subject/getSubect' |
|
|
|
|
|
|
|
async function onCheck (userid) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/CashOutInfo/onCheck' |
|
|
|
let timestamp = + new Date() |
|
|
|
let str=timestamp+'29'+userid+pid+'45^dk,mxcjwejk54d152' |
|
|
|
//console.log(str)
|
|
|
|
let sign=MD5Encrypt(str) |
|
|
|
//let body=`&userId=67929&clickType=1&taskId=12&tipsNum=15&myMoney=-3.00&timeStamp=1655892903842&sign=ffe2e4d9db73fa325aa8759da60292dc`
|
|
|
|
let body=`&userId=${userid}&clickType=1&taskId=${taskId}&tipsNum=${tipnum}&myMoney=${money}&timeStamp=${timestamp}&sign=${sign}` |
|
|
|
//console.log(body)
|
|
|
|
let sign = encrypt('', timestamp, userid) |
|
|
|
let body = `&userId=${userid}&timeStamp=${timestamp}&sign=${sign}` |
|
|
|
|
|
|
|
let urlObject = populateUrlObject(url, body) |
|
|
|
await httpRequest('post', urlObject) |
|
|
|
if (!httpResult || httpResult.statusCode != 200) { return; } |
|
|
|
let result = JSON.parse(httpResult.body); |
|
|
|
if (!result) return |
|
|
|
//console.log(`${JSON.stringify(result)}`)
|
|
|
|
//if(result.code = 0) {
|
|
|
|
console.log(`${JSON.stringify(result)}`); |
|
|
|
await orderNext(userid,pid,taskId) |
|
|
|
//}else console.log(`${result}`)
|
|
|
|
if (result.code == 0) { //提现广告次数不够
|
|
|
|
console.log(`提现卷抽奖:提现广告完成${result.task.curclick}/${result.task.looknum} 提现请求:${result.cashnum}`); |
|
|
|
if (result.cashnum <= 3) { |
|
|
|
if (result.task.curclick < 3) { |
|
|
|
console.log(`刷提现广告`) |
|
|
|
let k = 3 - result.task.curclick; |
|
|
|
for (let i = 0; i < k; i++) { |
|
|
|
await $.wait(200) |
|
|
|
await onAdClick(userid) |
|
|
|
await $.wait(Math.floor(Math.random() * 3000) + 1000) |
|
|
|
} |
|
|
|
} |
|
|
|
async function orderNext(userid,pid,taskId) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/Subject/orderNext' |
|
|
|
if (txflag == 1) { |
|
|
|
console.log(`开始获取订单号`) |
|
|
|
await $.wait(2000) |
|
|
|
await getorderId(userid) |
|
|
|
} else console.log(`刷提现广告失败,跳过`) |
|
|
|
} else console.log(`超过今日提现次数,跳过`) |
|
|
|
} else { |
|
|
|
console.log(`提现广告已完成`) |
|
|
|
console.log(`开始获取订单号`) |
|
|
|
await $.wait(2000) |
|
|
|
await getorderId(userid) |
|
|
|
} |
|
|
|
} |
|
|
|
//获取提现订单号
|
|
|
|
async function getorderId (userid) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/CashOutInfo/onCashInfo' |
|
|
|
let timestamp = + new Date() |
|
|
|
let str=pid+'1' |
|
|
|
let sign=encrypt(str,timestamp,userid,2) |
|
|
|
//let body=`&userId=67929&clickType=1&taskId=12&timeStamp=1655893008349&sign=5cf93865da770ddd2c8a0eda5cc89eb9`
|
|
|
|
let body=`&userId=${userid}&clickType=1&taskId=${taskId}&timeStamp=${timestamp}&sign=${sign}` |
|
|
|
//console.log(body)
|
|
|
|
let sign = encrypt('', timestamp, userid) |
|
|
|
let body = `&userId=${userid}&index=1001&timeStamp=${timestamp}&sign=${sign}` |
|
|
|
|
|
|
|
//let body=`&userId=67397&index=1001&timeStamp=1653119253837&sign=b7dd25fdf10fde6fe8e580e5b9fd7458`
|
|
|
|
let urlObject = populateUrlObject(url, body) |
|
|
|
await httpRequest('post', urlObject) |
|
|
|
if (!httpResult || httpResult.statusCode != 200) { return; } |
|
|
|
let result = JSON.parse(httpResult.body); |
|
|
|
//console.log(`${JSON.stringify(result)}`)
|
|
|
|
if (!result) return |
|
|
|
console.log(`${JSON.stringify(result)}`) |
|
|
|
if (result.code == 1) { |
|
|
|
orderId = result.orderId |
|
|
|
console.log(`订单号:${result.orderId}`); |
|
|
|
console.log(`开始提现`) |
|
|
|
await $.wait(2000) |
|
|
|
await cashOrder(orderId) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
async function cashOrder (orderId) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/CashOutInfo/cashOrder' |
|
|
|
let timestamp = + new Date() |
|
|
|
let sign = encrypt(orderId, timestamp, userid, 2) |
|
|
|
let body = `&userId=${userid}&orderId=${orderId}&timeStamp=${timestamp}&sign=${sign}` |
|
|
|
|
|
|
|
//let body=`&userId=67011&orderId=89716&timeStamp=1653026060663&sign=1a8cd53ed634277771bae755b7427206`
|
|
|
|
let urlObject = populateUrlObject(url, body) |
|
|
|
await httpRequest('post', urlObject) |
|
|
|
//console.log(urlObject)
|
|
|
|
if (!httpResult || httpResult.statusCode != 200) { return; } |
|
|
|
let result = JSON.parse(httpResult.body); |
|
|
|
if (!result) return |
|
|
|
//console.log(`${JSON.stringify(result)}`)
|
|
|
|
if (result.code == 1) { |
|
|
|
console.log(`提现:${result.price} 剩余:${result.data.redcoupons}`); |
|
|
|
} else console.log(`${JSON.stringify(result)}`) |
|
|
|
} |
|
|
|
//提现列表
|
|
|
|
async function Check (userid) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/CashRecord/cashPayList' |
|
|
|
let timestamp = + new Date() |
|
|
|
let sign = encrypt('0', timestamp, userid, 3) |
|
|
|
let body = `&userId=${userid}&page=0&timeStamp=${timestamp}&sign=${sign}` |
|
|
|
|
|
|
|
//let body=`&userId=67397&page=0&timeStamp=1653120151688&sign=657d5b23be5d898c1bce24df55f658dd`
|
|
|
|
let urlObject = populateUrlObject(url, body) |
|
|
|
await httpRequest('post', urlObject) |
|
|
|
//console.log(urlObject)
|
|
|
|
if (!httpResult || httpResult.statusCode != 200) { return; } |
|
|
|
let result = JSON.parse(httpResult.body); |
|
|
|
if (!result) return |
|
|
|
//console.log(`${JSON.stringify(result)}`)
|
|
|
|
if (result.maxPage == 1) { |
|
|
|
let lists = result.data |
|
|
|
let i = 1 |
|
|
|
for (let list of lists) { |
|
|
|
if (i > 10) break; |
|
|
|
console.log(`金额:${list.cashout} 时间:${list.creatertime} 状态:${list.state}`) |
|
|
|
i++ |
|
|
|
} |
|
|
|
} else console.log(`${JSON.stringify(result)}`) |
|
|
|
} |
|
|
|
|
|
|
|
async function updatealipay (userid) { |
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/UserInfo/updateAlipay' |
|
|
|
let timestamp = + new Date() |
|
|
|
let newname = encodeURIComponent(accname) |
|
|
|
let str = account + accname |
|
|
|
let sign = encrypt(str, timestamp, userid) |
|
|
|
let body = `&userId=${userid}&account=${account}&name=${newname}&timeStamp=${timestamp}&sign=${sign}` |
|
|
|
let urlObject = populateUrlObject(url, body) |
|
|
|
await httpRequest('post', urlObject) |
|
|
|
if (!httpResult || httpResult.statusCode != 200) { return; } |
|
|
|
let result = JSON.parse(httpResult.body); |
|
|
|
if (!result) return |
|
|
|
console.log(`${JSON.stringify(result)}`) |
|
|
|
if (result.code == 0) { |
|
|
|
//console.log(`绑定:result.msg`);
|
|
|
|
} else console.log(`${JSON.stringify(result)}`) |
|
|
|
} |
|
|
|
|
|
|
|
async function userLogin(IMEI) |
|
|
|
{ |
|
|
|
//http://dati.dspmz.com/idiomgame/?s=/UserInfo/userLogin
|
|
|
|
//&IMEI=9fbdbfc9983c87c1f2ad3266a8d841cb&msaOAID=&verSDK=29&activeIP=&channelId=win_channel_1
|
|
|
|
let url = 'http://dati.dspmz.com/idiomgame/?s=/UserInfo/userLogin' |
|
|
|
let body = `&IMEI=${IMEI}&msaOAID=&verSDK=29&activeIP=&channelId=win_channel_1` |
|
|
|
//console.log(body)
|
|
|
|
//let body="&userId=67397&timeStamp=1653118736569&redType=1&iCPM=0&sign=448a1bf43e6a391258e509ad6c553040";
|
|
|
|
let urlObject = populateUrlObject(url, body) |
|
|
|
await httpRequest('post', urlObject) |
|
|
|
if (!httpResult || httpResult.statusCode != 200) { return; } |
|
|
|
let result = JSON.parse(httpResult.body); |
|
|
|
console.log(`${JSON.stringify(result)}`) |
|
|
|
|
|
|
|
if (!result || result.code != 1) return undefined; |
|
|
|
|
|
|
|
return result.userid; |
|
|
|
console.log(`${JSON.stringify(result)}`) |
|
|
|
} |
|
|
|
/////////////////////////////////
|
|
|
|
function populateUrlObject (url, body = '') { |
|
|
|
let host = url.replace('//', '/').split('/')[1] |
|
|
@ -160,7 +319,7 @@ function populateUrlObject(url,body=''){ |
|
|
|
'Accept-Encoding': 'identity', |
|
|
|
'Content-type': 'application/x-www-form-urlencoded', |
|
|
|
'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 10; V1838A Build/QP1A.190711.020)', |
|
|
|
'Host': host, |
|
|
|
'Host': 'dati.dspmz.com', |
|
|
|
'Connection': 'Keep-Alive' |
|
|
|
//Content-Length: 75
|
|
|
|
}, |
|
|
|