threadDelay microseconds
--- |Given a 'Message', 'Status', and date, update that message's body
--- and subject with the information contained in the status. Adds a
--- /Date: / header, and returns the updated message.
+-- |Given a 'Message', 'Status', and default date, update that
+-- message's body and subject with the information contained in the
+-- status. Adds a /Date: / header, and returns the updated message.
message_from_status :: Message -> String -> Status -> Message
-message_from_status message date status =
- message { subject = "Twat: " ++ (screen_name (user status)),
- body = (pretty_print status),
- headers = ((headers message) ++ ["Date: " ++ date])}
-
+message_from_status message default_date status =
+ message { subject = "Twat: " ++ (screen_name (user status)),
+ body = (pretty_print status),
+ headers = ((headers message) ++ ["Date: " ++ date])}
+ where
+ -- Use the Status' created_at date if it can be coerced into
+ -- RFC822 format.
+ date = case (created_at_to_rfc822 $ created_at status) of
+ Nothing -> default_date
+ Just c -> c
-- |This is the main recursive loop. It takes a length of time to
-- delay (in seconds), a username, a latest_status_id, and optionally
recurse delay username new_latest_status_id maybe_message
return ()
Just message -> do
- date_header <- construct_date_header
- let messages = map (message_from_status message (date_header)) new_statuses
+ default_date <- rfc822_now
+ let messages = map (message_from_status message (default_date)) new_statuses
sendmail_results <- mapM sendmail messages
_ <- mapM print_sendmail_result sendmail_results
recurse delay username new_latest_status_id maybe_message
putStrLn "No message object given."
return ()
Just message -> do
- date_header <- construct_date_header
- let messages = map (message_from_status message (date_header)) statuses
+ default_date <- rfc822_now
+ let messages = map (message_from_status message (default_date)) statuses
sendmail_results <- mapM sendmail messages
_ <- mapM print_sendmail_result sendmail_results
return ()