From: Doug Coleman Date: Sat, 7 Dec 2013 19:41:36 +0000 (-0800) Subject: html.parser.analyzer: Add javascript links. Clean up some code. X-Git-Tag: 0.97~897 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=7fb1fc97ec4ad99cbde847b698b557a7faf8cb57 html.parser.analyzer: Add javascript links. Clean up some code. --- diff --git a/extra/html/parser/analyzer/analyzer.factor b/extra/html/parser/analyzer/analyzer.factor index 35716860d1..1805f3dcc9 100644 --- a/extra/html/parser/analyzer/analyzer.factor +++ b/extra/html/parser/analyzer/analyzer.factor @@ -156,17 +156,19 @@ ERROR: undefined-find-nth m n seq quot ; "href" attribute* [ subseq? ] [ 2drop f ] if ; : find-hrefs ( vector -- vector' ) - find-links - [ [ { [ name>> "a" = ] [ "href" attribute? ] } 1&& ] filter ] map sift - [ [ "href" attribute ] map ] map concat [ >url ] map ; + [ { [ name>> "a" = ] [ "href" attribute? ] } 1&& ] filter sift + [ "href" attribute >url ] map ; : find-frame-links ( vector -- vector' ) - [ name>> "frame" = ] find-between-all - [ [ "src" attribute ] map sift ] map concat sift - [ >url ] map ; + [ { [ name>> "frame" = ] [ "src" attribute? ] } 1&& ] filter sift + [ "src" attribute >url ] map ; + +: find-script-links ( vector -- vector' ) + [ { [ name>> "script" = ] [ "src" attribute? ] } 1&& ] filter sift + [ "src" attribute >url ] map ; : find-all-links ( vector -- vector' ) - [ find-hrefs ] [ find-frame-links ] bi union ; + [ find-hrefs ] [ find-frame-links ] [ find-script-links ] tri union union ; : find-forms ( vector -- vector' ) "form" over find-opening-tags-by-name