|
|
@ -23,7 +23,21 @@ json格式如下: //用户名自己写,searchdatas:搜索赚body,startdata |
|
|
|
"", |
|
|
|
"", |
|
|
|
"" |
|
|
|
] |
|
|
|
], |
|
|
|
"device":{ //设备信息
|
|
|
|
"carrier":"中国联通", |
|
|
|
"device_brand":"honor",//设备品牌
|
|
|
|
"device_id":"56122847", |
|
|
|
"device_model":"FRD-AL10",//信号
|
|
|
|
"device_platform":"android",//设备品牌
|
|
|
|
"device_type":"android",//设备品牌
|
|
|
|
"dpi":240,//设备品牌
|
|
|
|
"inner_version":"202108181034",//软件的数据,不调整
|
|
|
|
"openudid":"872e5e6fba572f6c",//安卓id android Id
|
|
|
|
"os_version":"FRD-AL10C00B396",//build id
|
|
|
|
"sm_device_id":"20211025130601d56f524bdb808de8936db94569c28b340110d2680e89602a", |
|
|
|
"rom_version":"FRD-AL10C00B396" |
|
|
|
} |
|
|
|
} |
|
|
|
改写:jammy |
|
|
|
改写主程序,改写支持安卓版,整合少林功夫猴搜索赚 |
|
|
@ -45,6 +59,8 @@ let rndtime = "" //毫秒 |
|
|
|
let httpResult //global buffer
|
|
|
|
|
|
|
|
var fs = require("fs"); |
|
|
|
const CryptoJS = require('./crypto-js') |
|
|
|
|
|
|
|
const HttpsProxyAgent = require("https-proxy-agent") |
|
|
|
const HttpProxyAgent = require("http-proxy-agent") |
|
|
|
|
|
|
@ -54,12 +70,12 @@ const HttpProxyAgent = require("http-proxy-agent") |
|
|
|
|
|
|
|
// .task desi # 指定账号执行 task zqkkzrw.js desi zqjson 1 使用'zqjson'的第一个参数 多个可以写1-3
|
|
|
|
// debug
|
|
|
|
// process.env.zqjson = 'zq_9839'
|
|
|
|
// let filename = 'e:\\Works\\Git\\github\\autotask\\othenautojob\\zqjson\\zq_9839.json';;//`./${process.env.zqjson || "./zq_yilia"}.json`;
|
|
|
|
// let kkzname = 'e:\\Works\\Git\\github\\autotask\\othenautojob\\zqjson\\zq_9839_kkz.txt';// filename.replace(/.json/, "_kkz.txt");
|
|
|
|
process.env.zqjson = 'zq_7627' |
|
|
|
let filename = 'e:\\Works\\Git\\github\\autotask\\othenautojob\\zqjson\\zq_7627.json';;//`./${process.env.zqjson || "./zq_yilia"}.json`;
|
|
|
|
let kkzTaskIds = 'e:\\Works\\Git\\github\\autotask\\othenautojob\\zqjson\\zq_kkzids.txt';// filename.replace(/.json/, "_kkz.txt");
|
|
|
|
|
|
|
|
let filename = `./${process.env.zqjson || "./zq_yilia"}.json`; |
|
|
|
let kkzname = filename.replace(/.json/, "_kkz.txt"); |
|
|
|
// let filename = `./${process.env.zqjson || "./zq_yilia"}.json`;
|
|
|
|
// let kkzTaskIds ="./zq_kkzids.txt";// filename.replace(/.json/, "_kkz.txt");
|
|
|
|
console.log(filename); |
|
|
|
let zqbody |
|
|
|
|
|
|
@ -67,9 +83,11 @@ let startArr = [], lookArr = [], searchArr = [], jsonArr = []; |
|
|
|
let gainscore = 0, lookscore = 0, searchscore = 0, boxscore = 0; |
|
|
|
let StartBody = [], LookBody = [], searchBody = []; |
|
|
|
|
|
|
|
let usernmae = "", zqjsons = "", gainbody = "", lookbody = "", zqcookie = "", kkzmodel = ""; |
|
|
|
let usernmae = "", zqjsons = "", gainbody = "", lookbody = "", zqcookie = "", kkzmodel = "",zqck=""; |
|
|
|
let useProxy = undefined; |
|
|
|
if (process.env.zqjson == "zq_9839") { |
|
|
|
|
|
|
|
//判断使用代理的账号
|
|
|
|
if (process.env.zqproxy && process.env.zqproxy.indexOf(process.env.zqjson)>-1) { |
|
|
|
console.log("使用代理服务"); |
|
|
|
useProxy = process.env.zqjson; |
|
|
|
} |
|
|
@ -137,12 +155,14 @@ async function checkEnvJson () { |
|
|
|
username = zqbody.user; |
|
|
|
zqcookie = zqbody.zqcookie; |
|
|
|
searchArr = zqbody.searchdatas; |
|
|
|
zqck = getCk(zqbody.zqcookie); |
|
|
|
|
|
|
|
//看看赚默认模式json格式,文件模式请设置为file
|
|
|
|
kkzmodel = zqbody.kkzmodel ? zqbody.kkzmodel : 'file' |
|
|
|
if (check_file_exist(kkzname) && kkzmodel != 'json') { |
|
|
|
if (check_file_exist(kkzTaskIds) && kkzmodel != 'json') { |
|
|
|
console.log(`找到看看赚body文本,选择读取文件模式\n`) |
|
|
|
let kkzbodys = '' |
|
|
|
kkzbody = fs.readFileSync(kkzname, "utf8"); |
|
|
|
kkzbody = fs.readFileSync(kkzTaskIds, "utf8"); |
|
|
|
if (kkzbody !== `undefined`) { |
|
|
|
kkzbodys = kkzbody.split("\n"); |
|
|
|
} |
|
|
@ -172,6 +192,29 @@ async function checkEnvJson () { |
|
|
|
|
|
|
|
return true |
|
|
|
} |
|
|
|
|
|
|
|
function getCk(zqcookie) |
|
|
|
{ |
|
|
|
let params = UrlParamHash(zqcookie); |
|
|
|
let zquid = params["uid"]; |
|
|
|
let zqkey = params["zqkey"]; |
|
|
|
let zqkey_id = params["zqkey_id"]; |
|
|
|
return 'uid=' + zquid + '&zqkey=' + zqkey + '&zqkey_id=' + zqkey_id |
|
|
|
} |
|
|
|
|
|
|
|
function UrlParamHash (url) { |
|
|
|
var params = [], h; |
|
|
|
//var hash = url.slice(url.indexOf("?") + 1).split('&');
|
|
|
|
|
|
|
|
var hash = url.split('&'); |
|
|
|
for (var i = 0; i < hash.length; i++) { |
|
|
|
h = hash[i].split("="); |
|
|
|
params.push(h[0]); |
|
|
|
params[h[0]] = h[1]; |
|
|
|
} |
|
|
|
return params; |
|
|
|
} |
|
|
|
|
|
|
|
//处理ck格式
|
|
|
|
function replaceCookie (zqcookieItem) { |
|
|
|
if (zqcookieItem.indexOf('cookie=') == -1 && zqcookieItem.indexOf('zqkey=') > -1) { |
|
|
@ -210,7 +253,7 @@ async function taskall () { |
|
|
|
notifyStr += `看看赚:共${lookArr.length}次任务,`; |
|
|
|
for (let k = 0; k < lookArr.length; k++) { |
|
|
|
if (lookArr[k]) { |
|
|
|
lookbody = lookArr[k]; |
|
|
|
lookbody =await encodeUserBody1(zqck,lookArr[k]);//生成看看赚的body
|
|
|
|
$.log(`----------\n🏠开始中青看点看看赚第 ${k} ${$.index + 1}次任务`) |
|
|
|
} |
|
|
|
await lookStart(); |
|
|
@ -481,6 +524,36 @@ async function end (timeout = 0) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function encodeUserBody1 (cookie, p1) { |
|
|
|
let rndtime = Math.floor(new Date().getTime() / 1000) |
|
|
|
preBody = 'p=ycTMBiVxDAfc%3D' |
|
|
|
bodyTemplate = 'access=WIFI&app-version=3.5.5&app_name=zqkd_app&app_version=3.5.5&' |
|
|
|
//bodyTemplate='access=WIFI&app-version=3.5.5&app_name=zqkd_app&app_version=3.5.5&channel=c1002&device_brand='+params["device_brand"]+'&device_id='+params["device_id"]+'&device_model='+params["device_model"]+'&device_platform=android&device_type=android&dpi='+params["dpi"]+'&inner_version='+params["inner_version"]+'&language=zh-CN&memory=3&mi=0&mobile_type=1&net_type=1&network_type=WIFI&openudid='+params["openudid"]+'&os_api='+params["os_api"]+'&os_version='+params["os_version"]+'&request_time='+rndtime+'&resolution='+params["resolution"]+'&rom_version='+params["rom_version"]+'&s_ad='+params["s_ad"]+'&s_im='+params["s_im"]+'&sm_device_id='+params["sm_device_id"]+'&storage='+params["storage"]+'&'
|
|
|
|
//console.log(bodyTemplate)
|
|
|
|
fakeSign = '&sign=573f59b726a9143335983661ca504101' |
|
|
|
key = '6HPjSZFH' |
|
|
|
|
|
|
|
replacedStr = bodyTemplate + cookie + '&task_id=' + p1 + fakeSign |
|
|
|
encodeBody = myFuncB1(replacedStr) |
|
|
|
hexBody = CryptoJS.enc.Hex.parse(encodeBody) |
|
|
|
let base64Body = CryptoJS.enc.Base64.stringify(hexBody) |
|
|
|
replaceBody3 = base64Body.replace(/\+/g, '-') |
|
|
|
replaceBody4 = replaceBody3.replace(/\//g, '_') |
|
|
|
//finalBody = preBody + replaceBody4
|
|
|
|
finalBody = preBody + encodeURIComponent(replaceBody4) + '==' |
|
|
|
return finalBody; |
|
|
|
} |
|
|
|
|
|
|
|
function myFuncB1 (data) { |
|
|
|
var a19 = CryptoJS.enc.Utf8.parse(key), |
|
|
|
b68 = CryptoJS.enc.Utf8.parse(key), |
|
|
|
b69 = CryptoJS.enc.Utf8.parse(data); |
|
|
|
return encrypted = CryptoJS.DES.encrypt(b69, a19, { |
|
|
|
'iv': b68, |
|
|
|
'mode': CryptoJS.mode.CBC, |
|
|
|
'padding': CryptoJS.pad.Pkcs7 |
|
|
|
}), encrypted.ciphertext.toString(); |
|
|
|
} |
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
function populatePostUrl (url, reqBody) { |
|
|
|