From 5127a587ea862a52ee3fa1c770a4db260e02969f Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 2 Jun 2008 18:04:21 -0500 Subject: [PATCH] Yahoo uses URLs now --- extra/yahoo/yahoo-tests.factor | 4 +-- extra/yahoo/yahoo.factor | 47 ++++++++++++++++------------------ 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/extra/yahoo/yahoo-tests.factor b/extra/yahoo/yahoo-tests.factor index 3776715c7b..827d6ecfd0 100644 --- a/extra/yahoo/yahoo-tests.factor +++ b/extra/yahoo/yahoo-tests.factor @@ -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{ 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." } ] [ "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" "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" "Factor-search" >>appid 2 >>results t >>similar-ok query ] unit-test diff --git a/extra/yahoo/yahoo.factor b/extra/yahoo/yahoo.factor index c17de206c4..c47b8be15c 100755 --- a/extra/yahoo/yahoo.factor +++ b/extra/yahoo/yahoo.factor @@ -1,14 +1,13 @@ ! Copyright (C) 2006 Daniel Ehrenberg, Walton Chan ! See http://factorcode.org/license.txt for BSD license. USING: http.client xml xml.utilities kernel sequences -namespaces http math.parser help math.order locals -urls accessors ; +math.parser urls accessors locals ; IN: yahoo TUPLE: result title url summary ; C: result - + TUPLE: search query results adult-ok start appid region type format similar-ok language country site subscription license ; @@ -20,11 +19,11 @@ format similar-ok language country site subscription license ; ] map ; : yahoo-url ( -- str ) - "http://search.yahooapis.com/WebSearchService/V1/webSearch" ; + URL" http://search.yahooapis.com/WebSearchService/V1/webSearch" ; -: param ( search str quot -- search ) - >r over r> call [ url-encode [ % ] bi@ ] [ drop ] if* ; - inline +:: param ( search url name quot -- search url ) + search url search quot call + [ name set-query-param ] when* ; inline : num-param ( search str quot -- search ) [ dup [ number>string ] when ] compose param ; inline @@ -33,24 +32,22 @@ format similar-ok language country site subscription license ; [ "1" and ] compose param ; inline : query ( search -- url ) - [ - yahoo-url % - "?appid=" [ appid>> ] param - "&query=" [ query>> ] param - "®ion=" [ region>> ] param - "&type=" [ type>> ] param - "&format=" [ format>> ] param - "&language=" [ language>> ] param - "&country=" [ country>> ] param - "&site=" [ site>> ] param - "&subscription=" [ subscription>> ] param - "&license=" [ license>> ] param - "&results=" [ results>> ] num-param - "&start=" [ start>> ] num-param - "&adult_ok=" [ adult-ok>> ] bool-param - "&similar_ok=" [ similar-ok>> ] bool-param - drop - ] "" make ; + yahoo-url clone + "appid" [ appid>> ] param + "query" [ query>> ] param + "region" [ region>> ] param + "type" [ type>> ] param + "format" [ format>> ] param + "language" [ language>> ] param + "country" [ country>> ] param + "site" [ site>> ] param + "subscription" [ subscription>> ] param + "license" [ license>> ] param + "results" [ results>> ] num-param + "start" [ start>> ] num-param + "adult_ok" [ adult-ok>> ] bool-param + "similar_ok" [ similar-ok>> ] bool-param + nip ; : factor-id "fRrVAKzV34GDyeRw6bUHDhEWHRedwfOC7e61wwXZLgGF80E67spxdQXuugBe2pgIevMmKwA-" ;