2
2
// http://localhost:5757/api/番薯动漫?ac=detail&ids=/voddetail/USJJJJJk.html
3
3
// http://localhost:5757/api/番薯动漫?wd=我的&pg=1
4
4
// http://localhost:5757/api/番薯动漫?play=/vodplay/USJJJJJk-2-1.html&flag=由qq倾情打造
5
- const { getHtml } = $ . require ( './_lib.request.js' )
5
+ const { getHtml} = $ . require ( './_lib.request.js' )
6
6
7
7
var rule = {
8
8
类型 : '影视' ,
@@ -50,7 +50,7 @@ var rule = {
50
50
return [ ]
51
51
} ,
52
52
一级 : async function ( tid , pg , filter , extend ) {
53
- let { MY_CATE , input } = this ;
53
+ let { MY_CATE , input} = this ;
54
54
if ( pg <= 0 ) pg = 1 ;
55
55
const html = ( await _req ( `${ rule . host } /vodshow/${ tid } --------${ pg } ---.html` ) ) . content ;
56
56
const $ = pq ( html ) ;
@@ -70,7 +70,7 @@ var rule = {
70
70
return videos
71
71
} ,
72
72
二级 : async function ( ids ) {
73
- let { input } = this ;
73
+ let { input} = this ;
74
74
const html = ( await _req ( rule . host + ids [ 0 ] ) ) . content
75
75
const $ = pq ( html ) ;
76
76
let vod = {
@@ -79,6 +79,7 @@ var rule = {
79
79
vod_remarks : $ ( ".module-info-item-title:contains(更新)+p" ) . text ( ) ,
80
80
vod_content : $ ( ".show-desc" ) . text ( ) . trim ( )
81
81
} ;
82
+ log ( `加载二级:${ input } ` ) ;
82
83
vod . vod_play_from = $ ( "#y-playList span" ) . map ( ( _ , i ) => $ ( i ) . text ( ) ) . get ( ) . join ( '$$$' ) ;
83
84
vod . vod_play_url = $ ( ".module-play-list-content" ) . map ( ( _ , item ) => {
84
85
return $ ( item ) . find ( "a" ) . map ( ( _ , i ) => {
@@ -88,7 +89,7 @@ var rule = {
88
89
return vod
89
90
} ,
90
91
搜索 : async function ( wd , quick , pg ) {
91
- let { input } = this ;
92
+ let { input} = this ;
92
93
let ck = await verifyCode (
93
94
rule . host + "/index.php/verify/index.html?" ,
94
95
{
@@ -128,7 +129,7 @@ var rule = {
128
129
return videos
129
130
} ,
130
131
lazy : async function ( flag , id , flags ) {
131
- let { input } = this ;
132
+ let { input} = this ;
132
133
const html = ( await _req ( rule . host + id ) ) . content ;
133
134
eval ( html . match ( / p l a y e r _ a a a a [ \s \S ] * ?(? = < \/ s c r i p t > ) / ) [ 0 ] )
134
135
let purl = "https://api.bytegooty.com//?url=" + player_aaaa . url
@@ -138,10 +139,11 @@ var rule = {
138
139
let play_url ;
139
140
try {
140
141
const sortByKey = ( _0x2df378 , _0x5d56c7 , _0x3a5216 ) => _0x5d56c7 . sort ( ( {
141
- [ _0x2df378 ] : _0x258bb0
142
- } , {
143
- [ _0x2df378 ] : _0x58eebd
144
- } ) => _0x3a5216 ( _0x258bb0 , _0x58eebd ) )
142
+ [ _0x2df378 ] : _0x258bb0
143
+ } , {
144
+ [ _0x2df378 ] : _0x58eebd
145
+ } ) => _0x3a5216 ( _0x258bb0 , _0x58eebd ) )
146
+
145
147
function decrypt ( _0x29c3c3 ) {
146
148
let _0x9d66e = $ ( "meta[name=\"viewport\"]" ) . attr ( "id" ) . replace ( "now_" , "" ) ,
147
149
_0x165aac = $ ( "meta[charset=\"UTF-8\"]" ) . attr ( "id" ) . replace ( "now_" , "" ) ,
@@ -168,16 +170,18 @@ var rule = {
168
170
} ) ;
169
171
return _0x477cb9 . toString ( CryptoJS . enc . Utf8 ) ;
170
172
}
173
+
171
174
play_url = decrypt ( config . url )
172
175
} catch ( error ) {
173
176
console . log ( error )
174
177
}
175
- return { parse : 0 , url : play_url }
178
+ return { parse : 0 , url : play_url }
176
179
} ,
177
180
} ;
178
181
179
182
const expire = 60 * 5 * 1000 ; // 设置cookie过期时间,单位毫秒
180
183
let timeA = new Date ( ) . getTime ( ) ;
184
+
181
185
async function _req ( url , opt ) {
182
186
let timeB = new Date ( ) . getTime ( ) ;
183
187
if ( ! rule . headers . cookie || timeB - timeA > expire ) {
@@ -213,16 +217,16 @@ async function getJwt() {
213
217
height : 864
214
218
} ;
215
219
216
- const wasmBuffer = await axios . get ( "https://challenge.rivers.chaitin.cn/challenge/v2/calc.wasm" , { responseType : 'arraybuffer' } ) ;
217
- const rootResp = await axios . get ( "https://www.fsdm02.com/" , { headers : { "User-Agent" : UA } } ) . catch ( error => error . response ) ;
220
+ const wasmBuffer = await axios . get ( "https://challenge.rivers.chaitin.cn/challenge/v2/calc.wasm" , { responseType : 'arraybuffer' } ) ;
221
+ const rootResp = await axios . get ( "https://www.fsdm02.com/" , { headers : { "User-Agent" : UA } } ) . catch ( error => error . response ) ;
218
222
const cookie = rootResp ?. headers ?. [ 'set-cookie' ] ?. map ( it => it . replace ( / ; .* / , "" ) ) . join ( ";" ) ;
219
223
const html = rootResp . data ;
220
224
const clientId = html . match ( / S a f e L i n e C h a l l e n g e \( " ( .* ?) " / ) [ 1 ] ;
221
225
const level = parseInt ( html . match ( / S a f e L i n e C h a l l e n g e .* ?l e v e l : \s * " ( \d + ) " / ) [ 1 ] , 10 ) ;
222
226
const issueJson = ( await axios . post ( "https://challenge.rivers.chaitin.cn/challenge/v2/api/issue" , {
223
227
client_id : clientId ,
224
228
level
225
- } , { headers : { "Content-Type" : "application/json" } } ) ) . data ;
229
+ } , { headers : { "Content-Type" : "application/json" } } ) ) . data ;
226
230
227
231
function u ( e , t ) {
228
232
return ( {
@@ -232,7 +236,7 @@ async function getJwt() {
232
236
} )
233
237
}
234
238
235
- WebAssembly . instantiate ( wasmBuffer . data ) . then ( ( { instance } ) => {
239
+ WebAssembly . instantiate ( wasmBuffer . data ) . then ( ( { instance} ) => {
236
240
let n = { } ;
237
241
n . data = ( u ( function ( e ) {
238
242
return instance . exports . reset ( ) ,
@@ -243,6 +247,7 @@ async function getJwt() {
243
247
return instance . exports . ret ( )
244
248
} )
245
249
} , issueJson . data ) )
250
+
246
251
function generateRandomString ( length ) {
247
252
const characters = '0123456789abcdefghijklmnopqrstuvwxyz' ;
248
253
let result = '' ;
@@ -255,6 +260,7 @@ async function getJwt() {
255
260
256
261
return result ;
257
262
}
263
+
258
264
const visitorId = generateRandomString ( 32 ) ;
259
265
axios . post ( "https://challenge.rivers.chaitin.cn/challenge/v2/api/verify" , {
260
266
issue_id : n . data . issue_id ,
@@ -323,7 +329,7 @@ async function verifyCode(imgUrl, verifyUrlOpt, num = 1) {
323
329
setCookie = [ setCookie ] ;
324
330
}
325
331
cookie = setCookie . map ( it => it . replace ( / ; .* / , '' ) ) . join ( ";" ) ;
326
- let { url : vurl , ...vopt } = JSON . parse ( JSON . stringify ( verifyUrlOpt )
332
+ let { url : vurl , ...vopt } = JSON . parse ( JSON . stringify ( verifyUrlOpt )
327
333
. replace ( / \$ c o o k i e / g, cookie )
328
334
. replace ( / \$ c o d e / g, validate )
329
335
)
0 commit comments