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"
|