summaryrefslogtreecommitdiff
path: root/HsBot/Plugins
diff options
context:
space:
mode:
authorpb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157>2010-05-15 18:03:15 +0000
committerpb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157>2010-05-15 18:03:15 +0000
commitc675c92a06761d6b28f8fdda8cc418b64a040c9a (patch)
treeab99e34875ca832a867a73cc4fc0dc94cd5be6f4 /HsBot/Plugins
parentd80cee1ecddeb75e54de767c35f04a9a004eed12 (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.hs12
-rw-r--r--HsBot/Plugins/Dummy.hs11
-rw-r--r--HsBot/Plugins/MessageCounter.hs16
-rw-r--r--HsBot/Plugins/PrintMessages.hs15
-rw-r--r--HsBot/Plugins/StoreMessages.hs12
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