aboutsummaryrefslogtreecommitdiff
path: root/src/Parser/Resume.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Parser/Resume.hs')
-rw-r--r--src/Parser/Resume.hs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/Parser/Resume.hs b/src/Parser/Resume.hs
new file mode 100644
index 0000000..bd73912
--- /dev/null
+++ b/src/Parser/Resume.hs
@@ -0,0 +1,27 @@
+module Parser.Resume
+ ( parseResumes
+ ) where
+
+import Data.Maybe (catMaybes)
+
+import Text.HTML.TagSoup
+
+import Model.Resume
+
+import Parser.Utils
+
+parseResumes :: String -> [Resume]
+parseResumes page =
+ case sections (~== "<div class=list-lbc>") (parseTags page) of
+ [] ->
+ []
+ sectionTags : _ ->
+ let lbcTags = takeWhile (~/= "<div id=alertesCartouche>") sectionTags
+ in catMaybes . fmap parseResume $ partitions (~== "<a>") lbcTags
+
+parseResume :: [Tag String] -> Maybe Resume
+parseResume item = do
+ name <- getTagText "<h2 class=title>" item
+ let price = getTagText "<div class=price>" item
+ url <- getTagAttribute "<a>" "href" item
+ return Resume { name = name, price = price, url = url }