From ff07633fb8f81577ffec409cbf0a3c7361990f6c Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Wed, 13 Apr 2011 20:15:55 +0200 Subject: Began a big refactoring/rewriting (again) --- HsbotIrcBot/Hsbot/Irc/Command.hs | 63 ---------------------------------------- 1 file changed, 63 deletions(-) delete mode 100644 HsbotIrcBot/Hsbot/Irc/Command.hs (limited to 'HsbotIrcBot/Hsbot/Irc/Command.hs') diff --git a/HsbotIrcBot/Hsbot/Irc/Command.hs b/HsbotIrcBot/Hsbot/Irc/Command.hs deleted file mode 100644 index 1b913e2..0000000 --- a/HsbotIrcBot/Hsbot/Irc/Command.hs +++ /dev/null @@ -1,63 +0,0 @@ -module Hsbot.Irc.Command - ( processInternalCommand - , registerCommand - , unregisterCommand - ) where - -import Control.Monad.State -import qualified Data.List as L -import qualified Data.Map as M -import Data.Maybe - -import Hsbot.Irc.Message -import Hsbot.Irc.Plugin -import Hsbot.Irc.Types - --- | Registers a plugin's command -registerCommand :: String -> String -> IrcBot () -registerCommand cmd pluginName' = do - ircBot <- get - let cmds = ircBotCommands ircBot - plugins = ircBotPlugins ircBot - case M.lookup pluginName' plugins of - Just _ -> let pluginNames = pluginName' : fromMaybe [] (M.lookup cmd cmds) -- TODO : remove/check for duplicates ? - newCmds = M.insert cmd pluginNames cmds - in put $ ircBot { ircBotCommands = newCmds } - Nothing -> return () - --- | Unregisters a plugin's command -unregisterCommand :: String -> String -> IrcBot () -unregisterCommand cmd pluginName' = do - ircBot <- get - let cmds = ircBotCommands ircBot - newCmds = M.adjust (L.delete pluginName') cmd cmds - put $ ircBot { ircBotCommands = newCmds } - --- | Processes an internal command -processInternalCommand :: IrcBotMsg -> IrcBot (BotStatus) -processInternalCommand (IntIrcCmd ircCmd) - | ircCmdTo ircCmd == "CORE" = processCoreCommand ircCmd - | otherwise = do - plugins <- gets ircBotPlugins - case M.lookup (ircCmdTo ircCmd) plugins of - Just (plugin, _, _) -> sendToPlugin (IntIrcCmd ircCmd) plugin - Nothing -> return () - return BotContinue -processInternalCommand _ = return (BotContinue) - --- | Processes a core command -processCoreCommand :: IrcCmd -> IrcBot (BotStatus) -processCoreCommand ircCmd = do - let command' = ircCmdCmd ircCmd - originalRequest = ircCmdBotMsg ircCmd - case command' of - "LIST" -> listPlugins originalRequest (ircCmdFrom ircCmd) - "LOAD" -> loadIrcPlugin $ ircCmdMsg ircCmd - "REGISTER" -> registerCommand (ircCmdMsg ircCmd) (ircCmdFrom ircCmd) - "UNLOAD" -> unloadIrcPlugin $ ircCmdMsg ircCmd - "UNREGISTER" -> unregisterCommand (ircCmdMsg ircCmd) (ircCmdFrom ircCmd) - _ -> return () - if command' == "REBOOT" - then return BotReboot - else return BotContinue - -- cgit v1.2.3