summaryrefslogtreecommitdiffstats
path: root/Hirc/Types.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Hirc/Types.hs')
-rw-r--r--Hirc/Types.hs43
1 files changed, 43 insertions, 0 deletions
diff --git a/Hirc/Types.hs b/Hirc/Types.hs
index 2567b53..c516ba7 100644
--- a/Hirc/Types.hs
+++ b/Hirc/Types.hs
@@ -1,5 +1,11 @@
+{-# LANGUAGE RecordWildCards #-}
+
module Hirc.Types where
+import System.IO (Handle)
+import Control.Concurrent.STM (TVar)
+import Control.Monad.Reader (ReaderT)
+
type Command = String
type Param = String
type Receiver = String
@@ -12,6 +18,10 @@ data Message =
}
deriving Show
+data Error =
+ BadMessage String
+ deriving Show
+
data Prefix =
Prefix {
p_name :: String,
@@ -20,3 +30,36 @@ data Prefix =
}
deriving Show
+type Net = ReaderT Bot IO
+
+data Bot = Bot {
+ bot_server :: Server,
+ bot_nick :: TVar String,
+ bot_chan :: TVar String,
+ bot_socket :: Handle
+}
+
+data Config =
+ Config {
+ config_server :: Server,
+ config_nick :: String,
+ config_chan :: String
+ }
+ deriving Show
+
+data Hooks =
+ Hooks {
+ hooks_onConnect :: Net (),
+ hooks_onDisconnect :: Net (),
+ hooks_onError :: Error -> Net (),
+ hooks_onMessage :: Message -> Net ()
+ --hooks_shell :: Net()
+ }
+
+data Server =
+ Server {
+ hostname :: String,
+ port :: Int
+ }
+instance Show Server where
+ show Server{..} = hostname ++ ":" ++ show port