aboutsummaryrefslogtreecommitdiffstats
path: root/src/Plugin.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Plugin.hs')
-rw-r--r--src/Plugin.hs12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/Plugin.hs b/src/Plugin.hs
index 84b4779..d6598ec 100644
--- a/src/Plugin.hs
+++ b/src/Plugin.hs
@@ -6,23 +6,25 @@ module Plugin
import Text.Regex.TDFA
+import qualified Message as M
import Plugin.Base
import Plugin.GitHubCommit
-- | Get the first plugin that matches the given message text.
-matchPlugin :: String -> Maybe Plugin
+matchPlugin :: M.Message -> Maybe Plugin
matchPlugin message = firstPlugin $ matchPlugins message plugins
where
firstPlugin [] = Nothing
firstPlugin (p:ps) = Just p
-- | Filter the list of plugins to those that match the given message.
-matchPlugins :: String -> [Plugin] -> [Plugin]
-matchPlugins message plugins = [p | p <- plugins, message =~ matchRegex p]
+matchPlugins :: M.Message -> [Plugin] -> [Plugin]
+matchPlugins message plugins =
+ [p | p <- plugins, M.text message =~ matchRegex p]
-- | Run the action belonging to the plugin, stored in its `perform` field.
-performPlugin :: Plugin -> String -> String
-performPlugin p message = perform p $ message =~ matchRegex p
+performPlugin :: Plugin -> M.Message -> String
+performPlugin p message = perform p $ message
-- | The list of plugins to load
plugins :: [Plugin]