Yahoo uses URLs now

db4
Slava Pestov 2008-06-02 18:04:21 -05:00
parent d35f25f334
commit 5127a587ea
2 changed files with 24 additions and 27 deletions

View File

@ -1,4 +1,4 @@
USING: tools.test yahoo kernel io.files xml sequences accessors ; USING: tools.test yahoo kernel io.files xml sequences accessors urls ;
[ T{ [ T{
result result
@ -8,4 +8,4 @@ USING: tools.test yahoo kernel io.files xml sequences accessors ;
"Official site with news, tour dates, discography, store, community, and more." "Official site with news, tour dates, discography, store, community, and more."
} ] [ "resource:extra/yahoo/test-results.xml" file>xml parse-yahoo first ] unit-test } ] [ "resource:extra/yahoo/test-results.xml" file>xml parse-yahoo first ] unit-test
[ "http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=Factor-search&query=hi&results=2&similar_ok=1" ] [ "hi" <search> "Factor-search" >>appid 2 >>results t >>similar-ok query ] unit-test [ URL" http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=Factor-search&query=hi&results=2&similar_ok=1" ] [ "hi" <search> "Factor-search" >>appid 2 >>results t >>similar-ok query ] unit-test

View File

@ -1,14 +1,13 @@
! Copyright (C) 2006 Daniel Ehrenberg, Walton Chan ! Copyright (C) 2006 Daniel Ehrenberg, Walton Chan
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: http.client xml xml.utilities kernel sequences USING: http.client xml xml.utilities kernel sequences
namespaces http math.parser help math.order locals math.parser urls accessors locals ;
urls accessors ;
IN: yahoo IN: yahoo
TUPLE: result title url summary ; TUPLE: result title url summary ;
C: <result> result C: <result> result
TUPLE: search query results adult-ok start appid region type TUPLE: search query results adult-ok start appid region type
format similar-ok language country site subscription license ; format similar-ok language country site subscription license ;
@ -20,11 +19,11 @@ format similar-ok language country site subscription license ;
] map ; ] map ;
: yahoo-url ( -- str ) : yahoo-url ( -- str )
"http://search.yahooapis.com/WebSearchService/V1/webSearch" ; URL" http://search.yahooapis.com/WebSearchService/V1/webSearch" ;
: param ( search str quot -- search ) :: param ( search url name quot -- search url )
>r over r> call [ url-encode [ % ] bi@ ] [ drop ] if* ; search url search quot call
inline [ name set-query-param ] when* ; inline
: num-param ( search str quot -- search ) : num-param ( search str quot -- search )
[ dup [ number>string ] when ] compose param ; inline [ dup [ number>string ] when ] compose param ; inline
@ -33,24 +32,22 @@ format similar-ok language country site subscription license ;
[ "1" and ] compose param ; inline [ "1" and ] compose param ; inline
: query ( search -- url ) : query ( search -- url )
[ yahoo-url clone
yahoo-url % "appid" [ appid>> ] param
"?appid=" [ appid>> ] param "query" [ query>> ] param
"&query=" [ query>> ] param "region" [ region>> ] param
"&region=" [ region>> ] param "type" [ type>> ] param
"&type=" [ type>> ] param "format" [ format>> ] param
"&format=" [ format>> ] param "language" [ language>> ] param
"&language=" [ language>> ] param "country" [ country>> ] param
"&country=" [ country>> ] param "site" [ site>> ] param
"&site=" [ site>> ] param "subscription" [ subscription>> ] param
"&subscription=" [ subscription>> ] param "license" [ license>> ] param
"&license=" [ license>> ] param "results" [ results>> ] num-param
"&results=" [ results>> ] num-param "start" [ start>> ] num-param
"&start=" [ start>> ] num-param "adult_ok" [ adult-ok>> ] bool-param
"&adult_ok=" [ adult-ok>> ] bool-param "similar_ok" [ similar-ok>> ] bool-param
"&similar_ok=" [ similar-ok>> ] bool-param nip ;
drop
] "" make ;
: factor-id : factor-id
"fRrVAKzV34GDyeRw6bUHDhEWHRedwfOC7e61wwXZLgGF80E67spxdQXuugBe2pgIevMmKwA-" ; "fRrVAKzV34GDyeRw6bUHDhEWHRedwfOC7e61wwXZLgGF80E67spxdQXuugBe2pgIevMmKwA-" ;