Skip to content
This repository has been archived by the owner on Feb 8, 2024. It is now read-only.
/ discord.v Public archive

Discord Bot Framework written in V

License

Notifications You must be signed in to change notification settings

Terisback/discord.v

Repository files navigation

discord.v

Caution

I dropped the support of this lib at the end of 2021. The reason is that I don't care anymore about V, fixing "bugs" around new syntax and catching segfaults from socket interactions is not fun. Feel free to fork and keep alive if you need it.

There is another beginning at DarpHome/discord.v, please check them.

Example

import terisback.discordv as vd

fn main() {
    mut client := vd.new(token: 'token') ?
    client.on_message_create(on_ping)
    client.run().wait()
}

fn on_ping(mut client vd.Client, evt &vd.MessageCreate) {
    if evt.content == '!ping' {
        client.channel_message_send(evt.channel_id, content: 'pong!') or { }
    }
}

More examples

How to install

discord.v uses openssl, be sure it is installed apt install libssl-dev

Only way to run it on Windows is to use WSL (or install openssl headers somehow)

Install via vpm

v install Terisback.discordv

Install via git

git clone https://github.com/Terisback/discord.v.git ~/.vmodules/terisback/discordv

And then import terisback.discordv wherever you like

TODO()

First milestone

  • Connect to gateway
  • Handle heartbeat
  • Event system (pub/sub)
  • REST for sending messages
  • Implement multipart/form-data for file sending
  • Do usual application/json for sending without binary data
  • Handle Gateway events
    • Audit Log
    • Channel
    • Emoji
    • Guild
    • Invite
    • User
    • Voice
    • Webhook
    • Slash Command
  • Create examples (3/4)
  • Documentation

Second milestone

  • Handle REST
    • Audit Log
    • Channel
    • Emoji
    • Guild
    • Invite
    • User
    • Voice
    • Webhook
    • Slash Command
    • Observe rate limits (thanks to @div72)
  • Slash Commands
  • Fancy log
  • Command router
  • Think about tests

Third milestone (till V v0.3)

  • Translate dispatch to generics (not sure about that)
  • Build cache ontop map's (memcache, redis in future)

The Main one

  • Make a cool library

Contact

Feel free to contribute ;)
You can contact me at discord: TERISBACK#9125

Releases

No releases published

Sponsor this project

Languages