diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/AdListener.hs | 14 | ||||
-rw-r--r-- | src/Time.hs | 17 |
2 files changed, 26 insertions, 5 deletions
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) |