Home

Awesome

Discord.hs

A Haskell wrapper for the Discord API

Hackage Hackage-Deps Travis

Using in a project

The preferred (and only supported) method of using discord.hs is through stack. Open your stack.yaml and find the extra-deps section. Add the following:

extra-deps:
  - discord-hs-0.2.1

Then open your project.cabal file and add discord-hs to your build-depends.

Alternatively, you can add discord-hs to your project.cabal file, and run stack solver --update-config. This will let stack catch other missing dependencies in your project and is most likely the better option.

PingPong

{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
import Data.Text
import Pipes

import Network.Discord

reply :: Message -> Text -> Effect DiscordM ()
reply Message{messageChannel=chan} cont = fetch' $ CreateMessage chan cont Nothing

main :: IO ()
main = runBot (Bot "TOKEN") $ do
  with ReadyEvent $ \(Init v u _ _ _) ->
    liftIO . putStrLn $ "Connected to gateway v" ++ show v ++ " as user " ++ show u

  with MessageCreateEvent $ \msg@Message{..} -> do
    when ("Ping" `isPrefixOf` messageContent && (not . userIsBot $ messageAuthor)) $
      reply msg "Pong!"

Known issues:

Future goals: