]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blobdiff - src/TSN/XML/SportInfo.hs
Add SportInfo support for NFLTopPuntReturnXML.dtd.
[dead/htsn-import.git] / src / TSN / XML / SportInfo.hs
index a9e1f1a248863a84b13417c5d6c9fc604e05d995..76a7c94a4910b261e740eb1135b16fb839fb5af0 100644 (file)
@@ -50,6 +50,7 @@ import TSN.DbImport (
   ImportResult(..),
   run_dbmigrate )
 import TSN.Parse (
+  ParseError,
   parse_message,
   parse_xmlfid,
   parse_xml_time_stamp )
@@ -161,20 +162,28 @@ dtds =
     "NCAA_Conference_Schedule_XML.dtd",
     "nflfirstdownxml.dtd",
     "NFLFumbleLeaderXML.dtd",
+    "NFLGrassTurfDomeOutsideXML.dtd",
     "NFLGiveTakeXML.dtd",
     "NFLInside20XML.dtd",
+    "NFLInterceptionLeadersXML.dtd",
     "NFLKickoffsXML.dtd",
     "NFLMondayNightXML.dtd",
+    "NFLPassingLeadersXML.dtd",
     "NFLPassLeadXML.dtd",
     "NFLQBStartsXML.dtd",
+    "NFLReceivingLeadersXML.dtd",
+    "NFLRushingLeadersXML.dtd",
     "NFLSackLeadersXML.dtd",
     "nflstandxml.dtd",
     "NFLTeamRankingsXML.dtd",
+    "NFLTopKickoffReturnXML.dtd",
     "NFLTopPerformanceXML.dtd",
+    "NFLTopPuntReturnXML.dtd",
     "NFLTotalYardageXML.dtd",
     "NFL_KickingLeaders_XML.dtd",
     "NFL_NBA_Draft_XML.dtd",
     "NFL_Roster_XML.dtd",
+    "NFLTackleFFLeadersXML.dtd",
     "NFL_Team_Stats_XML.dtd",
     "Transactions_XML.dtd",
     "Weekly_Sched_XML.dtd",
@@ -208,12 +217,12 @@ data SportInfo =
 -- | Attempt to parse a 'SportInfo' from an 'XmlTree'. If we cannot,
 --   we fail with an error message.
 --
-parse_xml :: String -> XmlTree -> Either String SportInfo
+parse_xml :: String -> XmlTree -> Either ParseError SportInfo
 parse_xml dtdname xmltree = do
   xmlfid <- parse_xmlfid xmltree
   timestamp <- parse_xml_time_stamp xmltree
   message <- parse_message xmltree
-  return $ SportInfo dtdname (fromInteger xmlfid) timestamp (xshow [message])
+  return $ SportInfo dtdname xmlfid timestamp (xshow [message])
 
 
 --
@@ -236,6 +245,7 @@ instance DbImport SportInfo where
 --
 mkPersist defaultCodegenConfig [groundhog|
 - entity: SportInfo
+  dbName: sport_info
   constructors:
     - name: SportInfo
       uniques:
@@ -274,7 +284,7 @@ test_accessors = testCase "we can access a parsed sport_info" $ do
   let a2  = xml_file_id t
   let ex2 = 2011
   let a3  = show $ time_stamp t
-  let ex3 = "2009-09-28 00:50:00 UTC"
+  let ex3 = "2009-09-27 19:50:00 UTC"
   let a4  = take 9 (xml t)
   let ex4 = "<message>"
   let actual = (a1,a2,a3,a4)