aboutsummaryrefslogtreecommitdiff
path: root/src/executable/haskell/Service/AdListener.hs
diff options
context:
space:
mode:
authorJoris2019-09-03 23:25:39 +0200
committerJoris2019-09-03 23:25:39 +0200
commit223ae6aa0b14c071d5719ada0cc6b43e9199a81b (patch)
tree6fc822b7b9bde1989e3c040eb52e5f4d52c49923 /src/executable/haskell/Service/AdListener.hs
parent5cedcecd6ae31e2485dcab2ddd74c74a4779545d (diff)
downloadad-listener-223ae6aa0b14c071d5719ada0cc6b43e9199a81b.tar.gz
ad-listener-223ae6aa0b14c071d5719ada0cc6b43e9199a81b.tar.bz2
ad-listener-223ae6aa0b14c071d5719ada0cc6b43e9199a81b.zip
Use wreq instead of http-conduit to maintain cookies in a session
Diffstat (limited to 'src/executable/haskell/Service/AdListener.hs')
-rw-r--r--src/executable/haskell/Service/AdListener.hs28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/executable/haskell/Service/AdListener.hs b/src/executable/haskell/Service/AdListener.hs
index 5cf26d1..c393f38 100644
--- a/src/executable/haskell/Service/AdListener.hs
+++ b/src/executable/haskell/Service/AdListener.hs
@@ -5,7 +5,7 @@ module Service.AdListener
import Control.Concurrent (threadDelay)
import qualified Data.Text as T
import qualified Data.Text.IO as T
-import Network.HTTP.Conduit (Manager)
+import Network.Wreq.Session (Session)
import Prelude hiding (error)
import Conf (Conf)
@@ -19,17 +19,17 @@ import qualified Service.MailService as MailService
import qualified Utils.Time as TimeUtils
import qualified View.Ad as Ad
-start :: Conf -> Manager -> IO ()
-start conf manager = do
- ads <- fetchAds conf manager
+start :: Conf -> Session -> IO ()
+start conf session = do
+ ads <- fetchAds conf session
let newURLs = map Ad.url ads
T.putStrLn "Listening to new ads…"
waitListenInterval conf
- listenToNewAdsWithViewedURLs conf manager newURLs
+ listenToNewAdsWithViewedURLs conf session newURLs
-listenToNewAdsWithViewedURLs :: Conf -> Manager -> [URL] -> IO ()
-listenToNewAdsWithViewedURLs conf manager viewedURLs = do
- ads <- fetchAds conf manager
+listenToNewAdsWithViewedURLs :: Conf -> Session -> [URL] -> IO ()
+listenToNewAdsWithViewedURLs conf session viewedURLs = do
+ ads <- fetchAds conf session
let (newURLs, newAds) = Ad.getNewAds viewedURLs ads
time <- TimeUtils.getCurrentFormattedTime
if not (null newAds)
@@ -40,13 +40,13 @@ listenToNewAdsWithViewedURLs conf manager viewedURLs = do
else
return ()
waitListenInterval conf
- listenToNewAdsWithViewedURLs conf manager (viewedURLs ++ newURLs)
+ listenToNewAdsWithViewedURLs conf session (viewedURLs ++ newURLs)
-fetchAds :: Conf -> Manager -> IO [Ad]
-fetchAds conf manager = do
- leboncoinAds <- FetchAd.leboncoin manager (Conf.leboncoinUrls conf)
- ouestFranceAds <- FetchAd.ouestFrance manager (Conf.ouestFranceUrls conf)
- seLogerAds <- FetchAd.seLoger manager (Conf.seLogerUrls conf)
+fetchAds :: Conf -> Session -> IO [Ad]
+fetchAds conf session = do
+ leboncoinAds <- FetchAd.leboncoin session (Conf.leboncoinUrls conf)
+ ouestFranceAds <- FetchAd.ouestFrance session (Conf.ouestFranceUrls conf)
+ seLogerAds <- FetchAd.seLoger session (Conf.seLogerUrls conf)
let results = leboncoinAds ++ ouestFranceAds ++ seLogerAds
T.putStrLn . T.concat $
[ "Parsed "