Popularity
9.0
Stable
Activity
0.0
Stable
55
10
18

Monthly Downloads: 70
Programming language: Haskell
License: MIT License
Tags: Network    
Latest version: v0.2.1

discord-hs alternatives and similar packages

Based on the "Networking" category

Do you think we are missing an alternative of discord-hs or a related project?

Add another 'Networking' Package

README

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:

  • Init isn't parsing correctly
  • Client doesn't close correctly
  • Missing voice support

Future goals:

  • Eta compatibility
  • HaLVM compatibility (maybe)
  • Command framework (Posibly through compat layer with marvin?)
  • Ditch wreq (not included in stack lts-8.2)
  • Upload to stackage