module Main where -- base import Control.Monad ((<=<)) -- HTTP import Network.HTTP.Base (httpPackageVersion) import Network.Browser ( Proxy(NoProxy), BrowserAction , browse, setAllowRedirects, setMaxRedirects, setAuthorities , setAllowBasicAuth, setMaxErrorRetries, setMaxPoolSize , setMaxAuthAttempts, setProxy, setOutHandler, setUserAgent ) -- either import Control.Monad.Trans.Either (runEitherT) -- text import Data.Text (pack) -- transformers import Control.Monad.IO.Class (liftIO) import Control.Monad.Trans.Class (lift) -- unordered-containers import qualified Data.HashMap.Strict as HM -- vector import qualified Data.Vector as V -- this package import Cryptsy.API.Public initBrowser :: BrowserAction t () initBrowser = do setAllowRedirects True setMaxRedirects $ Just 10 setAuthorities [] setAllowBasicAuth False setMaxErrorRetries $ Just 0 setMaxPoolSize $ Just 2 setMaxAuthAttempts $ Just 0 setProxy NoProxy setOutHandler . const $ return () setUserAgent $ "Network.Browser/" ++ httpPackageVersion main :: IO () main = either print return <=< browse . runEitherT $ do lift initBrowser books <- orderData liftIO . print . HM.size $ orderBooks (books :: OrderData) omkts <- oldMarketData liftIO . print . HM.size $ markets (omkts :: MarketData) mkts <- marketData liftIO . print . HM.size $ markets (mkts :: MarketData) book <- singleOrderBook $ pack "113" liftIO . print $ ( V.length $ obBuyOrders (book :: OrderBook) , V.length $ obSellOrders book ) market <- singleMarket $ pack "113" liftIO . print $ ( V.length $ mktRecentTrades (market :: Market) , V.length $ mktBuyOrders market , V.length $ mktSellOrders market )