]> gitweb.factorcode.org Git - factor.git/commitdiff
html.parser.analyzer: Add javascript links. Clean up some code.
authorDoug Coleman <doug.coleman@gmail.com>
Sat, 7 Dec 2013 19:41:36 +0000 (11:41 -0800)
committerDoug Coleman <doug.coleman@gmail.com>
Sat, 7 Dec 2013 19:43:32 +0000 (11:43 -0800)
extra/html/parser/analyzer/analyzer.factor

index 35716860d199b657ce5e3a96d9863cb1ab7e4f16..1805f3dcc97e5245d0ab8df8bdaae52e568afaf2 100644 (file)
@@ -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