]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/google/search/search.factor
assocs.extras: deep-at -> deep-of
[factor.git] / extra / google / search / search.factor
index ad2d8eea4c3af76b37cef3556170a4c94ddc3ffa..7f4b0b4463c0e2d1a9a7989c3ad47e30ab27f40f 100644 (file)
@@ -1,27 +1,21 @@
 ! Copyright (C) 2011 John Benediktsson
 ! See http://factorcode.org/license.txt for BSD license
 
-USING: accessors arrays assocs assocs.extras classes.tuple
-colors.constants combinators formatting fry http.client io
-io.styles json.reader kernel sequences urls wrap.strings ;
+USING: accessors assocs.extras classes.tuple colors combinators
+formatting http.client io io.styles json.reader kernel sequences
+urls wrap.strings ;
 
 IN: google.search
 
 <PRIVATE
 
 : search-url ( query -- url )
-    URL" http://ajax.googleapis.com/ajax/services/search/web"
+    URL" http://ajax.googleapis.com/ajax/services/search/web" clone
         "1.0" "v" set-query-param
         swap "q" set-query-param
         "8" "rsz" set-query-param
         "0" "start" set-query-param ;
 
-: set-slots ( assoc obj -- )
-    '[ swap _ set-slot-named ] assoc-each ;
-
-: from-slots ( assoc class -- obj )
-    new [ set-slots ] keep ;
-
 TUPLE: search-result cacheUrl GsearchResultClass visibleUrl
 title content unescapedUrl url titleNoFormatting fileFormat ;
 
@@ -29,7 +23,7 @@ PRIVATE>
 
 : google-search ( query -- results )
     search-url http-get nip json>
-    { "responseData" "results" } deep-at
+    { "responseData" "results" } deep-of
     [ \ search-result from-slots ] map ;
 
 <PRIVATE