From 7fb1fc97ec4ad99cbde847b698b557a7faf8cb57 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sat, 7 Dec 2013 11:41:36 -0800 Subject: [PATCH] html.parser.analyzer: Add javascript links. Clean up some code. --- extra/html/parser/analyzer/analyzer.factor | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) 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 -- 2.34.1