Safe Haskell | None |
---|---|
Language | Haskell98 |
This module exposes functionality to write bots which responds
to Event
s sent by the RTM API. By using the user state parameter s
complicated interactions can be established.
This basic example echos every message the bot recieves.
Other examples can be found in the
examples
directory.
myConfig :: SlackConfig myConfig = SlackConfig { _slackApiToken = "..." -- Specify your API token here } -- type SlackBot s = Event -> Slack s () echoBot :: SlackBot () echoBot (Message cid _ msg _ _ _) = sendMessage cid msg echoBot _ = return () main :: IO () main = runBot myConfig echoBot ()
- runBot :: forall s. SlackConfig -> SlackBot s -> s -> IO ()
- newtype Slack s a = Slack {
- runSlack :: StateT (SlackState s) IO a
- type SlackBot s = Event -> Slack s ()
- data SlackState s = SlackState {
- _meta :: Metainfo
- _session :: SlackSession
- _userState :: s
- _config :: SlackConfig
- userState :: forall s s. Lens (SlackState s) (SlackState s) s s
- session :: forall s. Lens' (SlackState s) SlackSession
- module Web.Slack.Types
- module Web.Slack.Config
Documentation
runBot :: forall s. SlackConfig -> SlackBot s -> s -> IO () Source
Slack | |
|
data SlackState s Source
SlackState | |
|
Show s => Show (SlackState s) Source | |
MonadState (SlackState s) (Slack s) Source |
userState :: forall s s. Lens (SlackState s) (SlackState s) s s Source
session :: forall s. Lens' (SlackState s) SlackSession Source
module Web.Slack.Types
module Web.Slack.Config