discordnim
discordnim copied to clipboard
Discord library for nim
Discordnim
A Discord library for Nim.
Websockets from niv/websocket.nim
Installing
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
Usage
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.
Contributing
- 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