ADD beginning of the XML parsing
authorGreg Burri <greg.burri@gmail.com>
Wed, 15 Apr 2009 20:53:17 +0000 (22:53 +0200)
committerGreg Burri <greg.burri@gmail.com>
Wed, 15 Apr 2009 20:53:17 +0000 (22:53 +0200)
src/Pompage.hs
start.sh

index 6cf4349..e3066f2 100644 (file)
@@ -13,21 +13,21 @@ import Control.Monad (foldM)
 type Movies = [Movie]
 
 data Movie = Movie {
-     files :: [FilePath]
-   , id :: Int
-   , title :: String
-   , year :: Maybe Int
-   , directors :: [String]
-   , actors :: [String]
-   , countries :: [String]
-   , length :: Maybe Int
-   , userRating :: Maybe Int
-   , pressRating :: Maybe Int
-   , genre :: [String]
-   , synopsis :: String
-   , budget :: Int
-   , budgetUnit :: String
-   , url :: String
+     movieFiles :: [FilePath]
+   , movieId :: Int
+   , movieTitle :: String
+   , movieYear :: Maybe Int
+   , movieDirectors :: [String]
+   , movieActors :: [String]
+   , movieCountries :: [String]
+   , movieLength :: Maybe Int
+   , movieUserRating :: Maybe Int
+   , moviePressRating :: Maybe Int
+   , movieGenres :: [String]
+   , movieSynopsis :: String
+   , movieBudget :: Int
+   , movieBudgetUnit :: String
+   , movieUrl :: String
 } deriving (Show)
 
 data Arg = XML | MovieDir deriving (Show, Eq)
@@ -46,6 +46,7 @@ main = do
          print movies
          print paths
 
+coversDir = "../img/covers"
 movieExtenstions = ["avi", "mkv", "rmvb", "ogm", "divx"]
 usage = "Usage : %s -d <Movies dir> -x <XML file>\n"
 
@@ -98,12 +99,26 @@ filePaths predicat baseDir = do
 
 
 readXMLFile :: FilePath -> IO Movies
-readXMLFile file = undefined
+readXMLFile file = do
+   content <- readFile file
+   let Just root = parseXMLDoc content
+   return $
+      foldl (\acc elem ->
+         case elementXMLToMovie elem of
+            Nothing -> acc
+            Just movie -> movie : acc)
+      []
+      (elChildren root)
+
+elementXMLToMovie :: Element -> Maybe Movie
+elementXMLToMovie elem = undefined
 {-
-   file <- readFile "../xml/test.xml"
-   --print $ parseXMLDoc file
+findAttr (QName "id" Nothing Nothing) elem of
+            Nothing -> acc
+            Just id ->
 -}
 
+
 writeXMLFile :: Movies -> FilePath -> IO ()
 writeXMLFile movies file = undefined
 
index 00a5415..a501312 100755 (executable)
--- a/start.sh
+++ b/start.sh
@@ -4,4 +4,4 @@
 #  -d <Movies dir> -x <XML file>
 #  
 cd src
-runhaskell Pompage.hs -d /home/gburri/mininux/fat/Films -x ../xml/divx.xml
\ No newline at end of file
+runhaskell Pompage.hs -d /home/gburri/mininux/fat/Films -x ../xml/test.xml
\ No newline at end of file