X-Git-Url: https://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FPage.hs;h=f701d92078e757a0ada421d7d54f33e8d4d2b609;hb=d128bc12ae9f763c37941122bf2e163517810bba;hp=d6a93696725b6e280423564e0d1b59ddfde32b60;hpb=736016f6e7b9c4ce5cec6d2fe82f8d2911783f8f;p=Rakka.git diff --git a/Rakka/Page.hs b/Rakka/Page.hs index d6a9369..f701d92 100644 --- a/Rakka/Page.hs +++ b/Rakka/Page.hs @@ -339,8 +339,7 @@ parseEntity = proc (name, tree) -> do updateInfo <- maybeA parseUpdateInfo -< tree - mimeType <- (getXPathTreesInDoc "/page/@type/text()" >>> getText - >>> arr read) -< tree + mimeTypeStr <- withDefault (getXPathTreesInDoc "/page/@type/text()" >>> getText) "" -< tree lang <- maybeA (getXPathTreesInDoc "/page/@lang/text()" >>> getText) -< tree fileName <- maybeA (getXPathTreesInDoc "/page/@filename/text()" >>> getText) -< tree @@ -372,6 +371,14 @@ parseEntity (Just text, Nothing ) -> (False, L.pack $ UTF8.encode text ) (Nothing , Just binary) -> (True , L.pack $ B64.decode binary) _ -> error "one of textData or binaryData is required" + mimeType + = if isBinary then + if null mimeTypeStr then + guessMIMEType content + else + read mimeTypeStr + else + read mimeTypeStr returnA -< Entity { entityName = name