Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
grobid-haskell
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
grobid-haskell
Commits
206041e4
Commit
206041e4
authored
Mar 30, 2018
by
Mael NICOLAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Linked with pandoc
parent
e152e7c6
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
35 additions
and
21 deletions
+35
-21
Main.hs
app/Main.hs
+12
-4
package.yaml
package.yaml
+2
-1
API.hs
src/BBW/API.hs
+21
-13
Type.hs
src/BBW/Type.hs
+0
-2
XML.hs
src/BBW/XML.hs
+0
-1
No files found.
app/Main.hs
View file @
206041e4
...
...
@@ -2,7 +2,9 @@ module Main where
import
BBW.API
import
System.Environment
import
qualified
Data.Text.IO
as
T
import
qualified
Data.Text.IO
as
TIO
import
Text.Pandoc
import
Servant.Client
{--
P,Pu:/api/processHeaderDocument
...
...
@@ -25,10 +27,16 @@ consolidateCitations 0 || 1
P-}
toPAST
::
Either
ServantError
TEI
->
IO
()
toPAST
(
Right
(
TEI
x
))
=
do
result
<-
runIO
$
do
readMarkdown
def
x
rst
<-
handleError
result
print
rst
toPAST
(
Left
err
)
=
print
err
main
::
IO
()
main
=
do
[
filePath
]
<-
getArgs
res
<-
queries
filePath
case
res
of
Left
err
->
print
err
Right
x
->
T
.
putStrLn
x
toPAST
res
package.yaml
View file @
206041e4
...
...
@@ -38,7 +38,8 @@ dependencies:
-
mime-types
-
bytestring
-
case-insensitive
-
servant-xml
-
unordered-containers
-
pandoc
library
:
source-dirs
:
src
...
...
src/BBW/API.hs
View file @
206041e4
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module
BBW.API
where
import
Control.Monad.IO.Class
import
Data.Proxy
import
BBW.Multipart
import
Network.HTTP.Client
(
newManager
,
Manager
,
defaultManagerSettings
)
import
BBW.Multipart
import
Servant.API
import
Servant.API.ContentTypes
import
Servant.Client
import
Servant.Multipart
import
System.Environment
import
Servant.XML
import
qualified
Network.HTTP.Media
as
M
import
qualified
Data.ByteString.Lazy
as
LBS
import
qualified
Data.Text
as
T
import
qualified
Data.Text.Lazy
as
TL
import
qualified
Data.Text.Lazy.Encoding
as
TL
-- was MultipartData Mem
newtype
TEI
=
TEI
T
.
Text
instance
Accept
TEI
where
contentType
_
=
"application"
M
.//
"xml"
instance
MimeUnrender
TEI
TEI
where
mimeUnrender
_
b
=
Right
.
TEI
.
TL
.
toStrict
$
TL
.
decodeUtf8
b
type
GrobidAPI
=
"processHeaderDocument"
:>
Header
"Accept"
T
.
Text
:>
MultipartForm
Tmp
(
MultipartData
Mem
)
:>
Post
'[
X
ML
]
T
.
Text
:<|>
"process
"
:>
Header
"Accept"
T
.
Text
:>
MultipartForm
Tmp
(
MultipartData
Mem
)
:>
Post
'[
X
ML
]
T
.
Text
"processHeaderDocument"
:>
MultipartForm
Tmp
(
MultipartData
Mem
)
:>
Post
'[
T
EI
]
TEI
:<|>
"process
FulltextDocument"
:>
MultipartForm
Tmp
(
MultipartData
Mem
)
:>
Post
'[
T
EI
]
TEI
-- processHeaderDocument :: FilePath -> ClientM T.Text
processHeaderDocument
::
M
aybe
T
.
Text
->
MultipartData
Mem
->
ClientM
T
.
Text
process
::
Maybe
T
.
Text
->
MultipartData
Mem
->
ClientM
T
.
Text
processHeaderDocument
::
M
ultipartData
Mem
->
ClientM
TEI
process
FulltextDocument
::
MultipartData
Mem
->
ClientM
TEI
grobidAPI
::
Proxy
GrobidAPI
grobidAPI
=
Proxy
processHeaderDocument
:<|>
process
=
client
grobidAPI
-- fileTest :: FilePath
-- fileTest = "/home/mudada/Code/Haskell/grobid-binding/files"
processHeaderDocument
:<|>
processFulltextDocument
=
client
grobidAPI
queries
::
FilePath
->
IO
(
Either
ServantError
T
.
Text
)
queries
::
FilePath
->
IO
(
Either
ServantError
T
EI
)
queries
filePath
=
do
fileContents
<-
liftIO
$
LBS
.
readFile
filePath
manager
<-
newManager
defaultManagerSettings
...
...
@@ -51,7 +59,7 @@ queries filePath = do
{
inputs
=
[]
,
files
=
[
fileData
]
}
c
=
process
HeaderDocument
(
Just
$
T
.
pack
"application/xml"
)
multipartData
c
=
process
FulltextDocument
multipartData
baseUrl
=
BaseUrl
Http
"localhost"
8080
"api"
env
=
mkClientEnv
manager
baseUrl
runClientM
c
env
src/BBW/Type.hs
deleted
100644 → 0
View file @
e152e7c6
module
BBW.Type
where
src/BBW/XML.hs
deleted
100644 → 0
View file @
e152e7c6
module
BBW.XML
where
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment