-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | The fast and fun way to write Slack.com bots -- @package linklater @version 3.2.0.0 -- | Here's a /jpgto bot! If you run this program and then tell -- Slack about your server (incoming hook and custom slash command) and -- then type /jpgto baby corgi in one of your channels, you'll -- get the image from http://baby.corgi.jpg.to. -- -- -- https://github.com/hlian/linklater/blob/master/examples/JointPhotographicExpertsGroupTonga.hs -- -- One /jpgto baby corgi, et voila. -- module Network.Linklater -- | The say function posts a Message, with a capital M, to -- Slack. It'll, however, need a Config (a.k.a. incoming token) -- first. say :: Message -> Config -> IO (Response ByteString) -- | A bot server! As if by magic. This acts like a WAI middleware: -- Linklater wraps around your application. (Really, it just gives you a -- Command to work with instead of a raw HTTP request.) slash :: (Maybe Command -> Application) -> Application -- | A bot server for people who are in a hurry. Make a function that takes -- a Command and returns some Text in IO world, and -- we'll convert it into a WAI application. If you want more -- control over the request and respond, see slash. slashSimple :: (Maybe Command -> IO Text) -> Application -- | Where slash commands come from, and where Messages go. data Channel -- | A public or private group. GroupChannel :: Text -> Channel -- | A private conversation with your best friend -- or lover ;). IMChannel :: Text -> Channel -- | A username: no at-signs, just text! newtype User User :: Text -> User -- | Here's how you talk: you make one of these and pass it to say. -- Before the day is done, Linklater will convert this to a JSON blob -- using Aeson. -- -- data Message SimpleMessage :: Icon -> Text -> Channel -> Text -> Message FormattedMessage :: Icon -> Text -> Channel -> [Format] -> Message -- | Like a curiosity about the world, you'll need one of these to -- say something. data Config Config :: Text -> Config -- | This is the incoming web hook URL that Slack gave you. It's usually -- https://hooks.slack.com/services/.... _configHookURL :: Config -> Text -- | Incoming HTTP requests to the slash function get parsed into one of -- these babies. data Command Command :: Text -> User -> Channel -> Maybe Text -> Command -- | The command name. _commandName :: Command -> Text -- | Who ran your slash command. _commandUser :: Command -> User -- | Where the person ran your slash command. _commandChannel :: Command -> Channel -- | Text for the slash command, if any. _commandText :: Command -> Maybe Text -- | The icon next to the messages you say. (Images unsupported -- right now, sorry.) newtype Icon -- | For example, ":stars2:". EmojiIcon :: Text -> Icon -- | A little DSL for Slack formatting. data Format -- |
--   "<@user|user>"
--   
FormatAt :: User -> Format -- |
--   "<@user|user did this and that>"
--   
FormatUser :: User -> Text -> Format -- |
--   "<http://example.com|user did this and that>"
--   
FormatLink :: Text -> Text -> Format -- |
--   "user did this &amp; that"
--   
FormatString :: Text -> Format instance Eq Channel instance Ord Channel instance Show Channel instance Eq User instance Ord User instance Show User instance Eq Command instance Ord Command instance Show Command instance Eq Icon instance Ord Icon instance Show Icon instance ToJSON Message instance ToJSON Channel