@@ -257,32 +257,57 @@ async function play(_inReq, _outResp) {
257257 if ( realUrl && regex . test ( realUrl ) ) {
258258 result . parse = 0 ;
259259 } else if ( realUrl && ! regex . test ( realUrl ) ) {
260- const sniffer = await inReq . server . messageToDart ( {
261- action : 'sniff' ,
262- opt : {
260+ if ( cfg . default . drpyS . enable_hipy_sniffer && cfg . default . drpyS . hipy_sniffer_url ) {
261+ const _js = result . js ;
262+ const _parse_extra = result . parse_extra ;
263+ const _query = {
263264 url : realUrl ,
264- timeout : 10000 ,
265- rule : sniffer_rule ,
266- } ,
267- } ) ;
268- if ( sniffer && sniffer . url ) {
269- const hds = { } ;
270- if ( sniffer . headers ) {
271- if ( sniffer . headers [ 'user-agent' ] ) {
272- hds [ 'User-Agent' ] = sniffer . headers [ 'user-agent' ] ;
273- }
274- if ( sniffer . headers [ 'referer' ] ) {
275- hds [ 'Referer' ] = sniffer . headers [ 'referer' ] ;
265+ script : _js ? base64Encode ( _js ) : undefined ,
266+ }
267+ let _url = mergeQuery ( cfg . default . drpyS . hipy_sniffer_url , _query ) ;
268+ if ( _parse_extra ) {
269+ _url += _parse_extra ;
270+ }
271+ try {
272+ let _result = await request ( _url ) ;
273+ console . log ( `hipy嗅探器任务执行${ _url } 完毕: ${ _result . url } ` ) ;
274+ return {
275+ parse : 0 ,
276+ url : _result . url ,
277+ header : _result . headers
276278 }
277- if ( sniffer . headers [ 'cookie' ] ) {
278- hds [ 'Cookie' ] = sniffer . headers [ 'cookie' ] ;
279+ } catch ( e ) {
280+ console . log ( `hipy嗅探器嗅探错误: ${ e . message } ` ) ;
281+ }
282+
283+ } else {
284+ const sniffer = await _inReq . server . messageToDart ( {
285+ action : 'sniff' ,
286+ opt : {
287+ url : realUrl ,
288+ timeout : 10000 ,
289+ rule : sniffer_rule ,
290+ } ,
291+ } ) ;
292+ if ( sniffer && sniffer . url ) {
293+ const hds = { } ;
294+ if ( sniffer . headers ) {
295+ if ( sniffer . headers [ 'user-agent' ] ) {
296+ hds [ 'User-Agent' ] = sniffer . headers [ 'user-agent' ] ;
297+ }
298+ if ( sniffer . headers [ 'referer' ] ) {
299+ hds [ 'Referer' ] = sniffer . headers [ 'referer' ] ;
300+ }
301+ if ( sniffer . headers [ 'cookie' ] ) {
302+ hds [ 'Cookie' ] = sniffer . headers [ 'cookie' ] ;
303+ }
279304 }
305+ return {
306+ parse : 0 ,
307+ url : sniffer . url ,
308+ header : hds ,
309+ } ;
280310 }
281- return {
282- parse : 0 ,
283- url : sniffer . url ,
284- header : hds ,
285- } ;
286311 }
287312 }
288313 }
0 commit comments