X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhalcyon.git;a=blobdiff_plain;f=src%2FTwitter%2FHttp.hs;h=14d156395426eed5bf40af35942ec220aa646762;hp=6d055b90f0da7444568670f39586ab6fbc790a87;hb=eed0d7b0f8ef28864c00925beef5c8853bcd44cc;hpb=5902136562aa412e2e1a54773e9cd3810bb8aa75 diff --git a/src/Twitter/Http.hs b/src/Twitter/Http.hs index 6d055b9..14d1563 100644 --- a/src/Twitter/Http.hs +++ b/src/Twitter/Http.hs @@ -1,11 +1,19 @@ -module Twitter.Http +module Twitter.Http ( + get_user_new_statuses, + get_user_timeline, + http_get + ) where import qualified Data.ByteString.Lazy as B import qualified Data.ByteString.Char8 as BC -import qualified Data.Conduit as C -import Data.Conduit.Binary (sinkLbs) -import Network.HTTP.Conduit +import Network.HTTP.Client ( + httpLbs, + newManager, + parseUrl, + responseBody) +import Network.HTTP.Client.TLS ( + tlsManagerSettings) import Web.Authenticate.OAuth ( OAuth(..), Credential, @@ -13,7 +21,7 @@ import Web.Authenticate.OAuth ( newOAuth, signOAuth) -import Configuration +import Configuration (Cfg(..)) -- |The API URL of username's timeline. -- @@ -32,27 +40,16 @@ user_timeline_url username = "&include_rts=true&", "count=10" ] -status_url :: Integer -> String -status_url status_id = - concat [ "https://api.twitter.com/", - "1.1/", - "statuses/", - "show.json?id=", - (show status_id) ] -- | Given username's last status id, constructs the API URL for -- username's new statuses. Essentially, 'user_timeline_url' with a -- "since_id" parameter tacked on. user_new_statuses_url :: String -> Integer -> String user_new_statuses_url username last_status_id = - concat [ user_timeline_url username, - "&since_id=" ++ (show last_status_id) ] - - -get_status :: Cfg -> Integer -> IO B.ByteString -get_status cfg status_id = do - let uri = status_url status_id - http_get cfg uri + url ++ "&since_id=" ++ since_id + where + url = user_timeline_url username + since_id = show last_status_id -- | Return's username's timeline. @@ -73,13 +70,11 @@ get_user_new_statuses cfg username last_status_id = do -- | Retrieve a URL, or crash. http_get :: Cfg -> String -> IO B.ByteString http_get cfg url = do - manager <- newManager def + manager <- newManager tlsManagerSettings request <- parseUrl url - - C.runResourceT $ do - signed_request <- signOAuth oauth credential request - response <- http signed_request manager - responseBody response C.$$+- sinkLbs + signed_request <- signOAuth oauth credential request + response <- httpLbs signed_request manager + return $ responseBody response where consumer_key' = BC.pack (consumer_key cfg)