module FetchAd ( leboncoin , ouestFrance , seLoger ) where import Data.Either (rights) import Network.Wreq.Session (Session) import Model.Ad (Ad) import Model.URL (URL) import qualified Parser.LeboncoinParser as LeboncoinParser import qualified Parser.OuestFranceParser as OuestFranceParser import qualified Parser.SeLogerParser as SeLogerParser import qualified Utils.HTTP as HTTP leboncoin :: Session -> [URL] -> IO [Ad] leboncoin session urls = fmap (concat . map LeboncoinParser.parse . rights) . sequence . map (HTTP.get session) $ urls ouestFrance :: Session -> [URL] -> IO [Ad] ouestFrance session urls = fmap (concat . map OuestFranceParser.parse . rights) . sequence . map (HTTP.get session) $ urls seLoger :: Session -> [URL] -> IO [Ad] seLoger session urls = fmap (concat . map SeLogerParser.parse . rights) . sequence . map (HTTP.get session) $ urls