A Discord library for Nim.
Websockets from niv/websocket.nim
This assumes that you have your Nim environment (including Nimble) already set up, and that your Nim version is 1.0.4
or greater.
You can check your version with nim --version
nim -v
Nim Compiler Version 1.1.1 [Linux: amd64]
Compiled at 2020-01-08
Copyright (c) 2006-2019 by Andreas Rumpf
active boot switches: -d:release
nimble install discordnim
There are some examples in the examples
folder.
Initialising a Shard
:
when isMainModule:
import asyncdispatch, discordnim, ospaths
proc messageCreate(s: Shard, m: MessageCreate) =
if s.cache.me.id == m.author.id: return
if m.content == "ping":
asyncCheck s.channelMessageSend(m.channel_id, "pong")
let d = newShard("Bot " & getEnv("token")) // get token in environment variables
proc endSession() {.noconv.} =
waitFor d.disconnect()
setControlCHook(endSession)
d.compress = true
let removeProc = d.addHandler(EventType.message_create, messageCreate)
waitFor d.startSession()
removeProc()
All programs have to be compiled with the -d:ssl
flag.
Example :
nimble build -d:ssl
OR
nim compile -d:ssl --run youfile.nim
When compression is enabled you need a zlib1.dll
present. Somewhere. I don't know where it should be placed.
- Fork it ( https://github.com/Krognol/discordnim/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request