Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Krognol/discordnim
Discord library for nim
https://github.com/Krognol/discordnim
discord discord-library nim-language
Last synced: about 2 months ago
JSON representation
Discord library for nim
- Host: GitHub
- URL: https://github.com/Krognol/discordnim
- Owner: Krognol
- License: mit
- Created: 2017-04-05T13:17:02.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-07-27T00:20:27.000Z (over 4 years ago)
- Last Synced: 2024-07-31T20:43:26.157Z (4 months ago)
- Topics: discord, discord-library, nim-language
- Language: Nim
- Size: 373 KB
- Stars: 60
- Watchers: 7
- Forks: 8
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- discord-api-libs - discordnim - Discord library for nim (Libraries / Nim)
README
# Discordnim
A Discord library for Nim.
Websockets from [niv/websocket.nim](https://github.com/niv/websocket.nim)
# Installing
This assumes that you have your Nim environment (including [Nimble](https://github.com/nim-lang/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 Rumpfactive boot switches: -d:release
````nimble install discordnim`
# Usage
There are some examples in the `examples` folder.
Initialising a `Shard`:
```nim
when isMainModule:
import asyncdispatch, discordnim, ospathsproc 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.
[Documentation](https://krognol.github.io/discordnim/)
# Contributing
1. Fork it ( https://github.com/Krognol/discordnim/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request