GithubHelp home page GithubHelp logo

discord.v's People

Contributors

androz2091 avatar div72 avatar existagon avatar jalonsolov avatar litenite42 avatar onyxcode avatar shadowninja55 avatar spaceface777 avatar spytheman avatar surmanpp avatar terisback avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

discord.v's Issues

Error from the README example

I'm running the example from the README, and I get this:

2022-09-03 01:40:28 [ERROR] #0 Gateway error: failed to read next message: net: op timed out; code: 9
2022-09-03 01:40:28 [WARN ] #0 Websocket listen: net: op timed out; code: 9

I can still do !ping and the server reply correctly with pong!

Unstable connection to gateway

Currently it can drop connection randomly (for me) and resume incorrectly, without really connecting to something. (Running ping-pong example)

[discord.v] #0 Gateway closed [code: 1000 (normal_closure), reason: Reconnect]
[INFO  2020-12-25 18:14:41] Quit client listener, server(false)...
[discord.v] #0 Gateway closed [code: 1000 (normal_closure), reason: closed by client]
[INFO  2020-12-25 18:14:41] connecting to host wss://gateway.discord.gg/?v=8&encoding=json
[INFO  2020-12-25 18:14:41] successfully connected to host wss://gateway.discord.gg/?v=8&encoding=json
[discord.v] #0 Successfully connected to gateway
[INFO  2020-12-25 18:14:41] Starting client listener, server(false)...
[discord.v] #0 Gateway closed [code: 1000 (normal_closure), reason: Reconnect]
[INFO  2020-12-25 19:03:30] Quit client listener, server(false)...
[discord.v] #0 Gateway closed [code: 1000 (normal_closure), reason: closed by client]
[INFO  2020-12-25 19:03:30] connecting to host wss://gateway.discord.gg/?v=8&encoding=json
[INFO  2020-12-25 19:03:31] successfully connected to host wss://gateway.discord.gg/?v=8&encoding=json
[discord.v] #0 Successfully connected to gateway
[INFO  2020-12-25 19:03:31] Starting client listener, server(false)...

V Panic readalloc

I'm getting the following error after some minutes:

[discord.v] #0 Successfully connected to gateway
Ready!
V panic: realloc(0) failed
/tmp/v/codersbot.2699066824402020250.tmp.c:10768: at v_panic: Backtrace
/tmp/v/codersbot.2699066824402020250.tmp.c:10851: by v_realloc
/tmp/v/codersbot.2699066824402020250.tmp.c:10175: by array_ensure_cap
/tmp/v/codersbot.2699066824402020250.tmp.c:10444: by array_push
/tmp/v/codersbot.2699066824402020250.tmp.c:32516: by discordv__Member_from_json
/tmp/v/codersbot.2699066824402020250.tmp.c:33302: by discordv__from_json_T_discordv__Member
/tmp/v/codersbot.2699066824402020250.tmp.c:31990: by discordv__Message_from_json
/tmp/v/codersbot.2699066824402020250.tmp.c:31058: by discordv__on_dispatch
/tmp/v/codersbot.2699066824402020250.tmp.c:17541: by discordv__eventbus__EventBus_publish
/tmp/v/codersbot.2699066824402020250.tmp.c:30203: by discordv__gateway__Connection_publish
/tmp/v/codersbot.2699066824402020250.tmp.c:30234: by discordv__gateway__on_message
/tmp/v/codersbot.2699066824402020250.tmp.c:25574: by x__websocket__Client_send_message_event
/tmp/v/codersbot.2699066824402020250.tmp.c:26462: by x__websocket__Client_listen
/tmp/v/codersbot.2699066824402020250.tmp.c:30169: by discordv__gateway__Connection_open
/tmp/v/codersbot.2699066824402020250.tmp.c:6578: by discordv__gateway__Connection_open_thread_wrapper
7f1ac78f64a4 : by ???

Disable debug logs

Hello ๐Ÿ‘‹
First of all, thank you for building this library (I started to make one myself then I saw this lib ๐Ÿ˜„)

I saw the comment in discord.v/util/log.v, "Remove then release". I think logs should be kept for debugging purposes, but it would be nice to be able to disable them (maybe using a DV_DEBUG environment variable or something like that?).

Thank you

EventBus not found

When i tried to run this example replacing "my_token" with my bot token the console was full of error messages related to EventBus

import terisback.discordv as vd

fn main() {
    mut client := vd.new(token: 'my_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 { }
    }
}```

Optional fields rewrite

At the moment, optional fields in structures are not implemented in vlang, but as far as I understand this is a matter of time. We can try to implement our own through generics:

struct None {}
type OptError = string | None
struct Opt<T> {
    value T
    error OptError = None{}
}

struct MessageModify {
    text Opt<string>
}

editQuery := MessageModify{Opt<string>{value: 'Hello there!'})
// Then in rest method check every field error and serialize

Options will replace almost all fields in already written structures

or do nothing yet and wait for implementation in language

builder error: bad module definition "eventbus"

  • os: Windows10
  • v version: V 0.2.2 02f0a30

The problem occurred when I was trying the README Example.

v run main.v

C:\Users\myname\.vmodules\terisback\discordv\client.v:6:1: builder error: bad module definition: 
C:\Users\myname\.vmodules\terisback\discordv\client.v imports module "eventbus" but 
C:\Users\myname\.vmodules\terisback\discordv\eventbus\eventbus.v is defined as module `terisback.discordv.eventbus`                                                                       
4 | import term 
5 | import time                                                                                                       
6 | import eventbus                                                                                                      
   | ~~~~~~~~~~~~~~~                                                                                                     
7 | import gateway                                                                                                      
8 | import rest 

I figured it was probably a conflict with vlib.

So, I made the following changes to discord.v

clienv.v

// fix import path
import discordv.eventbus

But I got the following error

v run main.v
C:\Users\myname\.vmodules\terisback\discordv\eventbus\eventbus.v:8:8: error: cannot register struct `terisback.discordv.eventbus.Registry`, another type with this name exists
    6 | // Registry of event handlers
    7 | [heap]
    8 | struct Registry {
      |        ~~~~~~~~
    9 | mut:
   10 |     events []EventHandler

I'm currently investigating this, does anyone have a good solution?

Thank you.

hey

i have an error:

PS C:\Users\Mewzax\Documents\Code\Vlang\Discord-Bot> v run .
C:/Users/Mewzax/.vmodules/terisback/discordv/rest/formdata/formdata.v:83:10: warning: method `strings.Builder.write_b` has been deprecated since 2022-02-11, it will be an error after 2022-08-10; Use write_u8() instead
   81 | pub fn (f FormData) encode() string {
   82 |     mut builder := strings.new_builder(200)
   83 |     builder.write_b(`\n`)
      |             ~~~~~~~~~~~~~
   84 |     for k, v in f.fields {
   85 |         builder.write_string('--$f.boundary\n')
C:/Users/Mewzax/.vmodules/terisback/discordv/rest/formdata/formdata.v:89:13: warning: method `strings.Builder.write_b` has been deprecated since 2022-02-11, it will be an error after 2022-08-10; Use write_u8() instead
   87 |             string {
   88 |                 builder.write_string("Content-Disposition: form-data; name=\"$k\"\n")
   89 |                 builder.write_b(`\n`)
      |                         ~~~~~~~~~~~~~
   90 |                 builder.write_string(v)
   91 |                 builder.write_b(`\n`)
C:/Users/Mewzax/.vmodules/terisback/discordv/rest/formdata/formdata.v:91:13: warning: method `strings.Builder.write_b` has been deprecated since 2022-02-11, it will be an error after 2022-08-10; Use write_u8() instead
   89 |                 builder.write_b(`\n`)
   90 |                 builder.write_string(v)
   91 |                 builder.write_b(`\n`)
      |                         ~~~~~~~~~~~~~
   92 |             }
   93 |             FormFile {
C:/Users/Mewzax/.vmodules/terisback/discordv/rest/formdata/formdata.v:91:13: warning: method `strings.Builder.write_b` has been deprecated since 2022-02-11, it will be an error after 2022-08-10; Use write_u8() instead
   89 |                 builder.write_b(`\n`)
   90 |                 builder.write_string(v)
   91 |                 builder.write_b(`\n`)
      |                         ~~~~~~~~~~~~~
   92 |             }
   93 |             FormFile {
C:/Users/Mewzax/.vmodules/terisback/discordv/rest/formdata/formdata.v:97:13: warning: method `strings.Builder.write_b` has been deprecated since 2022-02-11, it will be an error after 2022-08-10; Use write_u8() instead
   95 |                 builder.write_string('Content-Type: $v.content_type\n')
   96 |                 builder.write_string('Content-Transfer-Encoding: base64\n')
   97 |                 builder.write_b(`\n`)
      |                         ~~~~~~~~~~~~~
   98 |                 builder.write_string(base64.encode(v.data))
   99 |                 builder.write_b(`\n`)
C:/Users/Mewzax/.vmodules/terisback/discordv/rest/formdata/formdata.v:99:13: warning: method `strings.Builder.write_b` has been deprecated since 2022-02-11, it will be an error after 2022-08-10; Use write_u8() instead
   97 |                 builder.write_b(`\n`)
   98 |                 builder.write_string(base64.encode(v.data))
   99 |                 builder.write_b(`\n`)
      |                         ~~~~~~~~~~~~~
  100 |             }
  101 |         }
C:/Users/Mewzax/.vmodules/terisback/discordv/rest/formdata/formdata.v:99:13: warning: method `strings.Builder.write_b` has been deprecated since 2022-02-11, it will be an error after 2022-08-10; Use write_u8() instead
   97 |                 builder.write_b(`\n`)
   98 |                 builder.write_string(base64.encode(v.data))
   99 |                 builder.write_b(`\n`)
      |                         ~~~~~~~~~~~~~
  100 |             }
  101 |         }
C:/Users/Mewzax/.vmodules/terisback/discordv/rest.v:30:24: warning: function `math.mathutil.min` has been deprecated since 2022-01-19, it will be an error after 2022-07-18; use math.min instead
   28 |         values.add('before', query.before)
   29 |     }
   30 |     values.add('limit', m.min(m.max(1, query.limit), 100).str())
      |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   31 |     return values.encode()
   32 | }
C:/Users/Mewzax/.vmodules/terisback/discordv/rest.v:30:30: warning: function `math.mathutil.max` has been deprecated since 2022-01-19, it will be an error after 2022-07-18; use math.max instead
   28 |         values.add('before', query.before)
   29 |     }
   30 |     values.add('limit', m.min(m.max(1, query.limit), 100).str())
      |                                 ~~~~~~~~~~~~~~~~~~~
   31 |     return values.encode()
   32 | }
C:/Users/Mewzax/.vmodules/terisback/discordv/rest.v:30:30: warning: function `math.mathutil.max` has been deprecated since 2022-01-19, it will be an error after 2022-07-18; use math.max instead
   28 |         values.add('before', query.before)
   29 |     }
   30 |     values.add('limit', m.min(m.max(1, query.limit), 100).str())
      |                                 ~~~~~~~~~~~~~~~~~~~
   31 |     return values.encode()
   32 | }
C:/Users/Mewzax/.vmodules/terisback/discordv/rest/formdata/formdata.v:98:40: error: cannot use `[]byte` as `[]u8` in argument 1 to `encoding.base64.encode`
   96 |                 builder.write_string('Content-Transfer-Encoding: base64\n')
   97 |                 builder.write_b(`\n`)
   98 |                 builder.write_string(base64.encode(v.data))
      |                                                    ~~~~~~
   99 |                 builder.write_b(`\n`)
  100 |             }
C:/Users/Mewzax/.vmodules/terisback/discordv/structs.v:692:24: error: type `byte` is an alias, use the original alias type `u8` instead
  690 | }
  691 |
  692 | pub type MessageFlag = byte
      |                        ~~~~
  693 |
  694 | pub const (
C:/Users/Mewzax/.vmodules/terisback/discordv/structs.v:785:27: error: cannot cast `int` to `byte` (alias to `u8`)
  783 |             }
  784 |             'flags' {
  785 |                 m.flags = MessageFlag(byte(v.int()))
      |                                       ~~~~~~~~~~~~~
  786 |             }
  787 |             else {}
  

can you help me pls ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.