Skip to content

Krognol/discordnim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Releases

No releases published

Packages

No packages published

Languages