From c0cfd3cb3d7a963cebb40f88868e5628f361376f Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Sun, 12 Apr 2015 23:16:30 +0200 Subject: Show the current time when new ads are available --- src/AdListener.hs | 14 +++++++++----- src/Time.hs | 17 +++++++++++++++++ 2 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 src/Time.hs (limited to 'src') diff --git a/src/AdListener.hs b/src/AdListener.hs index dbd7a71..0155074 100644 --- a/src/AdListener.hs +++ b/src/AdListener.hs @@ -25,6 +25,8 @@ import Parser.Detail import Config (Config) import qualified Config as C +import Time (getCurrentFormattedTime) + listenToNewAds :: Config -> IO () listenToNewAds config = do eitherResumes <- fetchResumes (C.url config) @@ -54,23 +56,25 @@ listenToNewAdsWithResumes config viewedURLs resumes = listenError config viewedURLs error Right newAds -> do + time <- getCurrentFormattedTime if not (null newAds) then - T.putStrLn (newAdsMessage newAds) + T.putStrLn (newAdsMessage time newAds) else return () waitOneMinute listenToNewAdsWithViewedURLs config (viewedURLs ++ newURLs) -newAdsMessage :: [Ad] -> Text -newAdsMessage newAds = +newAdsMessage :: Text -> [Ad] -> Text +newAdsMessage time newAds = let newAdsMessage = T.concat - [ "Got " + [ "\nAt " + , time + , ", got " , T.pack . show . length $ newAds , " new ad" , if length newAds > 1 then "s" else "" - , "." ] line = T.map (\_ -> '-') newAdsMessage in T.intercalate diff --git a/src/Time.hs b/src/Time.hs new file mode 100644 index 0000000..9f35bf0 --- /dev/null +++ b/src/Time.hs @@ -0,0 +1,17 @@ +module Time + ( getCurrentFormattedTime + ) where + +import Data.Text (Text) +import qualified Data.Text as T + +import Data.Time.Clock (getCurrentTime) +import Data.Time.LocalTime (getCurrentTimeZone, utcToLocalTime) +import Data.Time.Format (formatTime, defaultTimeLocale) + +getCurrentFormattedTime :: IO Text +getCurrentFormattedTime = do + currentTime <- getCurrentTime + timeZone <- getCurrentTimeZone + let localTime = utcToLocalTime timeZone currentTime + return (T.pack $ formatTime defaultTimeLocale "%T" localTime) -- cgit v1.2.3