X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhalcyon.git;a=blobdiff_plain;f=src%2FTwitter%2FHttp.hs;h=d7135cec3b058b4c93093fafd572612625354666;hp=2fe24bdd7c9579738b0d7a05eaa7a94d03b4eaa2;hb=69b8af30f49aaad0f5c051998d2556b9ec291df7;hpb=53c26134670775854677470e402b8b41f19246d1 diff --git a/src/Twitter/Http.hs b/src/Twitter/Http.hs index 2fe24bd..d7135ce 100644 --- a/src/Twitter/Http.hs +++ b/src/Twitter/Http.hs @@ -4,8 +4,11 @@ where import Network.Curl import System.IO (hPutStrLn, stderr) +-- |The API URL of username's timeline. -- --- http://dev.twitter.com/doc/get/statuses/user_timeline +-- See, +-- +-- -- user_timeline_url :: String -> String user_timeline_url username = @@ -14,12 +17,16 @@ user_timeline_url username = "&include_rts=true", "&count=10" ] +-- |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) ] +-- |Return's username's timeline, or 'Nothing' if there was an error. get_user_timeline :: String -> IO (Maybe String) get_user_timeline username = do let uri = (user_timeline_url username) @@ -27,6 +34,8 @@ get_user_timeline username = do return timeline +-- Returns the XML representing all of username's statuses that are +-- newer than last_status_id. get_user_new_statuses :: String -> Integer -> IO (Maybe String) get_user_new_statuses username last_status_id = do let uri = (user_new_statuses_url username last_status_id) @@ -34,6 +43,8 @@ get_user_new_statuses username last_status_id = do return new_statuses +-- |Uses the CURL API to retrieve uri. Returns 'Nothing' if there was +-- an error. http_get :: String -> IO (Maybe String) http_get uri = withCurlDo $ do resp <- curlGetString uri [CurlTimeout 45]