aboutsummaryrefslogtreecommitdiffhomepage
path: root/scaffolder/src/Text/Edifact/Fetcher/Simples.hs
blob: 47951ad6e43d31a54326d8a807940a7b853780ff (plain) (blame)
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
{-# LANGUAGE OverloadedStrings #-}

module Text.Edifact.Fetcher.Simples
  ( fetchSimples
  , simplesDirectory
  ) where

import           Text.Edifact.Fetcher.Commons
import           Text.Edifact.Scaffolder.Commons


import           Data.Foldable                   (traverse_)
import           Data.Text.Encoding              as TE (decodeUtf8)
import           Formatting

simplesDirectory :: FilePath
simplesDirectory = "simples"

fetchSimples :: [SimpleCode] -> Fetcher ()
fetchSimples = traverse_ (retry 3 . fetchSimple)

fetchSimple :: SimpleCode -> Fetcher ()
fetchSimple code = do
  say ("Fetching simple " % fSimpleCode) code
  url <- getUrl ("/uncl/uncl" % fSimpleCodeLower % ".htm") code
  outputFile <- getOutputFile (fSimpleCodeLower % ".txt") simplesDirectory code
  htmlToFile url TE.decodeUtf8 outputFile