From e2aa05e5114ccb53ed8d561c248db0ee83aa2e09 Mon Sep 17 00:00:00 2001 From: nlitkowski Date: Wed, 7 Apr 2021 00:42:40 +0200 Subject: [PATCH] WIP --- app/zborbielawa.hs | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/app/zborbielawa.hs b/app/zborbielawa.hs index deedc3b..f6613f1 100644 --- a/app/zborbielawa.hs +++ b/app/zborbielawa.hs @@ -13,27 +13,38 @@ import Text.Printf extractRecords = extractLinksWithText "//a[@class='mega-menu-link']" -- pary adres-tytuł - >>> second (arr $ replace "\r\n " " ") -- czyścimy drugi element pary, czyli tytuł z niepotrzebnych białych znaków - >>> first (arr ((++"tr") . init)) -- modyfikujemy pierwszy element pary, czyli adres URL - >>> first (extractLinksWithText "//li/a[contains(@href,'.pdf')]") -- pobieramy stronę z adresu URL i wyciągamy linki z tej strony pasujące do wyrażenia XPathowego + -- >>> second (arr $ replace "\r\n " "") -- czyścimy drugi element pary, czyli tytuł z niepotrzebnych białych znaków + -- >>> second (arr $ replace " " "") -- czyścimy drugi element pary, czyli tytuł z niepotrzebnych białych znaków +-- >>> first (arr ((++"tr") . init)) -- modyfikujemy pierwszy element pary, czyli adres URL + >>> first (extractLinksWithText "//a[@class='mega-menu-link']") -- pobieramy stronę z adresu URL i wyciągamy linki z tej strony pasujące do wyrażenia XPathowego + >>> first (second (arr $ replace "\r\n " "")) + >>> first (first ( + extractLinksWithText "//a[contains(@href,'.pdf')]" + >>> second (arr $ replace "\r\n " "") + -- >>> first (arr $ replace "//" "/") + ) + ) -- pobieramy stronę z adresu URL i wyciągamy linki z tej strony pasujące do wyrażenia XPathowego -- ostatecznie wyjdą trójki ((adres URL, tytuł artykułu), tytuł rocznika) -- ... a tutaj te trójki przerabiamy do docelowej struktury ShadowItem -toShadowItem :: ((String, String), String) -> ShadowItem -toShadowItem ((url, articleTitle), yearlyTitle) = +toShadowItem :: (((String, String), String), String) -> ShadowItem +toShadowItem (((url, chapterTitle), articleTitle), yearlyTitle) = (defaultShadowItem url title) { originalDate = Just date, itype = "periodical", format = Just "pdf", finalUrl = url } - where title = "Almanach Muszyny " ++ yearlyTitle ++ " " ++ (replace "\r\n" "" (replace "\r\n " "" articleTitle)) - date = getDate url + where title = articleTitle ++ (replace " " "" chapterTitle) + date = yearlyTitle -getDate url = - case url =~~ "/(19[0-9][0-9]|20[0-9][0-9])/" :: Maybe [[String]] of +getDate yearlyTitle = + case yearlyTitle =~~ "/(19[0-9][0-9]|20[0-9][0-9])/" :: Maybe [[String]] of Just [[_, year]] -> year - otherwise -> error $ "unexpected url: " ++ url + otherwise -> error $ "unexpected yearlyTitle: " ++ yearlyTitle + + + main = do