]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Page.hs
implemented binary file preview/upload
[Rakka.git] / Rakka / Page.hs
index d6a93696725b6e280423564e0d1b59ddfde32b60..f701d92078e757a0ada421d7d54f33e8d4d2b609 100644 (file)
@@ -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