@@ -43,7 +43,17 @@ function startScan(domain) {
4343 li . textContent = JSON . parse ( ev . data ) . label ;
4444 $ ( "#progress-steps" ) . appendChild ( li ) ;
4545 } ) ;
46- source . addEventListener ( "done" , ( ev ) => { source . close ( ) ; source = null ; render ( JSON . parse ( ev . data ) ) ; finish ( ) ; } ) ;
46+ source . addEventListener ( "done" , ( ev ) => {
47+ source . close ( ) ; source = null ;
48+ try {
49+ render ( JSON . parse ( ev . data ) ) ;
50+ } catch ( err ) {
51+ hide ( results ) ;
52+ errBox . textContent = "RENDER ERROR // " + ( err && err . message ? err . message : err ) ;
53+ show ( errBox ) ;
54+ }
55+ finish ( ) ;
56+ } ) ;
4757 source . addEventListener ( "failed" , ( ev ) => {
4858 source . close ( ) ; source = null ;
4959 let msg = "SCAN FAILED." ;
@@ -438,6 +448,16 @@ function cardSecurityTxt(http) {
438448 `<div class="row"><span class="k">Present</span>${ st . present ? `<span class="v ok">yes</span>` : `<span class="v warn">no</span>` } </div>` ) ;
439449}
440450
451+ function cardReputation ( r ) {
452+ if ( ! r || r . status !== "ok" ) return "" ;
453+ const listed = r . listed
454+ ? `<span class="v bad">listed (${ esc ( ( r . sources || [ ] ) . join ( ", " ) ) } )</span>`
455+ : `<span class="v ok">clean</span>` ;
456+ return card ( "Threat reputation" ,
457+ `<div class="row"><span class="k">Status</span>${ listed } </div>` +
458+ ( r . listed ? row ( "Malicious URLs" , esc ( r . url_count ) ) : "" ) ) ;
459+ }
460+
441461function cardBlocklists ( b ) {
442462 if ( ! b || b . status !== "ok" || ! ( b . results || [ ] ) . length ) return "" ;
443463 const rows = b . results . map ( ( r ) => {
0 commit comments