Commit d69b3a65 authored by Mael NICOLAS's avatar Mael NICOLAS

added a new pre-parser to remove <sub> (not working yet)

parent 8299b701
......@@ -9,13 +9,26 @@ import Network.HTTP.Client.TLS (tlsManagerSettings)
import Servant.Client (runClientM, mkClientEnv, BaseUrl(..), Scheme(..))
import Text.XML (parseLBS_, def)
import Text.XML.Cursor (fromDocument, Cursor)
import Data.Conduit (ConduitT)
import Data.ByteString.Lazy (ByteString)
import Data.ByteString.Char8 (pack)
import Control.Monad.Catch (MonadThrow)
import Text.Parsec hiding (runParser)
import Text.Parsec.ByteString.Lazy
import qualified Data.ByteString.Lazy as LBS
import qualified Data.Text as T
runParser :: Show res => (Cursor -> res) -> LBS.ByteString -> res
runParser parser = parser . fromDocument . parseLBS_ def
removeSub :: Parser ByteString
removeSub = do
dt <- many1 anyChar <* (skipMany $ sub <|> asub)
return . LBS.fromStrict $ pack dt
where
sub = string "<sub>"
asub = string "</sub>"
runSimpleFindPubmedAbstractRequest :: T.Text -> IO [PubMed]
runSimpleFindPubmedAbstractRequest rq = do
manager' <- newManager tlsManagerSettings
......@@ -32,8 +45,9 @@ runSimpleFindPubmedAbstractRequest rq = do
case res' of
(Left err) -> return []
(Right (BsXml abstracts)) -> do
_ <- print abstracts
pubMedParser abstracts
case (parse removeSub "error" abstracts) of
(Left _) -> return []
(Right v) -> pubMedParser v
main :: IO ()
main = do
......
......@@ -35,6 +35,8 @@ dependencies:
- time
- data-time-segment
- protolude
- parsec
- either
library:
source-dirs: src
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
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