5 import System.IO (hPutStrLn, stderr)
8 -- http://dev.twitter.com/doc/get/statuses/user_timeline
10 user_timeline_url :: String -> String
11 user_timeline_url username =
12 concat [ "http://api.twitter.com/1/statuses/user_timeline.xml",
13 "?screen_name=" ++ username,
17 user_new_statuses_url :: String -> Integer -> String
18 user_new_statuses_url username last_status_id =
19 concat [ user_timeline_url username,
20 "&since_id=" ++ (show last_status_id) ]
23 get_user_timeline :: String -> IO (Maybe String)
24 get_user_timeline username = do
25 let uri = (user_timeline_url username)
26 timeline <- (http_get uri)
30 get_user_new_statuses :: String -> Integer -> IO (Maybe String)
31 get_user_new_statuses username last_status_id = do
32 let uri = (user_new_statuses_url username last_status_id)
33 new_statuses <- (http_get uri)
37 http_get :: String -> IO (Maybe String)
38 http_get uri = withCurlDo $ do
39 resp <- curlGetString uri [CurlTimeout 45]
42 (CurlOK, body) -> return (Just body)
44 hPutStrLn stderr ("HTTP Error: " ++ (show code))