/ *
获取token 自动刷题得分
# new Env ( "猜歌提现-小程序" )
# cron 13 22 * * * xcx_cgfh_withdraw . js
* /
const jobname = '猜歌'
const $ = Env ( jobname )
const notify = $ . isNode ( ) ? require ( './sendNotify' ) : '' ;
const notifyFlag = ( $ . isNode ( ) ? process . env . fknotify : $ . getdata ( 'fknotify' ) ) || 0 ; //0为关闭通知,1为打开通知,默认为0
let tsxx = '' , tsflag = 0 //推送信息
// token 数据
let userid = ( $ . isNode ( ) ? process . env . cgfhtoken : $ . getdata ( 'cgfhtoken' ) ) ;
let useridArr = [
'we7sid-48df10ceeb555a4f643d410c22944ac5' ,
'we7sid-f405797d10fe44035c937f409e1d9531' ,
'we7sid-061b3347e26640fff729986e25cc08d1' ,
'we7sid-cdc45758af4a80667db6799c315de80b' ,
'we7sid-d84303f9a35ad508f9ca24b027a5a024'
]
let power , cashaccount , answercount
! ( async ( ) => {
if ( typeof $request !== "undefined" ) {
await GetRewrite ( )
} else {
if ( ! ( await checkEnv ( ) ) ) return ;
let i = 0
for ( userid of useridArr ) {
i += 1
console . log ( ` \n ===开始第 ${ i } 个账号=== ` )
console . log ( ` ---余额查询 ` )
await $ . wait ( 1200 )
await acc3 ( userid ) //余额
await $ . wait ( 1200 )
await acc33 ( userid ) //通过次数
for ( let f = 0 ; f < 5 ; f ++ ) {
console . log ( ` \n ===开始第 ${ f + 1 } 次答题,剩余体力: ${ power } ` )
redbag = 0
if ( power < 3 ) {
console . log ( ` ---体力不够,增加体力 ` )
await acc0 ( userid )
await $ . wait ( 1200 )
power += 3
} //else console.log(`剩余体力:${power}`)
console . log ( ` ---关卡查询 ` )
await $ . wait ( 1000 )
await acc ( userid )
await $ . wait ( 1000 )
await acc1 ( userid )
await $ . wait ( 1200 )
await acc2 ( userid )
await $ . wait ( 1200 )
await acc22 ( userid )
await $ . wait ( 1200 )
await acc11 ( userid )
power -= 1
}
if ( redbag >= 1790 ) {
console . log ( ` ---兑换查询 ` )
await acc4 ( userid )
await $ . wait ( 500 )
} //else console.log(`红包不够,跳过`)
console . log ( ` ---结算查询 ` )
await acc3 ( userid )
await $ . wait ( 500 )
await acc33 ( userid )
await $ . wait ( 500 )
if ( cashaccount > 1 && answercount > 188 ) await withdraw ( userid )
}
//await showmsg()
}
} ) ( )
. catch ( ( e ) => $ . logErr ( e ) )
. finally ( ( ) => $ . done ( ) )
async function checkEnv ( ) {
if ( userid ) {
for ( let dt of userid . split ( '@' ) ) {
if ( dt ) useridArr . push ( dt )
}
} else {
//console.log('未找到tokenCK')
if ( useridArr . length < 1 ) return ;
}
console . log ( ` 共找到 ${ useridArr . length } 个账号 ` )
return true ;
}
//通知
async function showmsg ( ) {
notifyBody = "运行通知\n" + tsxx
if ( notifyFlag != 1 ) {
if ( tsflag ) { if ( $ . isNode ( ) ) { await notify . sendNotify ( $ . name , notifyBody ) ; } }
console . log ( notifyBody ) ;
tsflag = 0
}
if ( notifyFlag == 1 ) {
$ . msg ( notifyBody ) ;
console . log ( notifyBody ) ;
if ( $ . isNode ( ) ) { await notify . sendNotify ( $ . name , notifyBody ) ; }
}
}
//个人信息
async function acc33 ( ) {
let url = ` https://nb.xinhuachuanmeijs.com/app/index.php?i=51&t=0&v=1.0.6&from=wxapp&c=entry&a=wxapp&do=cmd&&state= ${ userid } &m=niuuniu_dvr_muti&sign=986688499c1e4084542fc6d9989e91d1 `
let body = ` {"execRaw":"eyJjbWQiOiJXRUFQUC53aWR0aGRyYXdhbENvbmZpZyIsInBhcmFtcyI6e319"} `
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 . errno == 0 ) {
answercount = result . data . userAnswerCount
console . log ( ` 通过次数: ${ result . data . userAnswerCount } ` )
} else console . log ( ` ${ JSON . stringify ( result ) } ` )
}
async function acc0 ( ) {
let url = ` https://nb.xinhuachuanmeijs.com/app/index.php?i=51&t=0&v=1.0.6&from=wxapp&c=entry&a=wxapp&do=cmd&&state= ${ userid } &m=niuuniu_dvr_muti&sign=986688499c1e4084542fc6d9989e91d1 `
let body = ` {"execRaw":"eyJjbWQiOiJXRUFQUC5hZGRQaHlzaWNhbFN0cmVuZ3RoIiwicGFyYW1zIjp7fX0="} `
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 . errno == 0 ) {
console . log ( ` 体力增加 ${ result . data . add_physical_strength } ` )
} else console . log ( ` ${ JSON . stringify ( result ) } ` )
}
//开始新关
async function acc ( ) {
let url = ` https://nb.xinhuachuanmeijs.com/app/index.php?i=51&t=0&v=1.0.6&from=wxapp&c=entry&a=wxapp&do=cmd&&state= ${ userid } &m=niuuniu_dvr_muti&sign=986688499c1e4084542fc6d9989e91d1 `
let body = ` {"execRaw":"eyJjbWQiOiJXRUFQUC5kZWR1Y3Rpb25QaHlzaWNhbFN0cmVuZ3RoIiwicGFyYW1zIjp7fX0="} `
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 . errno == 0 ) {
console . log ( ` 体力 ${ result . data . physical_strength } 进下一关 ` )
} else console . log ( ` ${ JSON . stringify ( result ) } ` )
}
//获取新关卡
async function acc1 ( ) {
let url = ` https://nb.xinhuachuanmeijs.com/app/index.php?i=51&t=0&v=1.0.6&from=wxapp&c=entry&a=wxapp&do=cmd&&state= ${ userid } &m=niuuniu_dvr_muti&sign=986688499c1e4084542fc6d9989e91d1 `
let body = ` {"execRaw":"eyJjbWQiOiJXRUFQUC51c2VyR2V0U3ViamVjdCIsInBhcmFtcyI6eyJ0eXBlIjoiMSJ9fQ=="} `
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 . errno == 0 ) {
id = result . data . id
id2 = result . data . log_id
console . log ( ` 任务id: ${ result . data . id } 任务id2: ${ result . data . log_id } ` )
console . log ( ` 视频标题: ${ result . data . title } ` ) ;
} else console . log ( ` ${ JSON . stringify ( result ) } ` )
}
async function acc11 ( ) {
let url = ` https://nb.xinhuachuanmeijs.com/app/index.php?i=51&t=0&v=1.0.6&from=wxapp&c=entry&a=wxapp&do=cmd&&state= ${ userid } &m=niuuniu_dvr_muti&sign=986688499c1e4084542fc6d9989e91d1 `
let body = ` {"execRaw":"eyJjbWQiOiJXRUFQUC5sb2dpbkRhdGEiLCJwYXJhbXMiOnt9fQ=="} `
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 . errno == 0 ) {
console . log ( ` 状态: ${ result . data . red_envelope } ` )
} else console . log ( ` ${ JSON . stringify ( result ) } ` )
}
//开红包
async function acc2 ( ) {
let url = ` https://nb.xinhuachuanmeijs.com/app/index.php?i=51&t=0&v=1.0.6&from=wxapp&c=entry&a=wxapp&do=cmd&&state= ${ userid } &m=niuuniu_dvr_muti&sign=723f345b3684b33b296f88a3ab8a2cf5 `
red = ` {"cmd":"WEAPP.userGetSubjectAnswer","params":{"id":" ${ id } ","answer":0,"log_id":" ${ id2 } "}} `
a = Base64 . encode ( red )
let body = ` {"execRaw":" ${ a } "} `
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 . errno == 0 ) {
console . log ( ` 模拟答题成功 ` ) ;
console . log ( ` 红包预增加: ${ result . data . red_envelope } ` ) ;
} else console . log ( ` ${ JSON . stringify ( result ) } ` )
}
//开红包
async function acc22 ( ) {
let url = ` https://nb.xinhuachuanmeijs.com/app/index.php?i=51&t=0&v=1.0.6&from=wxapp&c=entry&a=wxapp&do=cmd&&state= ${ userid } &m=niuuniu_dvr_muti&sign=723f345b3684b33b296f88a3ab8a2cf5 `
red = ` {"cmd":"WEAPP.userSubjectAnserByVideo","params":{"id":" ${ id } ","log_id":" ${ id2 } "}} `
a = Base64 . encode ( red )
let body = ` {"execRaw":" ${ a } "} `
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 . errno == 0 ) {
console . log ( ` 红包增加: ${ result . data . red_envelope } ` ) ;
} else console . log ( ` ${ JSON . stringify ( result ) } ` )
}
//个人信息
async function acc3 ( ) {
let url = ` https://nb.xinhuachuanmeijs.com/app/index.php?i=51&t=0&v=1.0.6&from=wxapp&c=entry&a=wxapp&do=cmd&&state= ${ userid } &m=niuuniu_dvr_muti&sign=986688499c1e4084542fc6d9989e91d1 `
let body = ` {"execRaw":"eyJjbWQiOiJXRUFQUC51c2VyQmFzZUluZm8iLCJwYXJhbXMiOnt9fQ=="} `
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 . errno == 0 ) {
redbag = result . data . redEnvelope
power = result . data . physicalStrength
cashaccount = result . data . cashAccount
console . log ( ` 红包: ${ result . data . redEnvelope } 余额: ${ result . data . cashAccount } 体力: ${ result . data . physicalStrength } ` )
} else console . log ( ` ${ JSON . stringify ( result ) } ` )
}
//红包换余额
async function acc4 ( ) {
let url = ` https://nb.xinhuachuanmeijs.com/app/index.php?i=51&t=0&v=1.0.6&from=wxapp&c=entry&a=wxapp&do=cmd&&state= ${ userid } &m=niuuniu_dvr_muti&sign=986688499c1e4084542fc6d9989e91d1 `
let body = ` {"execRaw":"eyJjbWQiOiJXRUFQUC5yZWRFeGVjaGFuZ2UiLCJwYXJhbXMiOnt9fQ=="} `
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 . errno == 0 ) {
console . log ( ` 兑换: ${ Math . round ( result . data . price / 10 ) / 10 } 元 ` )
} else console . log ( ` ${ JSON . stringify ( result ) } ` )
}
//提现
async function withdraw ( ) {
let url = ` https://nb.xinhuachuanmeijs.com/app/index.php?i=51&t=0&v=1.0.6&from=wxapp&c=entry&a=wxapp&do=cmd&&state= ${ userid } &m=niuuniu_dvr_muti&sign=4941674b0b582468f6ca3f9c080d3419 `
let body = ` {"execRaw":"eyJjbWQiOiJXRUFQUC53aWR0aGRyYXdhbENvbmZpZyIsInBhcmFtcyI6e319"} `
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 . errno == 0 ) {
//console.log(`兑换:${Math.round(result.data.price/10)/10}元`)
} //else console.log(`${JSON.stringify(result)}`)
}
/////////////////////////////////
function populateUrlObject ( url , body = '' ) {
let host = url . replace ( '//' , '/' ) . split ( '/' ) [ 1 ]
let urlObject = {
url : url ,
headers : {
"Accept-Encoding" : "gzip,compress,br,deflate" ,
"Connection" : "keep-alive" ,
"Content-Length" : "126" ,
"Host" : "nb.xinhuachuanmeijs.com" ,
"Referer" : "https://servicewechat.com/wxb3b95e4f093dad86/3/page-frame.html" ,
"User-Agent" : "Mozilla/5.0 (iPhone; CPU iPhone OS 14_8 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.20(0x18001442) NetType/WIFI Language/zh_CN" ,
"content-type" : "application/json" } ,
}
if ( body ) urlObject . body = body
return urlObject ;
}
async function httpRequest ( method , url ) {
httpResult = null
return new Promise ( ( resolve ) => {
$ [ method ] ( url , async ( err , resp , data ) => {
try {
if ( err ) {
console . log ( ` ${ method } 请求失败 ` ) ;
console . log ( JSON . stringify ( err ) ) ;
$ . logErr ( err ) ;
} else {
httpResult = resp ;
}
} catch ( e ) {
$ . logErr ( e , resp ) ;
} finally {
resolve ( ) ;
}
} ) ;
} ) ;
}
function safeGet ( data ) {
try {
if ( typeof JSON . parse ( data ) == "object" ) {
return true ;
} else {
console . log ( data )
}
} catch ( e ) {
console . log ( e ) ;
console . log ( ` 服务器访问数据为空,请检查自身设备网络情况 ` ) ;
return false ;
}
}
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 ;
}
//解码
function decodeUnicode ( str ) {
str = str . replace ( /\\/g , "%" ) ;
return unescape ( str ) ;
}
//AES/DES加解密,CryptoJS
function EncryptCrypto ( method , mode , padding , message , key , iv ) {
return CryptoJS [ method ] . encrypt (
CryptoJS . enc . Utf8 . parse ( message ) ,
CryptoJS . enc . Utf8 . parse ( key ) ,
{ mode : CryptoJS . mode [ mode ] , padding : CryptoJS . pad [ padding ] , iv : CryptoJS . enc . Utf8 . parse ( iv ) }
) . ciphertext . toString ( CryptoJS . enc . Base64 ) ;
}
function DecryptCrypto ( method , mode , padding , message , key , iv ) {
return CryptoJS [ method ] . decrypt (
{ ciphertext : CryptoJS . enc . Base64 . parse ( message ) } ,
CryptoJS . enc . Utf8 . parse ( key ) ,
{ mode : CryptoJS . mode [ mode ] , padding : CryptoJS . pad [ padding ] , iv : CryptoJS . enc . Utf8 . parse ( iv ) }
) . toString ( CryptoJS . enc . Utf8 ) ;
}
//Base64加解密
var Base64 = { _ keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" , encode : function ( e ) { var t = "" ; var n , r , i , s , o , u , a ; var f = 0 ; e = Base64 . _ utf8_encode ( e ) ; while ( f < e . length ) { n = e . charCodeAt ( f ++ ) ; r = e . charCodeAt ( f ++ ) ; i = e . charCodeAt ( f ++ ) ; s = n >> 2 ; o = ( n & 3 ) << 4 | r >> 4 ; u = ( r & 15 ) << 2 | i >> 6 ; a = i & 63 ; if ( isNaN ( r ) ) { u = a = 64 } else if ( isNaN ( i ) ) { a = 64 } t = t + this . _ keyStr . charAt ( s ) + this . _ keyStr . charAt ( o ) + this . _ keyStr . charAt ( u ) + this . _ keyStr . charAt ( a ) } return t } , decode : function ( e ) { var t = "" ; var n , r , i ; var s , o , u , a ; var f = 0 ; e = e . replace ( /[^A-Za-z0-9+/=]/g , "" ) ; while ( f < e . length ) { s = this . _ keyStr . indexOf ( e . charAt ( f ++ ) ) ; o = this . _ keyStr . indexOf ( e . charAt ( f ++ ) ) ; u = this . _ keyStr . indexOf ( e . charAt ( f ++ ) ) ; a = this . _ keyStr . indexOf ( e . charAt ( f ++ ) ) ; n = s << 2 | o >> 4 ; r = ( o & 15 ) << 4 | u >> 2 ; i = ( u & 3 ) << 6 | a ; t = t + String . fromCharCode ( n ) ; if ( u != 64 ) { t = t + String . fromCharCode ( r ) } if ( a != 64 ) { t = t + String . fromCharCode ( i ) } } t = Base64 . _ utf8_decode ( t ) ; return t } , _ utf8_encode : function ( e ) { e = e . replace ( /rn/g , "n" ) ; var t = "" ; for ( var n = 0 ; n < e . length ; n ++ ) { var r = e . charCodeAt ( n ) ; if ( r < 128 ) { t += String . fromCharCode ( r ) } else if ( r > 127 && r < 2048 ) { t += String . fromCharCode ( r >> 6 | 192 ) ; t += String . fromCharCode ( r & 63 | 128 ) } else { t += String . fromCharCode ( r >> 12 | 224 ) ; t += String . fromCharCode ( r >> 6 & 63 | 128 ) ; t += String . fromCharCode ( r & 63 | 128 ) } } return t } , _ utf8_decode : function ( e ) { var t = "" ; var n = 0 ; var r = c1 = c2 = 0 ; while ( n < e . length ) { r = e . charCodeAt ( n ) ; if ( r < 128 ) { t += String . fromCharCode ( r ) ; n ++ } else if ( r > 191 && r < 224 ) { c2 = e . charCodeAt ( n + 1 ) ; t += String . fromCharCode ( ( r & 31 ) << 6 | c2 & 63 ) ; n += 2 } else { c2 = e . charCodeAt ( n + 1 ) ; c3 = e . charCodeAt ( n + 2 ) ; t += String . fromCharCode ( ( r & 15 ) << 12 | ( c2 & 63 ) << 6 | c3 & 63 ) ; n += 3 } } return t } }
//MD5
function MD5Encrypt ( a ) { function b ( a , b ) { return a << b | a >>> 32 - b } function c ( a , b ) { var c , d , e , f , g ; return e = 2147483648 & a , f = 2147483648 & b , c = 1073741824 & a , d = 1073741824 & b , g = ( 1073741823 & a ) + ( 1073741823 & b ) , c & d ? 2147483648 ^ g ^ e ^ f : c | d ? 1073741824 & g ? 3221225472 ^ g ^ e ^ f : 1073741824 ^ g ^ e ^ f : g ^ e ^ f } function d ( a , b , c ) { return a & b | ~ a & c } function e ( a , b , c ) { return a & c | b & ~ c } function f ( a , b , c ) { return a ^ b ^ c } function g ( a , b , c ) { return b ^ ( a | ~ c ) } function h ( a , e , f , g , h , i , j ) { return a = c ( a , c ( c ( d ( e , f , g ) , h ) , j ) ) , c ( b ( a , i ) , e ) } function i ( a , d , f , g , h , i , j ) { return a = c ( a , c ( c ( e ( d , f , g ) , h ) , j ) ) , c ( b ( a , i ) , d ) } function j ( a , d , e , g , h , i , j ) { return a = c ( a , c ( c ( f ( d , e , g ) , h ) , j ) ) , c ( b ( a , i ) , d ) } function k ( a , d , e , f , h , i , j ) { return a = c ( a , c ( c ( g ( d , e , f ) , h ) , j ) ) , c ( b ( a , i ) , d ) } function l ( a ) { for ( var b , c = a . length , d = c + 8 , e = ( d - d % 64 ) / 64 , f = 16 * ( e + 1 ) , g = new Array ( f - 1 ) , h = 0 , i = 0 ; c > i ; ) b = ( i - i % 4 ) / 4 , h = i % 4 * 8 , g [ b ] = g [ b ] | a . charCodeAt ( i ) << h , i ++ ; return b = ( i - i % 4 ) / 4 , h = i % 4 * 8 , g [ b ] = g [ b ] | 128 << h , g [ f - 2 ] = c << 3 , g [ f - 1 ] = c >>> 29 , g } function m ( a ) { var b , c , d = "" , e = "" ; for ( c = 0 ; 3 >= c ; c ++ ) b = a >>> 8 * c & 255 , e = "0" + b . toString ( 16 ) , d += e . substr ( e . length - 2 , 2 ) ; return d } function n ( a ) { a = a . replace ( /\r\n/g , "\n" ) ; for ( var b = "" , c = 0 ; c < a . length ; c ++ ) { var d = a . charCodeAt ( c ) ; 128 > d ? b += String . fromCharCode ( d ) : d > 127 && 2048 > d ? ( b += String . fromCharCode ( d >> 6 | 192 ) , b += String . fromCharCode ( 63 & d | 128 ) ) : ( b += String . fromCharCode ( d >> 12 | 224 ) , b += String . fromCharCode ( d >> 6 & 63 | 128 ) , b += String . fromCharCode ( 63 & d | 128 ) ) } return b } var o , p , q , r , s , t , u , v , w , x = [ ] , y = 7 , z = 12 , A = 17 , B = 22 , C = 5 , D = 9 , E = 14 , F = 20 , G = 4 , H = 11 , I = 16 , J = 23 , K = 6 , L = 10 , M = 15 , N = 21 ; for ( a = n ( a ) , x = l ( a ) , t = 1732584193 , u = 4023233417 , v = 2562383102 , w = 271733878 , o = 0 ; o < x . length ; o += 16 ) p = t , q = u , r = v , s = w , t = h ( t , u , v , w , x [ o + 0 ] , y , 3614090360 ) , w = h ( w , t , u , v , x [ o + 1 ] , z , 3905402710 ) , v = h ( v , w , t , u , x [ o + 2 ] , A , 606105819 ) , u = h ( u , v , w , t , x [ o + 3 ] , B , 3250441966 ) , t = h ( t , u , v , w , x [ o + 4 ] , y , 4118548399 ) , w = h ( w , t , u , v , x [ o + 5 ] , z , 1200080426 ) , v = h ( v , w , t , u , x [ o + 6 ] , A , 2821735955 ) , u = h ( u , v , w , t , x [ o + 7 ] , B , 4249261313 ) , t = h ( t , u , v , w , x [ o + 8 ] , y , 1770035416 ) , w = h ( w , t , u , v , x [ o + 9 ] , z , 2336552879 ) , v = h ( v , w , t , u , x [ o + 10 ] , A , 4294925233 ) , u = h ( u , v , w , t , x [ o + 11 ] , B , 2304563134 ) , t = h ( t , u , v , w , x [ o + 12 ] , y , 1804603682 ) , w = h ( w , t , u , v , x [ o + 13 ] , z , 4254626195 ) , v = h ( v , w , t , u , x [ o + 14 ] , A , 2792965006 ) , u = h ( u , v , w , t , x [ o + 15 ] , B , 1236535329 ) , t = i ( t , u , v , w , x [ o + 1 ] , C , 4129170786 ) , w = i ( w , t , u , v , x [ o + 6 ] , D , 3225465664 ) , v = i ( v , w , t , u , x [ o + 11 ] , E , 643717713 ) , u = i ( u , v , w , t , x [ o + 0 ] , F , 3921069994 ) , t = i ( t , u , v , w , x [ o + 5 ] , C , 3593408605 ) , w = i ( w , t , u , v , x [ o + 10 ] , D , 38016083 ) , v = i ( v , w , t , u , x [ o + 15 ] , E , 3634488961 ) , u = i ( u , v , w , t , x [ o + 4 ] , F , 3889429448 ) , t = i ( t , u , v , w , x [ o + 9 ] , C , 568446438 ) , w = i ( w , t , u , v , x [ o + 14 ] , D , 3275163606 ) , v = i ( v , w , t , u , x [ o + 3 ] , E , 4107603335 ) , u = i ( u , v , w , t , x [ o + 8 ] , F , 1163531501 ) , t = i ( t , u , v , w , x [ o + 13 ] , C , 2850285829 ) , w = i ( w , t , u , v , x [ o + 2 ] , D , 4243563512 ) , v = i ( v , w , t , u , x [ o + 7 ] , E , 1735328473 ) , u = i ( u , v , w , t , x [ o + 12 ] , F , 2368359562 ) , t = j ( t , u , v , w , x [ o + 5 ] , G , 4294588738 ) , w = j ( w , t , u , v , x [ o + 8 ] , H , 2272392833 ) , v = j ( v , w , t , u , x [ o + 11 ] , I , 1839030562 ) , u = j ( u , v , w , t , x [ o + 14 ] , J , 4259657740 ) , t = j ( t , u , v , w , x [ o + 1 ] , G , 2763975236 ) , w = j ( w , t , u , v , x [ o + 4 ] , H , 1272893353 ) , v = j ( v , w , t , u , x [ o + 7 ] , I , 4139469664 ) , u = j ( u , v , w , t , x [ o + 10 ] , J , 3200236656 ) , t = j ( t , u , v , w , x [ o + 13 ] , G , 681279174 ) , w = j ( w , t , u , v , x [ o + 0 ] , H , 3936430074 ) , v = j ( v , w , t , u , x [ o + 3 ] , I , 3572445317 ) , u = j ( u , v , w , t , x [ o + 6 ] , J , 76029189 ) , t = j ( t , u , v , w , x [ o + 9 ] , G , 3654602809 ) , w = j ( w , t , u , v , x [ o + 12 ] , H , 3873151461 ) , v = j ( v , w , t , u , x [ o + 15 ] , I , 530742520 ) , u = j ( u , v , w , t , x [ o + 2 ] , J , 3299628645 ) , t = k ( t , u , v , w , x [ o + 0 ] , K , 4096336452 ) , w = k ( w , t , u , v , x [ o + 7 ] , L , 1126891415 ) , v = k ( v , w , t , u , x [ o + 14 ] , M , 2878612391 ) , u = k ( u , v , w , t , x [ o + 5 ] , N , 4237533241 ) , t = k ( t , u , v , w , x [ o + 12 ] , K , 1700485571 ) , w = k ( w , t , u , v , x [ o + 3 ] , L , 2399980690 ) , v = k ( v , w , t , u , x [ o + 10 ] , M , 4293915773 ) , u = k ( u , v , w , t , x [ o + 1 ] , N , 2240044497 ) , t = k ( t , u , v , w , x [ o + 8 ] , K , 1873313359 ) , w = k ( w , t , u , v , x [ o + 15 ] , L , 4264355552 ) , v = k ( v , w , t , u , x [ o + 6 ] , M , 2734768916 ) , u = k ( u , v , w , t , x [ o + 13 ] , N , 1309151649 ) , t = k ( t , u , v , w , x [ o + 4 ] , K , 4149444226 ) , w = k ( w , t , u , v , x [ o + 11 ] , L , 3174756917 ) , v = k ( v , w , t , u , x [ o + 2 ] , M , 718787259 ) , u = k ( u , v , w , t , x [ o + 9 ] , N , 3951481745 ) , t = c ( t , p ) , u = c ( u , q ) , v = c ( v , r ) , w = c ( w , s ) ; var O = m ( t ) + m ( u ) + m ( v ) + m ( w ) ; return O . toLowerCase ( ) }
//SHA1
function SHA1Encrypt ( msg ) { function add ( x , y ) { return ( ( x & 0x7FFFFFFF ) + ( y & 0x7FFFFFFF ) ) ^ ( x & 0x80000000 ) ^ ( y & 0x80000000 ) ; } function SHA1hex ( num ) { var sHEXChars = "0123456789abcdef" ; var str = "" ; for ( var j = 7 ; j >= 0 ; j -- ) str += sHEXChars . charAt ( ( num >> ( j * 4 ) ) & 0x0F ) ; return str ; } function AlignSHA1 ( sIn ) { var nblk = ( ( sIn . length + 8 ) >> 6 ) + 1 , blks = new Array ( nblk * 16 ) ; for ( var i = 0 ; i < nblk * 16 ; i ++ ) blks [ i ] = 0 ; for ( i = 0 ; i < sIn . length ; i ++ ) blks [ i >> 2 ] |= sIn . charCodeAt ( i ) << ( 24 - ( i & 3 ) * 8 ) ; blks [ i >> 2 ] |= 0x80 << ( 24 - ( i & 3 ) * 8 ) ; blks [ nblk * 16 - 1 ] = sIn . length * 8 ; return blks ; } function rol ( num , cnt ) { return ( num << cnt ) | ( num >>> ( 32 - cnt ) ) ; } function ft ( t , b , c , d ) { if ( t < 20 ) return ( b & c ) | ( ( ~ b ) & d ) ; if ( t < 40 ) return b ^ c ^ d ; if ( t < 60 ) return ( b & c ) | ( b & d ) | ( c & d ) ; return b ^ c ^ d ; } function kt ( t ) { return ( t < 20 ) ? 1518500249 : ( t < 40 ) ? 1859775393 : ( t < 60 ) ? - 1894007588 : - 899497514 ; } var x = AlignSHA1 ( msg ) ; var w = new Array ( 80 ) ; var a = 1732584193 ; var b = - 271733879 ; var c = - 1732584194 ; var d = 271733878 ; var e = - 1009589776 ; for ( var i = 0 ; i < x . length ; i += 16 ) { var olda = a ; var oldb = b ; var oldc = c ; var oldd = d ; var olde = e ; for ( var j = 0 ; j < 80 ; j ++ ) { if ( j < 16 ) w [ j ] = x [ i + j ] ; else w [ j ] = rol ( w [ j - 3 ] ^ w [ j - 8 ] ^ w [ j - 14 ] ^ w [ j - 16 ] , 1 ) ; t = add ( add ( rol ( a , 5 ) , ft ( j , b , c , d ) ) , add ( add ( e , w [ j ] ) , kt ( j ) ) ) ; e = d ; d = c ; c = rol ( b , 30 ) ; b = a ; a = t ; } a = add ( a , olda ) ; b = add ( b , oldb ) ; c = add ( c , oldc ) ; d = add ( d , oldd ) ; e = add ( e , olde ) ; } SHA1Value = SHA1hex ( a ) + SHA1hex ( b ) + SHA1hex ( c ) + SHA1hex ( d ) + SHA1hex ( e ) ; return SHA1Value ; }
function Env ( t , e ) { class s { constructor ( t ) { this . env = t } send ( t , e = "GET" ) { t = "string" == typeof t ? { url : t } : t ; let s = this . get ; return "POST" === e && ( s = this . post ) , new Promise ( ( e , i ) => { s . call ( this , t , ( t , s , r ) => { t ? i ( t ) : e ( s ) } ) } ) } get ( t ) { return this . send . call ( this . env , t ) } post ( t ) { return this . send . call ( this . env , t , "POST" ) } } return new class { constructor ( t , e ) { this . name = t , this . http = new s ( this ) , this . data = null , this . dataFile = "box.dat" , this . logs = [ ] , this . isMute = ! 1 , this . isNeedRewrite = ! 1 , this . logSeparator = "\n" , this . startTime = ( new Date ) . getTime ( ) , Object . assign ( this , e ) , this . log ( "" , ` 🔔 ${ this . name } , 开始! ` ) } isNode ( ) { return "undefined" != typeof module && ! ! module . exports } isQuanX ( ) { return "undefined" != typeof $task } isSurge ( ) { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon ( ) { return "undefined" != typeof $loon } toObj ( t , e = null ) { try { return JSON . parse ( t ) } catch { return e } } toStr ( t , e = null ) { try { return JSON . stringify ( t ) } catch { return e } } getjson ( t , e ) { let s = e ; const i = this . getdata ( t ) ; if ( i ) try { s = JSON . parse ( this . getdata ( t ) ) } catch { } return s } setjson ( t , e ) { try { return this . setdata ( JSON . stringify ( t ) , e ) } catch { return ! 1 } } getScript ( t ) { return new Promise ( e => { this . get ( { url : t } , ( t , s , i ) => e ( i ) ) } ) } runScript ( t , e ) { return new Promise ( s => { let i = this . getdata ( "@chavy_boxjs_userCfgs.httpapi" ) ; i = i ? i . replace ( /\n/g , "" ) . trim ( ) : i ; let r = this . getdata ( "@chavy_boxjs_userCfgs.httpapi_timeout" ) ; r = r ? 1 * r : 20 , r = e && e . timeout ? e . timeout : r ; const [ o , h ] = i . split ( "@" ) , n = { url : ` http:// ${ h } /v1/scripting/evaluate ` , body : { script_text : t , mock_type : "cron" , timeout : r } , headers : { "X-Key" : o , Accept : "*/*" } } ; this . post ( n , ( t , e , i ) => s ( i ) ) } ) . catch ( t => this . logErr ( t ) ) } loaddata ( ) { if ( ! this . isNode ( ) ) return { } ; { this . fs = this . fs ? this . fs : require ( "fs" ) , this . path = this . path ? this . path : require ( "path" ) ; const t = this . path . resolve ( this . dataFile ) , e = this . path . resolve ( process . cwd ( ) , this . dataFile ) , s = this . fs . existsSync ( t ) , i = ! s && this . fs . existsSync ( e ) ; if ( ! s && ! i ) return { } ; { const i = s ? t : e ; try { return JSON . parse ( this . fs . readFileSync ( i ) ) } catch ( t ) { return { } } } } } writedata ( ) { if ( this . isNode ( ) ) { this . fs = this . fs ? this . fs : require ( "fs" ) , this . path = this . path ? this . path : require ( "path" ) ; const t = this . path . resolve ( this . dataFile ) , e = this . path . resolve ( process . cwd ( ) , this . dataFile ) , s = this . fs . existsSync ( t ) , i = ! s && this . fs . existsSync ( e ) , r = JSON . stringify ( this . data ) ; s ? this . fs . writeFileSync ( t , r ) : i ? this . fs . writeFileSync ( e , r ) : this . fs . writeFileSync ( t , r ) } } lodash_get ( t , e , s ) { const i = e . replace ( /\[(\d+)\]/g , ".$1" ) . split ( "." ) ; let r = t ; for ( const t of i ) if ( r = Object ( r ) [ t ] , void 0 === r ) return s ; return r } lodash_set ( t , e , s ) { return Object ( t ) !== t ? t : ( Array . isArray ( e ) || ( e = e . toString ( ) . match ( /[^.[\]]+/g ) || [ ] ) , e . slice ( 0 , - 1 ) . reduce ( ( t , s , i ) => Object ( t [ s ] ) === t [ s ] ? t [ s ] : t [ s ] = Math . abs ( e [ i + 1 ] ) >> 0 == + e [ i + 1 ] ? [ ] : { } , t ) [ e [ e . length - 1 ] ] = s , t ) } getdata ( t ) { let e = this . getval ( t ) ; if ( /^@/ . test ( t ) ) { const [ , s , i ] = /^@(.*?)\.(.*?)$/ . exec ( t ) , r = s ? this . getval ( s ) : "" ; if ( r ) try { const t = JSON . parse ( r ) ; e = t ? this . lodash_get ( t , i , "" ) : e } catch ( t ) { e = "" } } return e } setdata ( t , e ) { let s = ! 1 ; if ( /^@/ . test ( e ) ) { const [ , i , r ] = /^@(.*?)\.(.*?)$/ . exec ( e ) , o = this . getval ( i ) , h = i ? "null" === o ? null : o || "{}" : "{}" ; try { const e = JSON . parse ( h ) ; this . lodash_set ( e , r , t ) , s = this . setval ( JSON . stringify ( e ) , i ) } catch ( e ) { const o = { } ; this . lodash_set ( o , r , t ) , s = this . setval ( JSON . stringify ( o ) , i ) } } else s = this . setval ( t , e ) ; return s } getval ( t ) { return this . isSurge ( ) || this . isLoon ( ) ? $persistentStore . read ( t ) : this . isQuanX ( ) ? $prefs . valueForKey ( t ) : this . isNode ( ) ? ( this . data = this . loaddata ( ) , this . data [ t ] ) : this . data && this . data [ t ] || null } setval ( t , e ) { return this . isSurge ( ) || this . isLoon ( ) ? $persistentStore . write ( t , e ) : this . isQuanX ( ) ? $prefs . setValueForKey ( t , e ) : this . isNode ( ) ? ( this . data = this . loaddata ( ) , this . data [ e ] = t , this . writedata ( ) , ! 0 ) : this . data && this . data [ e ] || null } initGotEnv ( t ) { this . got = this . got ? this . got : require ( "got" ) , this . cktough = this . cktough ? this . cktough : require ( "tough-cookie" ) , this . ckjar = this . ckjar ? this . ckjar : new this . cktough . CookieJar , t && ( t . headers = t . headers ? t . headers : { } , void 0 === t . headers . Cookie && void 0 === t . cookieJar && ( t . cookieJar = this . ckjar ) ) } get ( t , e = ( ( ) => { } ) ) { t . headers && ( delete t . headers [ "Content-Type" ] , delete t . headers [ "Content-Length" ] ) , this . isSurge ( ) || this . isLoon ( ) ? ( this . isSurge ( ) && this . isNeedRewrite && ( t . headers = t . headers || { } , Ob