]> gitweb.michael.orlitzky.com - dead/halcyon.git/blobdiff - src/Twitter/Http.hs
Add the Twitter API oAuth stuff to the configuration and command line.
[dead/halcyon.git] / src / Twitter / Http.hs
index 112c2ea2fa293f75aa16382ab7770b07c9607c2f..6d055b90f0da7444568670f39586ab6fbc790a87 100644 (file)
@@ -13,6 +13,8 @@ import Web.Authenticate.OAuth (
   newOAuth,
   signOAuth)
 
+import Configuration
+
 -- |The API URL of username's timeline.
 --
 -- See,
@@ -47,33 +49,30 @@ user_new_statuses_url username last_status_id =
            "&since_id=" ++ (show last_status_id) ]
 
 
-get_status :: Integer -> IO B.ByteString
-get_status status_id = do
-  let uri = (status_url status_id)
-  status <- (http_get uri)
-  return status
+get_status :: Cfg -> Integer -> IO B.ByteString
+get_status cfg status_id = do
+  let uri = status_url status_id
+  http_get cfg uri
 
 
 -- | Return's username's timeline.
-get_user_timeline :: String -> IO B.ByteString
-get_user_timeline username = do
-  let uri = (user_timeline_url username)
-  timeline <- (http_get uri)
-  return timeline
+get_user_timeline :: Cfg -> String -> IO B.ByteString
+get_user_timeline cfg username = do
+  let uri = user_timeline_url username
+  http_get cfg uri
 
 
 -- | Returns the JSON representing all of username's statuses that are
 --   newer than last_status_id.
-get_user_new_statuses :: String -> Integer -> IO B.ByteString
-get_user_new_statuses username last_status_id = do
-  let uri = (user_new_statuses_url username last_status_id)
-  new_statuses <- (http_get uri)
-  return new_statuses
+get_user_new_statuses :: Cfg -> String -> Integer -> IO B.ByteString
+get_user_new_statuses cfg username last_status_id = do
+  let uri = user_new_statuses_url username last_status_id
+  http_get cfg uri
 
 
 -- | Retrieve a URL, or crash.
-http_get :: String -> IO B.ByteString
-http_get url = do
+http_get :: Cfg -> String -> IO B.ByteString
+http_get cfg url = do
   manager <- newManager def
   request <- parseUrl url
 
@@ -83,16 +82,16 @@ http_get url = do
     responseBody response C.$$+- sinkLbs
 
   where
-    consumer_key = BC.pack ""
-    consumer_secret = BC.pack ""
-    access_token = BC.pack ""
-    access_secret = BC.pack ""
+    consumer_key' = BC.pack (consumer_key cfg)
+    consumer_secret' = BC.pack (consumer_secret cfg)
+    access_token' = BC.pack (access_token cfg)
+    access_secret' = BC.pack (access_secret cfg)
 
     oauth :: OAuth
     oauth = newOAuth {
-              oauthConsumerKey = consumer_key,
-              oauthConsumerSecret = consumer_secret
+              oauthConsumerKey = consumer_key',
+              oauthConsumerSecret = consumer_secret'
             }
 
     credential :: Credential
-    credential = newCredential access_token access_secret
+    credential = newCredential access_token' access_secret'