diff options
| author | pb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157> | 2010-05-15 18:03:15 +0000 |
|---|---|---|
| committer | pb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157> | 2010-05-15 18:03:15 +0000 |
| commit | c675c92a06761d6b28f8fdda8cc418b64a040c9a (patch) | |
| tree | ab99e34875ca832a867a73cc4fc0dc94cd5be6f4 /HsBot/Plugins | |
| parent | d80cee1ecddeb75e54de767c35f04a9a004eed12 (diff) | |
renamed Callbacks into Plugins
git-svn-id: https://ssl.buetow.org/repos/hsbot/trunk@67 9f8f72e9-4bf4-416e-b76e-7d4203597157
Diffstat (limited to 'HsBot/Plugins')
| -rw-r--r-- | HsBot/Plugins/Base.hs | 12 | ||||
| -rw-r--r-- | HsBot/Plugins/Dummy.hs | 11 | ||||
| -rw-r--r-- | HsBot/Plugins/MessageCounter.hs | 16 | ||||
| -rw-r--r-- | HsBot/Plugins/PrintMessages.hs | 15 | ||||
| -rw-r--r-- | HsBot/Plugins/StoreMessages.hs | 12 |
5 files changed, 66 insertions, 0 deletions
diff --git a/HsBot/Plugins/Base.hs b/HsBot/Plugins/Base.hs new file mode 100644 index 0000000..a8acbfb --- /dev/null +++ b/HsBot/Plugins/Base.hs @@ -0,0 +1,12 @@ +module HsBot.Plugins.Base where + +import HsBot.Base.Env +import HsBot.Base.State + +type CallbackFunction = String -> SendMessage -> Env -> IO Env + +data Plugin a = Plugin { + cbPrio :: Integer, + cbFunction :: CallbackFunction +} + diff --git a/HsBot/Plugins/Dummy.hs b/HsBot/Plugins/Dummy.hs new file mode 100644 index 0000000..dd10c83 --- /dev/null +++ b/HsBot/Plugins/Dummy.hs @@ -0,0 +1,11 @@ +module HsBot.Plugins.Dummy (makeDummy) where + +import HsBot.Plugins.Base + +import HsBot.Base.Env +import HsBot.Base.State + +dummy :: CallbackFunction +dummy str sendMessage env@(Env state _) = return (env) + +makeDummy = Plugin 0 dummy diff --git a/HsBot/Plugins/MessageCounter.hs b/HsBot/Plugins/MessageCounter.hs new file mode 100644 index 0000000..0fa5545 --- /dev/null +++ b/HsBot/Plugins/MessageCounter.hs @@ -0,0 +1,16 @@ +module HsBot.Plugins.MessageCounter (makeMessageCounter) where + +import HsBot.Plugins.Base + +import HsBot.Base.Env +import HsBot.Base.State + +import HsBot.IRC.User + +update user = user { userMessages = 1 + userMessages user } + +messageCounter :: CallbackFunction +messageCounter str sendMessage (Env state conf) = do + return (Env (stateUpdateUser state (currentSender state) update) conf) + +makeMessageCounter = Plugin 0 messageCounter diff --git a/HsBot/Plugins/PrintMessages.hs b/HsBot/Plugins/PrintMessages.hs new file mode 100644 index 0000000..d3bfbc8 --- /dev/null +++ b/HsBot/Plugins/PrintMessages.hs @@ -0,0 +1,15 @@ +module HsBot.Plugins.PrintMessages (makePrintMessages) where + +import HsBot.Plugins.Base + +import HsBot.Base.Env +import HsBot.Base.State + +printMessages :: CallbackFunction +printMessages str sendMessage env@(Env state _) = do + putStrLn $ (currentChannel state) ++ " " + ++ (currentSender state) ++ ": " + ++ str + return (env) + +makePrintMessages = Plugin 0 printMessages diff --git a/HsBot/Plugins/StoreMessages.hs b/HsBot/Plugins/StoreMessages.hs new file mode 100644 index 0000000..a0033f7 --- /dev/null +++ b/HsBot/Plugins/StoreMessages.hs @@ -0,0 +1,12 @@ +module HsBot.Plugins.StoreMessages (makeStoreMessages) where + +import HsBot.Plugins.Base + +import HsBot.Base.Env +import HsBot.Base.State + +storeMessages :: CallbackFunction +storeMessages str sendMessage env@(Env state _) = do + return (env) + +makeStoreMessages = Plugin 0 storeMessages |
