Rewrote nearly everything!
* Rewrote the whole architecture to achieve extreme modularity * Added the ability to build a multiprotocol bot * Added cabal integration * Added configuration handling the XMonad style * Added configuration in ~/.hsbot * Refactored many many named and functions * Refactored data structures * Cleaned a big bunch of stuff
This commit is contained in:
parent
c20cfe88b3
commit
c1662ba7b9
33 changed files with 856 additions and 654 deletions
|
@ -1,42 +0,0 @@
|
|||
module Hsbot.Utils
|
||||
( error
|
||||
, errorM
|
||||
, inColor
|
||||
, sendstr
|
||||
, trace
|
||||
, traceM
|
||||
) where
|
||||
|
||||
import Control.Monad.State
|
||||
import Data.List
|
||||
import System.IO
|
||||
|
||||
import Hsbot.Types
|
||||
|
||||
-- |Wrap a string with ANSI escape sequences.
|
||||
inColor :: String -> [Int] -> String
|
||||
inColor str vals = "\ESC[" ++ valstr ++ "m" ++ str ++ "\ESC[0m"
|
||||
where valstr = concat . intersperse ";" $ map show vals
|
||||
|
||||
-- | Sends a string over handle
|
||||
sendstr :: String -> IrcBot ()
|
||||
sendstr str = do
|
||||
handle <- gets botHandle
|
||||
traceM $ inColor ("--> " ++ str) [33]
|
||||
liftIO $ hPutStr handle (str ++ "\r\n")
|
||||
|
||||
-- | Log a message string
|
||||
trace :: String -> IO ()
|
||||
trace msg = putStrLn msg
|
||||
|
||||
-- | Log a message string
|
||||
traceM :: String -> IrcBot ()
|
||||
traceM msg = liftIO $ trace msg
|
||||
|
||||
-- | Logs an error message
|
||||
traceRed :: String -> IO ()
|
||||
traceRed msg = trace $ inColor msg [31]
|
||||
|
||||
errorM :: String -> IrcBot ()
|
||||
errorM msg = liftIO $ traceRed msg
|
||||
|
Reference in a new issue