X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FMain.hs;h=d66f704e8d0cd91ce1676b75380e85146cdbed67;hb=85b7f954d1fbba77b2ea731eda8d17fa149019c1;hp=06cb22e2e46e385ee61a35e7ea89d69cba0c005d;hpb=9fff5c185dd7a2c8655815f36b72736d61401e41;p=dead%2Fhtsn-import.git diff --git a/src/Main.hs b/src/Main.hs index 06cb22e..d66f704 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -46,6 +46,7 @@ import qualified TSN.XML.Heartbeat as Heartbeat ( verify ) import qualified TSN.XML.Injuries as Injuries ( Listing ) import qualified TSN.XML.InjuriesDetail as InjuriesDetail ( PlayerListing ) import qualified TSN.XML.News as News ( Message ) +import qualified TSN.XML.Odds as Odds ( Message ) import Xml ( DtdName(..), parse_opts ) @@ -111,8 +112,8 @@ import_file cfg path = do -- | An arrow which parses the doctype "SYSTEM" of an 'XmlTree'. -- We use these to determine the parser to use. - doctypeA :: ArrowXml a => a XmlTree DtdName - doctypeA = getAttrl >>> hasName "doctype-SYSTEM" /> getText >>^ DtdName + dtdnameA :: ArrowXml a => a XmlTree DtdName + dtdnameA = getAttrl >>> hasName "doctype-SYSTEM" /> getText >>^ DtdName -- | Combine the arrows above as well as the function below -- (arrowized with 'arr') into an IO action that does everything @@ -123,7 +124,7 @@ import_file cfg path = do -- big one outside of the list. parse_and_import :: IO [ImportResult] parse_and_import = - runX (readA >>> (doctypeA &&& returnA) >>> (arr import_with_dtd)) + runX (readA >>> (dtdnameA &&& returnA) >>> (arr import_with_dtd)) >>= sequence @@ -154,6 +155,8 @@ import_file cfg path = do | dtd == "newsxml.dtd" = dbimport (undefined :: News.Message) + | dtd == "Odds_XML.dtd" = undefined + | otherwise = \_ -> do -- Dummy arg simplifies the other cases. let infomsg = "Unrecognized DTD in " ++ path ++ ": " ++ dtd ++ "." @@ -208,7 +211,7 @@ main = do report_info $ "Removed processed file " ++ path ++ "." -- | Try to remove @path@ and potentially try again. - kill try_again path = do + kill try_again path = (remove_and_report path) `catchIOError` exception_handler where -- | A wrapper around threadDelay which takes seconds instead of @@ -225,7 +228,7 @@ main = do report_error (show e) report_error $ "Failed to remove imported file " ++ path ++ "." if try_again then do - report_info $ "Waiting 5 seconds to attempt removal again..." + report_info "Waiting 5 seconds to attempt removal again..." thread_sleep 5 kill False path else