aip-0.0.1: src/Data/Aviation/Aip/AipDocuments.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Data.Aviation.Aip.AipDocuments(
AipDocuments(..)
, writeAipDocuments
, requestAipDocuments
, getAipDocuments
) where
import Control.Monad.IO.Class(liftIO)
import Data.ByteString(ByteString)
import Data.Maybe(maybeToList)
import System.FilePath((</>))
import System.IO(Handle)
import Control.Monad.Trans.Except(ExceptT)
import Data.Aviation.Aip.AipDate(uriAipDate)
import Data.Aviation.Aip.AipDocument(AipDocument(AipDocument), requestAipDocument)
import Data.Aviation.Aip.ConnErrorHttp4xx(ConnErrorHttp4xx)
import Data.Aviation.Aip.Ersa(Ersa(Ersa))
import Data.Aviation.Aip.Ersas(Ersas(Ersas), parseAipTree)
import Data.Aviation.Aip.HttpRequest(requestAipContents, aipRequestGet)
import Papa
newtype AipDocuments ty =
AipDocuments
[AipDocument ty]
deriving Show
makeWrapped ''AipDocuments
writeAipDocuments ::
Handle -- ^ log error
-> Handle -- ^ log out
-> FilePath
-> ExceptT ConnErrorHttp4xx IO [FilePath]
writeAipDocuments errlog outlog dir =
requestAipContents >>= liftIO . requestAipDocuments errlog outlog . getAipDocuments dir . parseAipTree
requestAipDocuments ::
Handle -- ^ log error
-> Handle -- ^ log out
-> AipDocuments ByteString
-> IO [FilePath]
requestAipDocuments errlog outlog (AipDocuments ds) =
(>>= maybeToList) <$> mapM (requestAipDocument errlog outlog) ds
getAipDocuments ::
FilePath -- output directory
-> Ersas
-> AipDocuments ByteString
getAipDocuments dir (Ersas ersas) =
let simpleAipDocuments =
[
-- AIP Book
"aip/complete.pdf"
, "aip/general.pdf"
, "aip/enroute.pdf"
, "aip/aerodrome.pdf"
, "aip/cover.pdf"
, "aip/index.pdf"
-- AIP Charts (current)
, "aipchart/erch/erch1.pdf"
, "aipchart/erch/erch2.pdf"
, "aipchart/erch/erch3.pdf"
, "aipchart/erch/erch4.pdf"
, "aipchart/erch/erch5.pdf"
, "aipchart/ercl/ercl1.pdf"
, "aipchart/ercl/ercl2.pdf"
, "aipchart/ercl/ercl3.pdf"
, "aipchart/ercl/ercl4.pdf"
, "aipchart/ercl/ercl5.pdf"
, "aipchart/ercl/ercl6.pdf"
, "aipchart/ercl/ercl7.pdf"
, "aipchart/ercl/ercl8.pdf"
, "aipchart/pca/PCA_back.pdf"
, "aipchart/pca/PCA_front.pdf"
, "aipchart/tac/tac1.pdf"
, "aipchart/tac/tac2.pdf"
, "aipchart/tac/tac3.pdf"
, "aipchart/tac/tac4.pdf"
, "aipchart/tac/tac5.pdf"
, "aipchart/tac/tac6.pdf"
, "aipchart/tac/tac7.pdf"
, "aipchart/tac/tac8.pdf"
, "aipchart/vnc/Adelaide_VNC.pdf"
, "aipchart/vnc/Brisbane_VNC.pdf"
, "aipchart/vnc/Bundaberg_VNC.pdf"
, "aipchart/vnc/Cairns_VNC.pdf"
, "aipchart/vnc/Darwin_VNC.pdf"
, "aipchart/vnc/Deniliquin_VNC.pdf"
, "aipchart/vnc/Hobart_VNC.pdf"
, "aipchart/vnc/Launceston_VNC.pdf"
, "aipchart/vnc/Melbourne_VNC.pdf"
, "aipchart/vnc/Newcastle_VNC.pdf"
, "aipchart/vnc/Perth_VNC.pdf"
, "aipchart/vnc/Rockhampton_VNC.pdf"
, "aipchart/vnc/Sydney_VNC.pdf"
, "aipchart/vnc/Tindal_VNC.pdf"
, "aipchart/vnc/Townsville_VNC.pdf"
, "aipchart/vtc/Adelaide_VTC.pdf"
, "aipchart/vtc/Albury_VTC.pdf"
, "aipchart/vtc/AliceSprings_Uluru_VTC.pdf"
, "aipchart/vtc/Brisbane_Sunshine_VTC.pdf"
, "aipchart/vtc/Broome_VTC.pdf"
, "aipchart/vtc/Cairns_VTC.pdf"
, "aipchart/vtc/Canberra_VTC.pdf"
, "aipchart/vtc/Coffs_Harbour_VTC.pdf"
, "aipchart/vtc/Darwin_VTC.pdf"
, "aipchart/vtc/Gold_Coast_VTC.pdf"
, "aipchart/vtc/Hobart_VTC.pdf"
, "aipchart/vtc/Karratha_VTC.pdf"
, "aipchart/vtc/Launceston_VTC.pdf"
, "aipchart/vtc/Mackay_VTC.pdf"
, "aipchart/vtc/Melbourne_VTC.pdf"
, "aipchart/vtc/Newcastle_Williamtown_VTC.pdf"
, "aipchart/vtc/Oakey_Bris_VTC.pdf"
, "aipchart/vtc/perth_legend.pdf"
, "aipchart/vtc/Perth_VTC.pdf"
, "aipchart/vtc/Rockhampton_VTC.pdf"
, "aipchart/vtc/Sydney_VTC.pdf"
, "aipchart/vtc/Tamworth_VTC.pdf"
, "aipchart/vtc/Townsville_VTC.pdf"
, "aipchart/vtc/Whitsunday_VTC.pdf"
-- DAP
, "dap/SpecNotManTOC.htm"
, "dap/ChecklistTOC.htm"
, "dap/LegendInfoTablesTOC.htm"
, "dap/AeroProcChartsTOC.htm"
-- DAH
, "dah/dah.pdf"
-- Precision Approach Terrain Charts and Type A & Type B Obstacle Charts
, "chart/TypeAandBCharts.pdf"
]
ersaprelim =
[
"GUID_ersa-fac-1-3"
, "GUID_ersa-fac-1-4"
, "GUID_ersa-fac-1-5"
, "PRD_"
, "LND_"
, "IFR_"
, "VFR_"
, "GUID_ersa-fac-2-2"
, "GUID_ersa-fac-2-3"
, "GUID_ersa-fac-2-4"
, "GUID_ersa-fac-2-5"
, "GUID_ersa-fac-2-6"
, "GUID_ersa-fac-2-7"
, "GUID_ersa-fac-2-8"
, "GUID_ersa-fac-2-9"
, "GUID_ersa-fac-2-10"
, "GUID_ersa-fac-2-11"
, "GUID_ersa-fac-2-12"
, "GUID_ersa-fac-2-14"
]
ersafac =
[
"FAC_YADY"
, "FAC_ADAC"
, "FAC_YPAD"
, "FAC_YPPF"
, "FAC_YALG"
, "FAC_YABA"
, "FAC_YMAY"
, "FAC_YADG"
, "FAC_YBAS"
, "FAC_YAPH"
, "FAC_YAMT"
, "FAC_YAMB"
, "FAC_YANK"
, "FAC_YAMC"
, "FAC_YARA"
, "FAC_YARS"
, "FAC_YARG"
, "FAC_YARK"
, "FAC_YARM"
, "FAC_YARY"
, "FAC_YATN"
, "FAC_YAUG"
, "FAC_YAGD"
, "FAC_YAUR"
, "FAC_YMAV"
, "FAC_YAYE"
, "FAC_YAYR"
, "FAC_YBSS"
, "FAC_YBAU"
, "FAC_YBNS"
, "FAC_YBLC"
, "FAC_YBGO"
, "FAC_YBLT"
, "FAC_YLLE"
, "FAC_YBIU"
, "FAC_YBNA"
, "FAC_YBRN"
, "FAC_YBMY"
, "FAC_YBAD"
, "FAC_YBAB"
, "FAC_YBAR"
, "FAC_YBRY"
, "FAC_YBWX"
, "FAC_YBRS"
, "FAC_YBYL"
, "FAC_YBTH"
, "FAC_YBTI"
, "FAC_YBFT"
, "FAC_YBIE"
, "FAC_YBEB"
, "FAC_YBLU"
, "FAC_YBLA"
, "FAC_YBDG"
, "FAC_YBEO"
, "FAC_YBEE"
, "FAC_YBYS"
, "FAC_YBHL"
, "FAC_YBIR"
, "FAC_YBDV"
, "FAC_YBCK"
, "FAC_YBTR"
, "FAC_YBLP"
, "FAC_YBOI"
, "FAC_YBLL"
, "FAC_YBOM"
, "FAC_YBOC"
, "FAC_YBGD"
, "FAC_YBMI"
, "FAC_YBOA"
, "FAC_YBBT"
, "FAC_YBOR"
, "FAC_YBRL"
, "FAC_YBOU"
, "FAC_YBKE"
, "FAC_YBWN"
, "FAC_YBPI"
, "FAC_YBRW"
, "FAC_YBGR"
, "FAC_BNAC"
, "FAC_YBWW"
, "FAC_YBBN"
, "FAC_YBAF"
, "FAC_YBHI"
, "FAC_BML"
, "FAC_YBRM"
, "FAC_YBUN"
, "FAC_YBUD"
, "FAC_YBKT"
, "FAC_YBLN"
, "FAC_YCAB"
, "FAC_YCDH"
, "FAC_YCAG"
, "FAC_YBCS"
, "FAC_YCDR"
, "FAC_YCVG"
, "FAC_YSCN"
, "FAC_YCMH"
, "FAC_YCMW"
, "FAC_YSCB"
, "FAC_YCLQ"
, "FAC_YCEL"
, "FAC_YCAV"
, "FAC_YCDW"
, "FAC_YCAR"
, "FAC_YCAS"
, "FAC_YCTN"
, "FAC_YCDU"
, "FAC_YCNY"
, "FAC_YCES"
, "FAC_YCNK"
, "FAC_YBCV"
, "FAC_YCHT"
, "FAC_YCGO"
, "FAC_YCCA"
, "FAC_YCHK"
, "FAC_YPXM"
, "FAC_YCVA"
, "FAC_YCMT"
, "FAC_YCEE"
, "FAC_YCFN"
, "FAC_YCCY"
, "FAC_YUNY"
, "FAC_YCBA"
, "FAC_YCDE"
, "FAC_YCCT"
, "FAC_YPCC"
, "FAC_YCOE"
, "FAC_YCFS"
, "FAC_YCOH"
, "FAC_YOLA"
, "FAC_YCEM"
, "FAC_YCBR"
, "FAC_YCSV"
, "FAC_YCDO"
, "FAC_YCBP"
, "FAC_YCOO"
, "FAC_YCKN"
, "FAC_YCAH"
, "FAC_YCXA"
, "FAC_YPFT"
, "FAC_YCOM"
, "FAC_YBCM"
, "FAC_YCBB"
, "FAC_YCNM"
, "FAC_YCWA"
, "FAC_YCTM"
, "FAC_YCOR"
, "FAC_YCRG"
, "FAC_YCWL"
, "FAC_YCWR"
, "FAC_YCRN"
, "FAC_YCKI"
, "FAC_YCRL"
, "FAC_YCRY"
, "FAC_YCUE"
, "FAC_YCMM"
, "FAC_YCUN"
, "FAC_YCMU"
, "FAC_YCIN"
, "FAC_YDAY"
, "FAC_YDLO"
, "FAC_YDNI"
, "FAC_DNAC"
, "FAC_YPDN"
, "FAC_YDPD"
, "FAC_YDGU"
, "FAC_YDWF"
, "FAC_YDLV"
, "FAC_YDLT"
, "FAC_YDLQ"
, "FAC_YDEK"
, "FAC_YDBY"
, "FAC_YDPO"
, "FAC_YDBI"
, "FAC_YDOC"
, "FAC_YDVR"
, "FAC_YDOD"
, "FAC_YDOP"
, "FAC_YDMG"
, "FAC_YDOR"
, "FAC_YDRN"
, "FAC_YDRD"
, "FAC_YSDU"
, "FAC_YDKG"
, "FAC_YDBR"
, "FAC_YDKI"
, "FAC_YDUN"
, "FAC_YDRH"
, "FAC_YDRI"
, "FAC_YDYS"
, "FAC_YEJI"
, "FAC_YMES"
, "FAC_YECH"
, "FAC_YECB"
, "FAC_YPED"
, "FAC_YESD"
, "FAC_YELD"
, "FAC_YEQY"
, "FAC_YELN"
, "FAC_YESE"
, "FAC_YEML"
, "FAC_YMKT"
, "FAC_YEMP"
, "FAC_YENO"
, "FAC_YEHP"
, "FAC_YERN"
, "FAC_YEMG"
, "FAC_YESC"
, "FAC_YESP"
, "FAC_YEUO"
, "FAC_YEUA"
, "FAC_YEVD"
, "FAC_YEXM"
, "FAC_YFDN"
, "FAC_YFTZ"
, "FAC_YFLI"
, "FAC_YFBS"
, "FAC_YFRT"
, "FAC_YFTA"
, "FAC_YFDF"
, "FAC_YFRG"
, "FAC_YGAD"
, "FAC_YGPT"
, "FAC_YGAS"
, "FAC_YGAW"
, "FAC_YGAY"
, "FAC_YGTO"
, "FAC_YGTN"
, "FAC_YGEL"
, "FAC_YGIB"
, "FAC_YGLS"
, "FAC_YGIL"
, "FAC_YGIA"
, "FAC_YGIG"
, "FAC_YGLA"
, "FAC_YGLI"
, "FAC_YGNB"
, "FAC_YGLO"
, "FAC_YBCG"
, "FAC_YGGE"
, "FAC_YGDA"
, "FAC_YGWA"
, "FAC_YGDI"
, "FAC_YGLB"
, "FAC_YPGV"
, "FAC_YGFN"
, "FAC_YGRS"
, "FAC_YGKL"
, "FAC_YGRL"
, "FAC_YGDS"
, "FAC_YGTH"
, "FAC_YGTE"
, "FAC_YGDO"
, "FAC_YGDH"
, "FAC_YGYM"
, "FAC_YHAA"
, "FAC_YHLC"
, "FAC_YHML"
, "FAC_YBHM"
, "FAC_YHAW"
, "FAC_YHAY"
, "FAC_YHEC"
, "FAC_YHCS"
, "FAC_YHMB"
, "FAC_YHBA"
, "FAC_YHLS"
, "FAC_YMHB"
, "FAC_YCBG"
, "FAC_YHBK"
, "FAC_YSHW"
, "FAC_YHON"
, "FAC_YHOO"
, "FAC_YHPN"
, "FAC_YHID"
, "FAC_YHSM"
, "FAC_YHUG"
, "FAC_YHRD"
, "FAC_YIFY"
, "FAC_YILF"
, "FAC_YIGM"
, "FAC_YINJ"
, "FAC_YIKM"
, "FAC_YINN"
, "FAC_YIMT"
, "FAC_YIFL"
, "FAC_YIVL"
, "FAC_YISF"
, "FAC_YIVO"
, "FAC_YJAB"
, "FAC_YJAC"
, "FAC_YJST"
, "FAC_YJER"
, "FAC_YJBY"
, "FAC_YJIN"
, "FAC_YJLC"
, "FAC_YJDA"
, "FAC_YJUN"
, "FAC_YJNB"
, "FAC_YKDI"
, "FAC_YKBR"
, "FAC_YPKG"
, "FAC_YKKG"
, "FAC_YKAL"
, "FAC_YKBL"
, "FAC_YKML"
, "FAC_YKAR"
, "FAC_YPKA"
, "FAC_YKMB"
, "FAC_YKNG"
, "FAC_YKAT"
, "FAC_YKMP"
, "FAC_YKER"
, "FAC_YKHO"
, "FAC_YKDM"
, "FAC_YKID"
, "FAC_YKCY"
, "FAC_YKLE"
, "FAC_YIMB"
, "FAC_YKKN"
, "FAC_YKII"
, "FAC_YKRY"
, "FAC_YKCS"
, "FAC_YKSC"
, "FAC_YKIG"
, "FAC_YKBN"
, "FAC_YKOW"
, "FAC_YKUB"
, "FAC_YPKU"
, "FAC_YKTN"
, "FAC_YLCG"
, "FAC_YLEV"
, "FAC_YLJN"
, "FAC_YKEP"
, "FAC_YLMQ"
, "FAC_YLKE"
, "FAC_YLAK"
, "FAC_YLCK"
, "FAC_YLTV"
, "FAC_YMLT"
, "FAC_YLTN"
, "FAC_YLAW"
, "FAC_YLAH"
, "FAC_YPLM"
, "FAC_YLGU"
, "FAC_YLEC"
, "FAC_YLST"
, "FAC_YLEG"
, "FAC_YLEO"
, "FAC_YLED"
, "FAC_YLRD"
, "FAC_YLIL"
, "FAC_YLIS"
, "FAC_YLZI"
, "FAC_YLHR"
, "FAC_YLCS"
, "FAC_YLRE"
, "FAC_YLHI"
, "FAC_YLOR"
, "FAC_YLOH"
, "FAC_YLOX"
, "FAC_YLYK"
, "FAC_YMAA"
, "FAC_YBMK"
, "FAC_YMND"
, "FAC_YMLD"
, "FAC_YMCO"
, "FAC_YMNG"
, "FAC_YMGD"
, "FAC_YMJM"
, "FAC_YMFD"
, "FAC_YMBL"
, "FAC_YMBA"
, "FAC_YMGT"
, "FAC_YMGR"
, "FAC_YALA"
, "FAC_YMRE"
, "FAC_YMYB"
, "FAC_YMBU"
, "FAC_YMHU"
, "FAC_YMEK"
, "FAC_MLAC"
, "FAC_YMML"
, "FAC_YMEN"
, "FAC_YMMB"
, "FAC_YMEL"
, "FAC_YMET"
, "FAC_YMEI"
, "FAC_YMER"
, "FAC_YMDN"
, "FAC_YMMU"
, "FAC_YMIA"
, "FAC_YMLS"
, "FAC_YMGB"
, "FAC_YMIO"
, "FAC_YMCT"
, "FAC_YMMN"
, "FAC_YMDR"
, "FAC_YMPA"
, "FAC_YMIB"
, "FAC_YMIT"
, "FAC_YITT"
, "FAC_YMIG"
, "FAC_YMMO"
, "FAC_YMOD"
, "FAC_YMNK"
, "FAC_YMTO"
, "FAC_YOOM"
, "FAC_YMOO"
, "FAC_YMRB"
, "FAC_YMRW"
, "FAC_YMOR"
, "FAC_YMNY"
, "FAC_YMTI"
, "FAC_YMRY"
, "FAC_YMBT"
, "FAC_YMDY"
, "FAC_YMCL"
, "FAC_YMTG"
, "FAC_YGON"
, "FAC_YMHL"
, "FAC_YHOT"
, "FAC_YMHO"
, "FAC_YMHW"
, "FAC_YBMA"
, "FAC_YMNE"
, "FAC_YMOG"
, "FAC_YMSF"
, "FAC_YMOU"
, "FAC_YMDG"
, "FAC_YMWA"
, "FAC_YMDA"
, "FAC_YMGI"
, "FAC_YLMU"
, "FAC_YMRG"
, "FAC_YMBD"
, "FAC_YMUL"
, "FAC_YMAE"
, "FAC_YMMI"
, "FAC_YMUR"
, "FAC_YMTB"
, "FAC_YMYU"
, "FAC_YNKR"
, "FAC_YNGW"
, "FAC_YNAP"
, "FAC_YNRC"
, "FAC_YNRB"
, "FAC_YNBR"
, "FAC_YNAR"
, "FAC_YNRG"
, "FAC_YNRM"
, "FAC_YNEY"
, "FAC_YNRH"
, "FAC_YNWN"
, "FAC_YNGU"
, "FAC_YNHL"
, "FAC_YCNF"
, "FAC_YNSH"
, "FAC_YSNF"
, "FAC_YNTN"
, "FAC_YNSM"
, "FAC_YNWF"
, "FAC_YNTM"
, "FAC_YNPE"
, "FAC_YNOV"
, "FAC_YSNW"
, "FAC_YNUL"
, "FAC_YNUB"
, "FAC_YNUM"
, "FAC_YNYN"
, "FAC_YBOK"
, "FAC_YOAY"
, "FAC_YOCA"
, "FAC_YOEN"
, "FAC_YOLD"
, "FAC_YOLW"
, "FAC_YOOD"
, "FAC_YORG"
, "FAC_YOEH"
, "FAC_YORB"
, "FAC_YORR"
, "FAC_YOSB"
, "FAC_YPAC"
, "FAC_YPAM"
, "FAC_YPAY"
, "FAC_YPBO"
, "FAC_YPKS"
, "FAC_YPEA"
, "FAC_YPEF"
, "FAC_PHAC"
, "FAC_YPPH"
, "FAC_YPJT"
, "FAC_YPTB"
, "FAC_YPBH"
, "FAC_YPID"
, "FAC_YPNN"
, "FAC_YPWH"
, "FAC_YPLU"
, "FAC_YMPC"
, "FAC_YPCE"
, "FAC_YPOK"
, "FAC_YPMP"
, "FAC_YPAG"
, "FAC_POCA"
, "FAC_YPPD"
, "FAC_YPKT"
, "FAC_YPLC"
, "FAC_YPMQ"
, "FAC_YPIR"
, "FAC_YPOD"
, "FAC_YPMH"
, "FAC_YBPN"
, "FAC_YPKL"
, "FAC_YPUG"
, "FAC_YQNS"
, "FAC_YQLP"
, "FAC_YQDI"
, "FAC_YQRN"
, "FAC_YRNG"
, "FAC_YNRV"
, "FAC_YRYP"
, "FAC_YRED"
, "FAC_YREN"
, "FAC_YSRI"
, "FAC_YRMD"
, "FAC_YRID"
, "FAC_YRBE"
, "FAC_YRBK"
, "FAC_YROB"
, "FAC_YROI"
, "FAC_YBRK"
, "FAC_YRLL"
, "FAC_YROM"
, "FAC_YRSY"
, "FAC_YRAY"
, "FAC_YRSB"
, "FAC_YRSH"
, "FAC_YRTI"
, "FAC_YRNS"
, "FAC_YRPA"
, "FAC_YRTP"
, "FAC_YRYL"
, "FAC_YSII"
, "FAC_YSTA"
, "FAC_YSGE"
, "FAC_YSTH"
, "FAC_YSAM"
, "FAC_YBSG"
, "FAC_YSCO"
, "FAC_YSCA"
, "FAC_YSLK"
, "FAC_YSEN"
, "FAC_YSHK"
, "FAC_YSHG"
, "FAC_YSHT"
, "FAC_YSHR"
, "FAC_YSGT"
, "FAC_YSMI"
, "FAC_YSNB"
, "FAC_YSOL"
, "FAC_YSMB"
, "FAC_YSGW"
, "FAC_YGBI"
, "FAC_YSGR"
, "FAC_YSCR"
, "FAC_YSPT"
, "FAC_YSPK"
, "FAC_YSPI"
, "FAC_YSPE"
, "FAC_YSWL"
, "FAC_YSFG"
, "FAC_YSTO"
, "FAC_YSRN"
, "FAC_YKBY"
, "FAC_YSNY"
, "FAC_YSRD"
, "FAC_YBSU"
, "FAC_YSRT"
, "FAC_YSWB"
, "FAC_YSWH"
, "FAC_YSSY"
, "FAC_YSBK"
, "FAC_YTMB"
, "FAC_YSTW"
, "FAC_YTMN"
, "FAC_YTAA"
, "FAC_YTRE"
, "FAC_YTAM"
, "FAC_YTEF"
, "FAC_YTEM"
, "FAC_YTNK"
, "FAC_YTNG"
, "FAC_YTGM"
, "FAC_YTGT"
, "FAC_YLKS"
, "FAC_YTMO"
, "FAC_YVAL"
, "FAC_YTDR"
, "FAC_YTHY"
, "FAC_YTIB"
, "FAC_YTLP"
, "FAC_YTBR"
, "FAC_YPTN"
, "FAC_YTOC"
, "FAC_YTDN"
, "FAC_YTKS"
, "FAC_YTWN"
, "FAC_YTWB"
, "FAC_YTQY"
, "FAC_YTOT"
, "FAC_YBTL"
, "FAC_YTEE"
, "FAC_YTRA"
, "FAC_YTTI"
, "FAC_YTFA"
, "FAC_YTST"
, "FAC_YTUY"
, "FAC_YTBB"
, "FAC_YTMU"
, "FAC_YTPK"
, "FAC_YTYA"
, "FAC_YTYH"
, "FAC_YUDA"
, "FAC_YUDG"
, "FAC_YVRS"
, "FAC_YVRD"
, "FAC_YSWG"
, "FAC_YWHG"
, "FAC_YWKI"
, "FAC_YWCH"
, "FAC_YWLG"
, "FAC_YWAG"
, "FAC_YWGT"
, "FAC_YWBR"
, "FAC_YWRL"
, "FAC_YWKW"
, "FAC_YWVA"
, "FAC_YWBS"
, "FAC_YWBI"
, "FAC_YWKB"
, "FAC_YWRN"
, "FAC_YWBL"
, "FAC_YWCK"
, "FAC_YWTL"
, "FAC_YWTB"
, "FAC_YWSG"
, "FAC_YWAV"
, "FAC_YWBN"
, "FAC_YBWP"
, "FAC_YWEL"
, "FAC_YWTO"
, "FAC_YANG"
, "FAC_WMD"
, "FAC_YWSL"
, "FAC_YWWL"
, "FAC_YWST"
, "FAC_YWHC"
, "FAC_YWHA"
, "FAC_YWCA"
, "FAC_YWMC"
, "FAC_YWIS"
, "FAC_YWLM"
, "FAC_YWLU"
, "FAC_YWDG"
, "FAC_YWDH"
, "FAC_YWTN"
, "FAC_YWVR"
, "FAC_YWOL"
, "FAC_YWHP"
, "FAC_YWND"
, "FAC_YWDL"
, "FAC_YWWI"
, "FAC_YPWR"
, "FAC_YWMP"
, "FAC_YWUD"
, "FAC_YWYA"
, "FAC_YWYF"
, "FAC_YWYM"
, "FAC_YWYY"
, "FAC_YWYR"
, "FAC_YYMI"
, "FAC_YYBK"
, "FAC_YYRM"
, "FAC_YYWG"
, "FAC_YYKI"
, "FAC_YYNG"
, "FAC_YYND"
]
ersards =
[
"RDS_YPAD"
, "RDS_YPPF"
, "RDS_YABA"
, "RDS_YMAY"
, "RDS_YBAS"
, "RDS_YAPH"
, "RDS_YAMB"
, "RDS_YARA"
, "RDS_YARG"
, "RDS_YARM"
, "RDS_YAUR"
, "RDS_YMAV"
, "RDS_YAYE"
, "RDS_YBNS"
, "RDS_YBGO"
, "RDS_YBLT"
, "RDS_YLLE"
, "RDS_YBNA"
, "RDS_YBRN"
, "RDS_YBAR"
, "RDS_YBRY"
, "RDS_YBWX"
, "RDS_YBTH"
, "RDS_YBTI"
, "RDS_YBIE"
, "RDS_YBLU"
, "RDS_YBLA"
, "RDS_YBDG"
, "RDS_YBIR"
, "RDS_YBDV"
, "RDS_YBCK"
, "RDS_YBGD"
, "RDS_YBOU"
, "RDS_YBKE"
, "RDS_YBWN"
, "RDS_YBRW"
, "RDS_YBWW"
, "RDS_YBBN"
, "RDS_YBAF"
, "RDS_YBHI"
, "RDS_YBRM"
, "RDS_YBUN"
, "RDS_YBUD"
, "RDS_YBKT"
, "RDS_YBLN"
, "RDS_YBCS"
, "RDS_YSCN"
, "RDS_YCMW"
, "RDS_YSCB"
, "RDS_YCAR"
, "RDS_YCDU"
, "RDS_YCNY"
, "RDS_YCNK"
, "RDS_YBCV"
, "RDS_YCHT"
, "RDS_YCGO"
, "RDS_YCCA"
, "RDS_YCHK"
, "RDS_YPXM"
, "RDS_YCMT"
, "RDS_YCEE"
, "RDS_YCCY"
, "RDS_YCBA"
, "RDS_YPCC"
, "RDS_YCOE"
, "RDS_YCFS"
, "RDS_YCDO"
, "RDS_YCBP"
, "RDS_YCKN"
, "RDS_YCAH"
, "RDS_YCOM"
, "RDS_YCBB"
, "RDS_YCNM"
, "RDS_YCWA"
, "RDS_YCTM"
, "RDS_YCOR"
, "RDS_YCRG"
, "RDS_YCWR"
, "RDS_YCKI"
, "RDS_YCUN"
, "RDS_YCMU"
, "RDS_YCIN"
, "RDS_YDLO"
, "RDS_YPDN"
, "RDS_YDGU"
, "RDS_YDLQ"
, "RDS_YDBY"
, "RDS_YDPO"
, "RDS_YDBI"
, "RDS_YDOD"
, "RDS_YDMG"
, "RDS_YSDU"
, "RDS_YDKG"
, "RDS_YEJI"
, "RDS_YMES"
, "RDS_YECH"
, "RDS_YPED"
, "RDS_YELD"
, "RDS_YEML"
, "RDS_YESP"
, "RDS_YFTZ"
, "RDS_YFLI"
, "RDS_YFBS"
, "RDS_YFRT"
, "RDS_YFTA"
, "RDS_YFDF"
, "RDS_YGPT"
, "RDS_YGAY"
, "RDS_YGTN"
, "RDS_YGEL"
, "RDS_YGIA"
, "RDS_YGIG"
, "RDS_YGLA"
, "RDS_YGLI"
, "RDS_YBCG"
, "RDS_YGGE"
, "RDS_YGDA"
, "RDS_YGDI"
, "RDS_YGLB"
, "RDS_YPGV"
, "RDS_YGFN"
, "RDS_YGRS"
, "RDS_YGTH"
, "RDS_YGTE"
, "RDS_YGDH"
, "RDS_YHLC"
, "RDS_YHML"
, "RDS_YBHM"
, "RDS_YHAY"
, "RDS_YHBA"
, "RDS_YMHB"
, "RDS_YHPN"
, "RDS_YHID"
, "RDS_YHSM"
, "RDS_YHUG"
, "RDS_YIFL"
, "RDS_YIVL"
, "RDS_YJAB"
, "RDS_YJAC"
, "RDS_YJLC"
, "RDS_YJUN"
, "RDS_YKBR"
, "RDS_YPKG"
, "RDS_YKKG"
, "RDS_YKAL"
, "RDS_YKAR"
, "RDS_YPKA"
, "RDS_YKMB"
, "RDS_YKNG"
, "RDS_YKMP"
, "RDS_YKER"
, "RDS_YIMB"
, "RDS_YKII"
, "RDS_YKRY"
, "RDS_YKSC"
, "RDS_YKOW"
, "RDS_YPKU"
, "RDS_YLCG"
, "RDS_YLEV"
, "RDS_YLTV"
, "RDS_YMLT"
, "RDS_YLTN"
, "RDS_YPLM"
, "RDS_YLEC"
, "RDS_YLST"
, "RDS_YLEO"
, "RDS_YLRD"
, "RDS_YLIS"
, "RDS_YLHR"
, "RDS_YLRE"
, "RDS_YLHI"
, "RDS_YLOX"
, "RDS_YBMK"
, "RDS_YMND"
, "RDS_YMCO"
, "RDS_YMNG"
, "RDS_YMGD"
, "RDS_YMJM"
, "RDS_YMBA"
, "RDS_YMYB"
, "RDS_YMBU"
, "RDS_YMHU"
, "RDS_YMEK"
, "RDS_YMML"
, "RDS_YMEN"
, "RDS_YMMB"
, "RDS_YMER"
, "RDS_YMMU"
, "RDS_YMIA"
, "RDS_YMLS"
, "RDS_YMGB"
, "RDS_YOOM"
, "RDS_YMRB"
, "RDS_YMRW"
, "RDS_YMOR"
, "RDS_YMTI"
, "RDS_YMRY"
, "RDS_YMTG"
, "RDS_YGON"
, "RDS_YHOT"
, "RDS_YBMA"
, "RDS_YMNE"
, "RDS_YMOG"
, "RDS_YMDG"
, "RDS_YMUL"
, "RDS_YMMI"
, "RDS_YNRC"
, "RDS_YNBR"
, "RDS_YNAR"
, "RDS_YNRM"
, "RDS_YNWN"
, "RDS_YNGU"
, "RDS_YNHL"
, "RDS_YCNF"
, "RDS_YSNF"
, "RDS_YNTN"
, "RDS_YNSM"
, "RDS_YNPE"
, "RDS_YNOV"
, "RDS_YSNW"
, "RDS_YNUM"
, "RDS_YNYN"
, "RDS_YBOK"
, "RDS_YOEN"
, "RDS_YOLD"
, "RDS_YOLW"
, "RDS_YORG"
, "RDS_YORB"
, "RDS_YOSB"
, "RDS_YPAM"
, "RDS_YPBO"
, "RDS_YPKS"
, "RDS_YPEA"
, "RDS_YPPH"
, "RDS_YPJT"
, "RDS_YPLU"
, "RDS_YMPC"
, "RDS_YPCE"
, "RDS_YPMP"
, "RDS_YPAG"
, "RDS_YPPD"
, "RDS_YPKT"
, "RDS_YPLC"
, "RDS_YPMQ"
, "RDS_YPIR"
, "RDS_YPOD"
, "RDS_YPMH"
, "RDS_YBPN"
, "RDS_YQLP"
, "RDS_YQDI"
, "RDS_YRNG"
, "RDS_YNRV"
, "RDS_YREN"
, "RDS_YSRI"
, "RDS_YRMD"
, "RDS_YROI"
, "RDS_YBRK"
, "RDS_YROM"
, "RDS_YRTI"
, "RDS_YSII"
, "RDS_YSTA"
, "RDS_YSGE"
, "RDS_YSTH"
, "RDS_YBSG"
, "RDS_YSCO"
, "RDS_YSLK"
, "RDS_YSHK"
, "RDS_YSHT"
, "RDS_YSNB"
, "RDS_YSOL"
, "RDS_YGBI"
, "RDS_YSCR"
, "RDS_YSPT"
, "RDS_YSPE"
, "RDS_YSWL"
, "RDS_YSRN"
, "RDS_YKBY"
, "RDS_YSRD"
, "RDS_YBSU"
, "RDS_YSWH"
, "RDS_YSSY"
, "RDS_YSBK"
, "RDS_YSTW"
, "RDS_YTRE"
, "RDS_YTAM"
, "RDS_YTEF"
, "RDS_YTEM"
, "RDS_YTNK"
, "RDS_YTNG"
, "RDS_YTGM"
, "RDS_YTGT"
, "RDS_YTMO"
, "RDS_YTIB"
, "RDS_YPTN"
, "RDS_YTOC"
, "RDS_YTWB"
, "RDS_YBTL"
, "RDS_YTEE"
, "RDS_YTRA"
, "RDS_YTTI"
, "RDS_YTST"
, "RDS_YTBB"
, "RDS_YTMU"
, "RDS_YSWG"
, "RDS_YWKI"
, "RDS_YWLG"
, "RDS_YWGT"
, "RDS_YWBR"
, "RDS_YWKB"
, "RDS_YWRN"
, "RDS_YWBL"
, "RDS_YWCK"
, "RDS_YBWP"
, "RDS_YWTO"
, "RDS_YANG"
, "RDS_YWSL"
, "RDS_YWWL"
, "RDS_YWHA"
, "RDS_YWLM"
, "RDS_YWLU"
, "RDS_YWDG"
, "RDS_YWDH"
, "RDS_YWTN"
, "RDS_YWOL"
, "RDS_YPWR"
, "RDS_YWUD"
, "RDS_YWYF"
, "RDS_YWYM"
, "RDS_YWYY"
, "RDS_YYRM"
, "RDS_YYWG"
, "RDS_YYKI"
, "RDS_YYNG"
]
allersa =
(ersaprelim ++ ersafac ++ ersards) >>= \f ->
["current", "pending"] >>= \q ->
ersas >>= \(Ersa _ d) ->
let req = concat [q, "/ersa/", f, "_", uriAipDate d, ".pdf"]
in pure (AipDocument (aipRequestGet req "") (dir </> req))
allSimpleAipDocuments =
simpleAipDocuments >>= \x ->
["current", "pending"] >>= \q ->
let req = concat [q, "/", x]
in pure (AipDocument (aipRequestGet req "") (dir </> req))
in AipDocuments
(allSimpleAipDocuments ++ allersa)