diff options
Diffstat (limited to 'Hsbot/Core.hs')
-rw-r--r-- | Hsbot/Core.hs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Hsbot/Core.hs b/Hsbot/Core.hs new file mode 100644 index 0000000..153ce77 --- /dev/null +++ b/Hsbot/Core.hs @@ -0,0 +1,36 @@ +module Hsbot.Core + ( Bot(..) + , Config(..) + , Server(..) + , newbot + ) where + +import qualified Data.Map as M +import System.IO (Handle) + +-- | An IRC Bot server state (socket handles) +data Bot = Bot + { joinedServers :: M.Map Server Handle -- servers we are connected to + } deriving (Eq, Show) + +-- | Configuration data type +data Config = Config { + commandPrefixes :: String, -- command prefixes, for example @[\'>\',\'@\',\'?\']@ + servers :: [Server] -- list of 'Server's to connect to +} deriving (Eq,Show) + +-- | An IRC server +data Server = Server + { address :: String -- the server's address + , port :: Int -- the server's port + , channels :: [String] -- a list of channels to join + , nickname :: String -- the hsbot's nickname + , password :: String -- the hsbot's password, optional + , realname :: String -- the hsbot's real name, optional + , administrators :: [String] -- bot admins nicknames + } deriving (Eq, Show) + +-- | Returns a new, empty bot +newbot :: Bot +newbot = Bot (M.empty) + |