Interact with the discord api gateway. Especially startSession, updateStatus.
Procs
proc disconnect(s: Shard; should_reconnect = true): owned(Future[void]) {. ...stackTrace: false, raises: [Exception], tags: [RootEffect, WriteIOEffect, ReadIOEffect, TimeEffect, ReadDirEffect, ReadEnvEffect], forbids: [].}
- Disconnects a shard. Source Edit
proc endSession(discord: DiscordClient): owned(Future[void]) {. ...stackTrace: false, raises: [Exception], tags: [RootEffect, WriteIOEffect, ReadIOEffect, TimeEffect, ReadDirEffect, ReadEnvEffect], forbids: [].}
- Ends the session. Source Edit
proc getGuildMember(s: Shard; guild_id, user_id: string; presence = false): Future[ Member] {....stackTrace: false, raises: [Exception, ValueError], tags: [RootEffect, WriteIOEffect, ReadIOEffect, TimeEffect], forbids: [].}
-
Gets a guild member by using requestGuildMembers.
- presence Have members presence when returned (member.presence).
proc requestGuildMembers(s: Shard; guild_id: string or seq[string]; limit = none int; query = none string; nonce = ""; presences = false; user_ids: seq[string] = @[]): owned( Future[void]) {....stackTrace: false.}
- Requests the offline members to a guild. (See: https://discord.com/developers/docs/topics/gateway#request-guild-members) Source Edit
proc startSession(discord: DiscordClient; autoreconnect = true; gateway_intents: set[ GatewayIntent] = {giGuilds, giGuildMessages, giDirectMessages, giGuildVoiceStates, giMessageContent}; large_message_threshold, large_threshold = 50; max_message_size = 5000000; gateway_version = 10; max_shards = none int; shard_id = 0; cache_users, cache_guilds, guild_subscriptions = true; cache_guild_channels, cache_dm_channels = true): owned( Future[void]) {....stackTrace: false, raises: [Exception], tags: [RootEffect, TimeEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}
-
Connects the client to Discord via gateway.
- gateway_intents Allows you to subscribe to pre-defined events. NOTE: When not specified this will default to: giGuilds, giGuildMessages, giDirectMessages, giGuildVoiceStates, giMessageContent
- large_threshold The number that would be considered a large guild (50-250).
- guild_subscriptions Whether or not to receive presence_update, typing_start events.
- autoreconnect Whether the client should reconnect whenever a network error occurs.
- max_message_size Max message JSON size (MESSAGE_CREATE) the client should cache in bytes.
- large_message_threshold Max message limit (MESSAGE_CREATE)
proc updateStatus(s: Shard; activities: seq[ActivityStatus] = @[]; status = "online"; afk = false): owned(Future[void]) {. ...stackTrace: false, raises: [Exception], tags: [RootEffect, WriteIOEffect, ReadIOEffect, TimeEffect], forbids: [].}
- Updates the shard's status. Source Edit
proc updateStatus(s: Shard; activity = none ActivityStatus; status = "online"; afk = false): owned(Future[void]) {....stackTrace: false, raises: [Exception], tags: [RootEffect, WriteIOEffect, ReadIOEffect, TimeEffect], forbids: [].}
- Updates the shard's status. Source Edit
proc voiceStateUpdate(s: Shard; guild_id: string; channel_id = none string; self_mute, self_deaf = false): owned(Future[void]) {. ...stackTrace: false, raises: [Exception], tags: [RootEffect, WriteIOEffect, ReadIOEffect, TimeEffect], forbids: [].}
- Allows the shard to either join, move to, or disconnect. If channel_id param is not provided. It will disconnect. Source Edit