module Parser.Resume ( parseResumes ) where import Data.Maybe (catMaybes) import Data.Text (Text) import qualified Data.Text as T import Text.HTML.TagSoup import Model.Resume import Parser.Utils parseResumes :: Text -> [Resume] parseResumes page = case sections (~== "
") (parseTags page) of [] -> [] sectionTags : _ -> let lbcTags = takeWhile (~/= "
") sectionTags in catMaybes . fmap parseResume $ partitions (~== "") lbcTags parseResume :: [Tag Text] -> Maybe Resume parseResume item = do name <- getTagTextAfter "

" item let price = getTagTextAfter "