Wrote a dynamic compilation stuff that works (unable to test reboot yet)
This commit is contained in:
parent
ea607ba1b1
commit
1f6c64749d
7 changed files with 183 additions and 0 deletions
36
Hsbot/Core.hs
Normal file
36
Hsbot/Core.hs
Normal file
|
@ -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)
|
||||
|
Reference in a new issue