From aba484db543d8d8b83affe9f224cd555ed0c2f7b Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Tue, 10 May 2011 23:21:28 +0200 Subject: Implemented bot commands parsing. --- Hsbot/Message.hs | 12 ++++++++++++ hsbot.cabal | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Hsbot/Message.hs b/Hsbot/Message.hs index 825a649..dd15f75 100644 --- a/Hsbot/Message.hs +++ b/Hsbot/Message.hs @@ -1,10 +1,12 @@ module Hsbot.Message ( answerMsg + , getCommand , readMsg , writeMsg ) where import Control.Concurrent +import qualified Data.List as L import Control.Monad.Reader import qualified Network.IRC as IRC @@ -24,3 +26,13 @@ answerMsg (IRC.Message (Just (IRC.NickName nick _ _)) _ (channel:_)) msg | otherwise = writeMsg . OutgoingMsg $ IRC.Message Nothing "PRIVMSG" [nick, msg] answerMsg _ _ = return () +-- | Get the command in the IRC message if there is one +getCommand :: IRC.Message -> Env IO [String] +getCommand (IRC.Message _ _ (_:msg:[])) = do + currentBotState <- asks envBotState >>= liftIO . readMVar + let cmd:stuff = if msg /= "" then words msg else ["",""] + if botNickname currentBotState `L.isPrefixOf` cmd + then return stuff + else return [] +getCommand _ = return [] + diff --git a/hsbot.cabal b/hsbot.cabal index b2a9119..f92af2d 100644 --- a/hsbot.cabal +++ b/hsbot.cabal @@ -1,5 +1,5 @@ Name: hsbot -Version: 0.4.11 +Version: 0.4.12 Cabal-version: >=1.2 Synopsis: A multipurposes IRC bot Description: -- cgit v1.2.3