|
|
|
@ -28,11 +28,12 @@ import qualified Data.Map.Strict as M |
|
|
|
import Data.Text (isPrefixOf, stripPrefix) |
|
|
|
import Data.Text (isPrefixOf, stripPrefix) |
|
|
|
import qualified Data.Text as T |
|
|
|
import qualified Data.Text as T |
|
|
|
import Data.Text.Encoding |
|
|
|
import Data.Text.Encoding |
|
|
|
|
|
|
|
import qualified Data.Text.Lazy as TL |
|
|
|
import Data.XML.Types |
|
|
|
import Data.XML.Types |
|
|
|
|
|
|
|
import Language.Haskell.Printf |
|
|
|
import Network.Xmpp |
|
|
|
import Network.Xmpp |
|
|
|
import System.Log.Logger |
|
|
|
import System.Log.Logger |
|
|
|
import System.ZMQ4 hiding (message) |
|
|
|
import System.ZMQ4 hiding (message) |
|
|
|
import Text.Printf.TH |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
startBot :: Config -> IO () |
|
|
|
startBot :: Config -> IO () |
|
|
|
startBot conf = forever $ do |
|
|
|
startBot conf = forever $ do |
|
|
|
@ -120,12 +121,12 @@ startBot conf = forever $ do |
|
|
|
|
|
|
|
|
|
|
|
showPricesMsg ref = do |
|
|
|
showPricesMsg ref = do |
|
|
|
m <- readIORef ref |
|
|
|
m <- readIORef ref |
|
|
|
return $ foldMap (\tick -> [st|%?: %?\n|] (security tick) (value tick)) m |
|
|
|
return $ foldMap (\tick -> TL.toStrict $ [t|%?: %?\n|] (security tick) (value tick)) m |
|
|
|
|
|
|
|
|
|
|
|
toXml text = [Element (Name "body" Nothing Nothing) [] [NodeContent (ContentText text)]] |
|
|
|
toXml text = [Element (Name "body" Nothing Nothing) [] [NodeContent (ContentText text)]] |
|
|
|
|
|
|
|
|
|
|
|
messageForTrade :: TradeSinkMessage -> T.Text |
|
|
|
messageForTrade :: TradeSinkMessage -> T.Text |
|
|
|
messageForTrade (TradeSinkTrade{..}) = [st|Trade: %? %? at %? (%? lots, %?/%?)|] |
|
|
|
messageForTrade (TradeSinkTrade{..}) = TL.toStrict $ [t|Trade: %? %? at %? (%? lots, %?/%?)|] |
|
|
|
tsOperation |
|
|
|
tsOperation |
|
|
|
tsSecurity |
|
|
|
tsSecurity |
|
|
|
tsPrice |
|
|
|
tsPrice |
|
|
|
|