aboutsummaryrefslogtreecommitdiff
path: root/src/lib/haskell/FetchAd.hs
blob: 1708fe482499c0c943843595e1e203a381ba35bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
module FetchAd
  ( leboncoin
  , ouestFrance
  , seLoger
  ) where

import           Data.Either              (rights)
import           Network.HTTP.Conduit     (Manager)

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 :: Manager -> [URL] -> IO [Ad]
leboncoin manager urls =
  fmap (concat . map LeboncoinParser.parse . rights)
    . sequence
    . map (HTTP.get manager)
    $ urls

ouestFrance :: Manager -> [URL] -> IO [Ad]
ouestFrance manager urls =
  fmap (concat . map OuestFranceParser.parse . rights)
    . sequence
    . map (HTTP.get manager)
    $ urls

seLoger :: Manager -> [URL] -> IO [Ad]
seLoger manager urls =
  fmap (concat . map SeLogerParser.parse . rights)
    . sequence
    . map (HTTP.get manager)
    $ urls