No description
Find a file
2020-01-16 15:17:51 +01:00
docs update docs 2018-09-06 21:40:25 +02:00
examples Update examples 2018-09-06 21:26:09 +02:00
src Year 2020 Nim >1.0 Update 2020-01-16 02:40:06 -03:00
.gitignore updates gitignore 2017-07-18 14:20:10 +02:00
discord.nimble Year 2020 Nim >1.0 Update 2020-01-16 02:39:48 -03:00
discordnim.nim edit imports/exports 2018-11-17 17:52:59 +01:00
LICENSE Initial commit 2017-04-05 15:17:02 +02:00
README.md Year 2020 Nim >1.0 Update 2020-01-16 02:39:44 -03:00

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.

Documentation

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