h-irc-bot/app/Main.hs

46 rivejä
1.1 KiB
Haskell

2019-12-04 02:49:16 -05:00
{-# LANGUAGE MultiWayIf #-}
2020-03-13 21:44:34 -04:00
{-# LANGUAGE TemplateHaskell #-}
2019-12-04 02:49:16 -05:00
import IrcBot.IrcBot as I
import IrcBot.JsonConfigDecoder
import qualified Data.ByteString.Lazy as C
import Data.Aeson
import Data.Maybe
import qualified Control.Concurrent as T
2020-03-13 21:44:34 -04:00
import IrcBot.Definitions.Options
import IrcBot.Definitions.ServerAddress
import Control.Lens
2019-12-04 02:49:16 -05:00
initWithOptions:: Maybe IOptions -> IO()
initWithOptions (Just options) = do
let serverAddresses = (servers options)
mapM (\x -> T.forkIO (I.connectToIRCServer x)) serverAddresses
print "[all threads initialized!]"
initWithOptions _ = print "BAD OPTIONS JSON"
mainLoop :: IO ()
mainLoop = do
T.threadDelay 1000000
mainLoop
2020-03-13 21:44:34 -04:00
makeLenses ''IServerAddress
2019-12-04 02:49:16 -05:00
main :: IO ()
main = do
let externalVar = []
output <- C.readFile ".connection.json"
let options = decode output :: Maybe IOptions
-- let servers = decode output :: Maybe IServerAddress
initWithOptions options
-- let serverAddress = fromJust serverAddressDecoded
-- mapM (\x -> I.connectToIRCServer x) servers
-- I.connectToIRCServer servers
mainLoop
print "its over"