haskbot-core-0.0.1.0: src/Network/Haskbot.hs
-- | Module : Network.Haskbot
-- Description : An easily-extensible Slack chatbot server
-- Copyright : (c) Jonathan Childress 2014
-- License : MIT
-- Maintainer : jon@childr.es
-- Stability : experimental
-- Portability : POSIX
--
-- A minimal Haskbot server can be run via:
--
-- > {-# LANGUAGE OverloadedStrings #-}
-- >
-- > import Network.Haskbot
-- > import Network.Haskbot.Plugin
-- > import qualified Slack.Haskbot.Plugin.Help as Help
-- >
-- > main :: IO ()
-- > main = haskbot registry 3000
-- >
-- > registry :: [Plugin]
-- > registry = [ Help.register registry "my_secret_token" ]
--
-- This will run Haskbot on port 3000 with the included
-- "Help" plugin installed, where @\"my_secret_token\"@ is the secret token
-- of a Slack slash command integration corresponding to the @/haskbot@
-- command and pointing to the Haskbot server.
--
-- Be sure to create a Slack incoming integration (usually named /Haskbot/)
-- with the local @HASKBOT_ENDPOINT@ environment variable set to the
-- integration's endpoint URL (including the secret key query string), so that
-- Slack can process replies from Haskbot.
module Network.Haskbot
(
-- * Run a Haskbot server
Haskbot, haskbot
) where
import Network.Haskbot.Internal.Environment (Haskbot)
import Network.Haskbot.Internal.Server (webServer)
import Network.Haskbot.Internal.Plugin (Plugin)
-- | Run a Haskbot server with the listed plugins on the specified port.
haskbot :: [Plugin] -- ^ List of all Haskbot plugins to include
-> Int -- ^ Port on which to run Haskbot server
-> IO ()
haskbot = webServer