twitter: don't use https on Windows since Factor doesn't support https there

Slava Pestov 2010-09-08 20:52:50 -07:00
parent c226f7e578
commit 88a157acd1
1 changed files with 13 additions and 8 deletions

View File

@ -2,7 +2,7 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs combinators hashtables http USING: accessors assocs combinators hashtables http
http.client json.reader kernel macros namespaces sequences http.client json.reader kernel macros namespaces sequences
urls.secure fry oauth urls ; urls.secure fry oauth urls system ;
IN: twitter IN: twitter
! Configuration ! Configuration
@ -19,22 +19,27 @@ twitter-source [ "factor" ] initialize
call call
] with-scope ; inline ] with-scope ; inline
: twitter-url ( string -- string' )
os windows?
"http://twitter.com/"
"https://twitter.com/" ? prepend ;
PRIVATE> PRIVATE>
: obtain-twitter-request-token ( -- request-token ) : obtain-twitter-request-token ( -- request-token )
[ [
"https://twitter.com/oauth/request_token" "oauth/request_token" twitter-url
<request-token-params> <request-token-params>
obtain-request-token obtain-request-token
] with-twitter-oauth ; ] with-twitter-oauth ;
: twitter-authorize-url ( token -- url ) : twitter-authorize-url ( token -- url )
"https://twitter.com/oauth/authorize" >url "oauth/authorize" twitter-url >url
swap key>> "oauth_token" set-query-param ; swap key>> "oauth_token" set-query-param ;
: obtain-twitter-access-token ( request-token verifier -- access-token ) : obtain-twitter-access-token ( request-token verifier -- access-token )
[ [
[ "https://twitter.com/oauth/access_token" ] 2dip [ "oauth/access_token" twitter-url ] 2dip
<access-token-params> <access-token-params>
swap >>verifier swap >>verifier
swap >>request-token swap >>request-token
@ -48,8 +53,8 @@ MACRO: keys-boa ( keys class -- )
[ [ '[ _ swap at ] ] map ] dip '[ _ cleave _ boa ] ; [ [ '[ _ swap at ] ] map ] dip '[ _ cleave _ boa ] ;
! Twitter requests ! Twitter requests
: twitter-url ( string -- url ) : status-url ( string -- url )
"https://twitter.com/statuses/" ".json" surround ; "statuses/" ".json" surround twitter-url ;
: set-request-twitter-auth ( request -- request ) : set-request-twitter-auth ( request -- request )
[ <oauth-request-params> set-oauth ] with-twitter-oauth ; [ <oauth-request-params> set-oauth ] with-twitter-oauth ;
@ -131,7 +136,7 @@ PRIVATE>
] H{ } make-assoc ; ] H{ } make-assoc ;
: (tweet) ( string -- json ) : (tweet) ( string -- json )
update-post-data "update" twitter-url update-post-data "update" status-url
<post-request> twitter-request ; <post-request> twitter-request ;
PRIVATE> PRIVATE>
@ -145,7 +150,7 @@ PRIVATE>
<PRIVATE <PRIVATE
: timeline ( url -- tweets ) : timeline ( url -- tweets )
twitter-url <get-request> status-url <get-request>
twitter-request json>twitter-statuses ; twitter-request json>twitter-statuses ;
PRIVATE> PRIVATE>