module GetURL (readFrom, defaultURL) where -- MITSFS iPhone schedule pretty-printer -- Copyright (C) 2008 Brian Sniffen -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- You should have received a copy of the GNU General Public License along -- with this program; if not, write to the Free Software Foundation, Inc., -- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import Data.Maybe import Network.HTTP import Network.URI import Model import Parser defaultURL = "http://web.mit.edu/mitsfs/www/schedule.txt" getURL :: URI -> IO String getURL uri = do Right response <- simpleHTTP request case rspCode response of (2,0,0) -> return $ rspBody response err -> fail $ "Error " ++ show err ++ " " ++ rspReason response where request = Request {rqURI = uri, rqMethod = GET, rqHeaders = [], rqBody = ""} readFrom :: String -> IO String readFrom filename = case parseURI filename of Just uri -> getURL uri Nothing -> readFile filename