Commit cd47885d authored by Mael NICOLAS's avatar Mael NICOLAS

fix #1

parent ace45a17
...@@ -31,10 +31,11 @@ runSimpleFindPubmedAbstractRequest rq = do ...@@ -31,10 +31,11 @@ runSimpleFindPubmedAbstractRequest rq = do
(mkClientEnv manager' $ BaseUrl Https "eutils.ncbi.nlm.nih.gov" 443 "entrez/eutils") (mkClientEnv manager' $ BaseUrl Https "eutils.ncbi.nlm.nih.gov" 443 "entrez/eutils")
case res' of case res' of
(Left err) -> return [] (Left err) -> return []
(Right (BsXml abstracts)) -> (Right (BsXml abstracts)) -> do
_ <- print abstracts
pubMedParser abstracts pubMedParser abstracts
main :: IO () main :: IO ()
main = do main = do
pubmeds <- runSimpleFindPubmedAbstractRequest "organ" pubmeds <- runSimpleFindPubmedAbstractRequest "risk"
print pubmeds print pubmeds
...@@ -38,7 +38,8 @@ parseDocId cursor = fst <$> ...@@ -38,7 +38,8 @@ parseDocId cursor = fst <$>
identity :: a -> a identity :: a -> a
identity x = x identity x = x
manyTagsUntil :: MonadThrow m => Name manyTagsUntil :: MonadThrow m =>
Name
-> ConduitT Event o m b -> ConduitT Event o m b
-> ConduitT Event o m (Maybe b) -> ConduitT Event o m (Maybe b)
manyTagsUntil name f = do manyTagsUntil name f = do
...@@ -97,11 +98,11 @@ pubMedParser bstring = runConduit $ parseLBS def bstring ...@@ -97,11 +98,11 @@ pubMedParser bstring = runConduit $ parseLBS def bstring
parseArticleSet :: MonadThrow m => ConduitT Event PubMed m () parseArticleSet :: MonadThrow m => ConduitT Event PubMed m ()
parseArticleSet = parseArticleSet =
force "force" $ tagIgnoreAttrs "PubmedArticleSet" $ manyYield parsePubMedArticle force "PubmedArticleSet required" $ manyTagsUntil "PubmedArticleSet" $ manyYield parsePubMedArticle
parsePubMedArticle :: MonadThrow m => ConduitT Event o m (Maybe PubMed) parsePubMedArticle :: MonadThrow m => ConduitT Event o m (Maybe PubMed)
parsePubMedArticle = parsePubMedArticle =
tagIgnoreAttrs "PubmedArticle" parsePubMedArticle' manyTagsUntil "PubmedArticle" parsePubMedArticle'
parsePubMedArticle' :: MonadThrow m => ConduitT Event o m PubMed parsePubMedArticle' :: MonadThrow m => ConduitT Event o m PubMed
parsePubMedArticle' = do parsePubMedArticle' = do
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment