diff options
Diffstat (limited to 'src/Plugin.hs')
-rw-r--r-- | src/Plugin.hs | 12 |
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] |