Types
Snowflake = object val*: string
- Snowlake is a unique id for most Discord objects
Overwrite = object id*: Snowflake `type`*: string allow*: int deny*: int
ChannelType = enum CTGuildText, CTDM, CTGuildVoice, CTGroupDM, CTGuildCategory
Channel = object of RootObj id*: Snowflake `type`*: ChannelType guild_id*: string position*: int permission_overwrites*: seq[Overwrite] name*: string topic*: string nsfw*: bool last_message_id*: string bitrate*: int user_limit*: int recipients*: seq[User] icon*: string owner_id*: string application_id*: string parent_id*: string last_pin_timestamp*: string
MessageType = enum MTDefault, MTRecipientAdd, MTRecipientRemove, MTCall, MTChannelNameChange, MTChannelIconChange, MTChannelPinnedMessage, MTGuildMemberJoin
MessageActivityType = enum MATJoin, MATSpectate, MATListen, MATJoinRequest
MessageActivity = ref object `type`*: MessageActivityType party_id*: string
MessageApplication = ref object id*: Snowflake cover_image*: string description*: string icon*: string name*: string
Message = object of RootObj id*: Snowflake channel_id*: string author*: User content*: string timestamp*: string edited_timestamp*: string tts*: bool mention_everyone*: bool mentions*: seq[User] mention_roles*: seq[string] attachments*: seq[Attachment] embeds*: seq[Embed] reactions*: seq[Reaction] nonce*: string pinned*: bool webhook_id*: string `type`*: MessageType activity*: MessageActivity application*: MessageApplication
Reaction = object count*: int me*: bool emoji*: Emoji
Emoji = object id*: Snowflake name*: string roles*: seq[string] user*: User require_colons*: bool managed*: bool animated*: bool
Embed = object title*: string `type`*: string description*: string url*: string timestamp*: string color*: int footer*: EmbedFooter image*: EmbedImage thumbnail*: EmbedThumbnail video*: EmbedVideo provider*: EmbedProvider author*: EmbedAuthor fields*: seq[EmbedField] not nil
EmbedThumbnail = object url*: string proxy_url*: string height*: int width*: int
EmbedVideo = object url*: string height*: int width*: int
EmbedImage = object url*: string proxy_url*: string height*: int width*: int
EmbedProvider = object name*: string url*: string
EmbedAuthor = object name*: string url*: string icon_url*: string proxy_icon_url*: string
EmbedField = object name*: string value*: string inline*: bool
Attachment = object id*: Snowflake filename*: string size*: int url*: string proxy_url*: string height*: int width*: int
Presence = object since*: int afk*: bool game*: Game status*: string
Guild = object of RootObj id*: Snowflake name*: string icon*: string splash*: string owner*: bool owner_id*: string permissions*: int region*: string afk_channel_id*: string afk_timeout*: int embed_enabled*: bool embed_channel_id*: string verification_level*: int default_message_notifications*: int explicit_content_filter*: int roles*: seq[Role] emojis*: seq[Emoji] features*: seq[string] mfa_level*: int application_id*: string widget_enabled*: bool widget_channel_id*: string system_channel_id*: string joined_at*: string large*: bool unavailable*: bool member_count*: int voice_states*: seq[VoiceState] members*: seq[GuildMember] channels*: seq[Channel] presences*: seq[Presence]
GuildMember = object of RootObj guild_id*: string user*: User nick*: string roles*: seq[string] joined_at*: string deaf*: bool mute*: bool
Integration = object id*: Snowflake name*: string `type`*: string enabled*: bool syncing*: bool role_id*: string expire_behavior*: int expire_grace_period*: int user*: User account*: IntegrationAccount synced_at*: string
IntegrationAccount = object id*: Snowflake name*: string
Invite = object code*: string guild*: InviteGuild channel*: InviteChannel approximate_presence_count*: int approximate_member_count*: int
InviteMetadata = object inviter*: User uses*: int max_uses*: int max_age*: int temporary*: bool created_at*: string revoked*: bool
InviteGuild = object id*: Snowflake name*: string splash*: string icon*: string
InviteChannel = object id*: Snowflake name*: string `type`*: int
User = object of RootObj id*: Snowflake username*: string discriminator*: string avatar*: string bot*: bool mfa_enabled*: bool locale*: string verified*: bool email*: string
UserGuild = object id*: Snowflake name*: string icon*: string owner*: bool permissions*: int
Connection = object id*: Snowflake name*: string `type`*: string revoked*: bool integrations*: seq[Integration]
VoiceState = object of RootObj guild_id*: string channel_id*: string user_id*: string session_id*: string deaf*: bool mute*: bool self_deaf*: bool self_mute*: bool suppress*: bool
VoiceRegion = object id*: Snowflake name*: string vip*: bool optimal*: bool deprecated*: bool custom*: bool
Webhook = object id*: Snowflake guild_id*: string channel_id*: string user*: User name*: string avatar*: string token*: string
Role = object id*: Snowflake name*: string color*: int hoist*: bool position*: int permissions*: int managed*: bool mentionable*: bool
ChannelParams = ref object name*: string position*: int topic*: string bitrate*: int user_limit*: int
GuildParams = ref object name*: string region*: string verification_level*: int default_message_notifications*: int afk_channel_id*: string afk_timeout*: int icon*: string owner_id*: string splash*: string
GuildMemberParams = ref object nick*: string roles*: seq[string] mute*: bool deaf*: bool channel_id*: string
GuildEmbed = object enabled*: bool channel_id*: string
WebhookParams = ref object content*: string username*: string avatar_url*: string tts*: bool embeds*: seq[Embed]
GuildEmojisUpdate = object guild_id*: string emojis*: seq[Emoji]
GuildIntegrationsUpdate = object guild_id*: string
GuildRoleCreate = object guild_id*: string role*: Role
GuildRoleUpdate = object guild_id*: string role*: Role
GuildRoleDelete = object guild_id*: string role_id*: string
AuditLogOptions = object delete_members_days*: string members_removed*: string channel_id*: string count*: string id*: Snowflake `type`*: string role_name*: string
AuditLogChangeKind = enum ALCString, ALCInt, ALCBool, ALCRoles, ALCOverwrites, ALCNil
AuditLogChangeValue = ref AuditLogChangeValueObj
AuditLogChange = object new_value*: AuditLogChangeValue old_value*: AuditLogChangeValue key*: string
AuditLogEntry = object target_id*: string changes*: seq[AuditLogChange] user_id*: string id*: Snowflake action_type*: int options*: AuditLogOptions reason*: string
AuditLog = object webhooks*: seq[Webhook] users*: seq[User] audit_log_entries*: seq[AuditLogEntry]
MessageDeleteBulk = object ids*: seq[string] channel_id*: string
Game = object of RootObj name*: string `type`*: int url*: string
PresenceUpdate = object user*: User nick: string roles*: seq[string] game*: Game guild_id*: string status*: string
TypingStart = object channel_id*: string user_id*: string timestamp*: int
VoiceServerUpdate = object token: string guild_id: string endpoint: string
VoiceConnection = object sampleRate: uint frameSize: uint16 channels: uint8 volume: float
Resumed = object trace*: seq[string]
Cache = ref object lock: Lock version*: int me*: User cacheChannels*: bool cacheGuilds*: bool cacheGuildMembers*: bool cacheUsers*: bool cacheRoles*: bool channels: Table[string, Channel] guilds: Table[string, Guild] users: Table[string, User] members: Table[string, GuildMember] roles: Table[string, Role] ready: Ready
Ready = object v*: int user*: User private_channels*: seq[Channel] session_id*: string guilds*: seq[Guild] trace*: seq[string] presences*: seq[Presence]
Pin = object of RootObj last_pin_timestamp*: string channel_id*: string
MessageCreate = Message
MessageUpdate = Message
MessageDelete = Message
GuildMemberAdd = GuildMember
GuildMemberUpdate = GuildMember
GuildMemberRemove = GuildMember
GuildMembersChunk = object guild_id*: string members*: seq[GuildMember]
GuildCreate = Guild
GuildUpdate = Guild
GuildDelete = object id*: Snowflake unavailable*: bool
GuildBanAdd = User
GuildBanRemove = User
ChannelCreate = Channel
ChannelUpdate = Channel
ChannelDelete = Channel
ChannelPinsUpdate = object of Pin
UserUpdate = User
VoiceStateUpdate = VoiceState
MessageReactionAdd = object of RootObj user_id*: string message_id*: string channel_id*: string emoji*: Emoji
MessageReactionRemove = MessageReactionAdd
MessageReactionRemoveAll = object message_id*: string channel_id*: string
EventType = enum channel_create, channel_update, channel_delete, channel_pins_update, webhooks_update, guild_create, guild_update, guild_delete, guild_ban_add, guild_ban_remove, guild_emojis_update, guild_integrations_update, guild_member_add, guild_member_update, guild_member_remove, guild_members_chunk, guild_role_create, guild_role_update, guild_role_delete, message_create, message_update, message_delete, message_delete_bulk, message_reaction_add, message_reaction_remove, message_reaction_remove_all, presence_update, typing_start, user_update, voice_state_update, voice_server_update, on_resume, on_ready, on_disconnect
Shard = ref ShardImpl
CacheError = object of Exception
AddGroupDMUser = object id: string nick: string
PartialChannel = object name*: string `type`*: int
Consts
auditGuildUpdate = 1
auditChannelCreate = 10
auditChannelUpdate = 11
auditChannelDelete = 12
auditChannelOverwriteCreate = 13
auditChannelOverwriteUpdate = 14
auditChannelOverwriteDelete = 15
auditMemberKick = 20
auditMemberPrune = 21
auditMemberBanAdd = 22
auditMemberBanRemove = 23
auditMemberUpdate = 24
auditMemberRoleUpdate = 25
auditRoleCreate = 30
auditRoleUpdate = 31
auditRoleDelete = 32
auditInviteCreate = 40
auditInviteUpdate = 41
auditInviteDelete = 42
auditWebhookCreate = 50
auditWebhookUpdate = 51
auditWebhookDelete = 52
auditEmojiCreate = 60
auditEmojiUpdate = 61
auditEmojiDelete = 62
auditMessageDelete = 72
VERSION = "2.1.0"
permCreateInstantInvite = 0x00000001
permKickMembers = 0x00000002
permBanMembers = 0x00000004
permAdministrator = 0x00000008
permManageChannels = 0x00000010
permManageGuild = 0x00000020
permAddReactions = 0x00000040
permViewAuditLogs = 0x00000080
permPrioritySpeaker = 0x00000100
permViewChannel = 0x00000400
permSendMessages = 0x00000800
permSendTTSMessage = 0x00001000
permManageMessages = 0x00002000
permEmbedLinks = 0x00004000
permAttachFiles = 0x00008000
permReadMessageHistory = 0x00010000
permMentionEveryone = 0x00020000
permUseExternalEmojis = 0x00040000
permVoiceConnect = 0x00100000
permVoiceSpeak = 0x00200000
permVoiceMuteMembers = 0x00400000
permVoiceDeafenMemebrs = 0x00800000
permVoiceMoveMembers = 0x01000000
permUseVAD = 0x02000000
permChangeNickname = 0x04000000
permManageNicknames = 0x08000000
permManageRoles = 0x10000000
permManageWebhooks = 0x20000000
permManageEmojis = 0x40000000
permAllText = 261120
permAllVoice = 66060288
permAllChannel = 334757073
permAll = 334757119
Procs
proc toSnowflake(id: string): Snowflake {.
inline, raises: [], tags: [].}proc toSnowflake(id: int64): Snowflake {.
inline, raises: [], tags: [].}proc `==`(a, b: Snowflake): bool {.
inline, raises: [], tags: [].}proc `==`(a: Snowflake; b: string): bool {.
inline, raises: [], tags: [].}proc `==`(a: string; b: Snowflake): bool {.
inline, raises: [], tags: [].}proc `&`(a: string; b: Snowflake): string {.
inline, raises: [], tags: [].}proc `$`(a: Snowflake): string {.
inline, raises: [], tags: [].}proc gateway(): string {.
inline, raises: [], tags: [].}proc endpointAttachment(cid, aid, fname: string): string {.
inline, raises: [], tags: [].}proc endpointAvatar(uid, hash: string): string {.
inline, raises: [], tags: [].}proc endpointAvatarAnimated(uid, hash: string): string {.
inline, raises: [], tags: [].}proc endpointGuildIcon(gid, hash: string): string {.
inline, raises: [], tags: [].}proc endpointGuildSplash(gid, hash: string): string {.
inline, raises: [], tags: [].}proc endpointGroupIcon(cid, hash: string): string {.
inline, raises: [], tags: [].}proc endpointChannels(cid: string): string {.
inline, raises: [], tags: [].}proc endpointChannelMessages(cid: string): string {.
inline, raises: [], tags: [].}proc endpointChannelMessage(cid, mid: string): string {.
inline, raises: [], tags: [].}proc endpointReactions(cid, mid: string): string {.
inline, raises: [], tags: [].}proc endpointOwnReactions(cid, mid, eid: string): string {.
inline, raises: [], tags: [].}proc endpointMessageReactions(cid, mid, eid: string): string {.
inline, raises: [], tags: [].}proc endpointMessageUserReaction(cid, mid, eid, uid: string): string {.
inline, raises: [], tags: [].}proc endpointBulkDelete(cid: string): string {.
inline, raises: [], tags: [].}proc endpointChannelPermissions(cid, owid: string): string {.
inline, raises: [], tags: [].}proc endpointChannelInvites(cid: string): string {.
inline, raises: [], tags: [].}proc endpointTriggerTypingIndicator(cid: string): string {.
inline, raises: [], tags: [].}proc endpointChannelPinnedMessages(cid: string): string {.
inline, raises: [], tags: [].}proc endpointPinnedChannelMessage(cid, mid: string): string {.
inline, raises: [], tags: [].}proc endpointGroupDMRecipient(cid, uid: string): string {.
inline, raises: [], tags: [].}proc endpointGuilds(): string {.
inline, raises: [], tags: [].}proc endpointGuild(gid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildChannels(gid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildMembers(gid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildMember(gid, uid: string): string {.
inline, raises: [], tags: [].}proc endpointEditNick(gid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildMemberRoles(gid, uid, rid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildBans(gid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildBan(gid, uid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildRoles(gid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildRole(gid, rid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildPruneCount(gid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildVoiceRegions(gid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildInvites(gid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildIntegrations(gid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildIntegration(gid, iid: string): string {.
inline, raises: [], tags: [].}proc endpointSyncGuildIntegration(gid, iid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildEmbed(gid: string): string {.
inline, raises: [], tags: [].}proc endpointInvite(ic: string): string {.
inline, raises: [], tags: [].}proc endpointCurrentUser(): string {.
inline, raises: [], tags: [].}proc endpointUser(uid: string): string {.
inline, raises: [], tags: [].}proc endpointCurrentUserGuilds(): string {.
inline, raises: [], tags: [].}proc endpointLeaveGuild(gid: string): string {.
inline, raises: [], tags: [].}proc endpointUserDMs(): string {.
inline, raises: [], tags: [].}proc endpointDM(): string {.
inline, raises: [], tags: [].}proc endpointUsersConnections(): string {.
inline, raises: [], tags: [].}proc endpointListVoiceRegions(): string {.
inline, raises: [], tags: [].}proc endpointWebhooks(cid: string): string {.
inline, raises: [], tags: [].}proc endpointGuildWebhooks(gid: string): string {.
inline, raises: [], tags: [].}proc endpointWebhook(wid: string): string {.
inline, raises: [], tags: [].}proc endpointWebhookWithToken(wid, token: string): string {.
inline, raises: [], tags: [].}proc endpointAuth(): string {.
inline, raises: [], tags: [].}proc newPartialChannel(name: string; typ: int = 0): PartialChannel {.
inline, raises: [], tags: [].}proc `$`(u: User): string {.
gcsafe, inline, raises: [], tags: [].}-
Stringifies a user.
e.g: Username#1234
proc `$`(c: Channel): string {.
gcsafe, inline, raises: [], tags: [].}-
Stringifies a channel.
e.g: #channel-name
proc `$`(e: Emoji): string {.
gcsafe, inline, raises: [], tags: [].}-
Stringifies an emoji.
e.g: :emojiName:129837192873
proc `@`(u: User): string {.
gcsafe, inline, raises: [], tags: [].}-
Returns a message formatted user mention.
e.g: <@109283102983019283>
proc `@`(c: Channel): string {.
gcsafe, inline, raises: [], tags: [].}-
Returns a message formatted channel mention.
e.g: <#1239810283>
proc `@`(r: Role): string {.
gcsafe, inline, raises: [], tags: [].}-
Returns a message formatted role mention
e.g: <@&129837128937>
proc `@`(e: Emoji): string {.
gcsafe, inline, raises: [], tags: [].}-
Returns a message formated emoji.
e.g: <:emojiName:1920381>
proc defaultAvatar(u: User): string {.
raises: [ValueError, OverflowError], tags: [].}-
Returns the avatar url of the user.
If the user doesn't have an avatar it returns the users default avatar.
proc timestamp(i: int64): DateTime {.
raises: [], tags: [].}- Takes an ID and converts it into a timestamp
proc stripMentions(msg: Message): string {.
gcsafe, raises: [RegexError], tags: [].}-
Strips all user mentions from a message and replaces them with plaintext
e.g: <@1901092738173> -> @Username#1234
proc stripEveryoneMention(msg: Message): string {.
gcsafe, raises: [RegexError], tags: [].}- Strips a message of any @everyone and @here mention
proc newChannelParams(name, topic: string = ""; position: int = 0; bitrate: int = 48; userlimit: int = 0): ChannelParams {.
gcsafe, inline, raises: [], tags: [].}- Initialises a new ChannelParams object for altering channel settings.
proc newGuildParams(name, region, afkchan: string = ""; verlvl: int = 0; defnotif: int = 0; afktim: int = 0; icon: string = ""; ownerid: string = ""; splash: string = ""): GuildParams {.
gcsafe, inline, raises: [], tags: [].}- Initialises a new GuildParams object for altering guild settings.
proc newGuildMemberParams(nick, channelid: string = ""; roles: seq[string] = @[]; mute: bool = false; deaf: bool = false): GuildMemberParams {.
gcsafe, inline, raises: [], tags: [].}- Initialises a new GuildMemberParams object for altering guild members.
proc newWebhookParams(content, username, avatarurl: string = ""; tts: bool = false; embeds: seq[Embed] = nil): WebhookParams {.
gcsafe, inline, raises: [], tags: [].}- Initialises a new WebhookParams object for altering webhooks.
proc messageGuild(s: Shard; m: Message): string {.
raises: [Exception, ValueError, OSError, FutureError, IndexError], tags: [RootEffect, TimeEffect].}-
Returns the guild id of the guild the message was sent in.
Returns an empty string if it can't find the guild in the cache or by requesting it from the API.
proc newShard(token: string): Shard {.
gcsafe, raises: [Exception, ValueError, OSError, FutureError, IndexError], tags: [RootEffect, TimeEffect].}
Methods
method timestamp(s: Snowflake): DateTime {.
base, raises: [ValueError], tags: [].}- Makes a timestamp from the Snowflake
method addHandler(d: Shard; t: EventType; p: pointer): (proc ()) {.
gcsafe, base, inline, raises: [KeyError], tags: [].}-
Adds a handler tied to a websocket event.
Returns a proc that removes the event handler.
method getGuild(c: Cache; id: string): tuple[guild: Guild, exists: bool] {.
base, gcsafe, raises: [CacheError, KeyError], tags: [].}- Gets a guild from the cache
method removeGuild(c: Cache; guildid: string) {.
raises: CacheError, base, gcsafe, tags: [].}- Removes a guild from the cache
method updateGuild(c: Cache; guild: Guild) {.
raises: CacheError, inline, base, gcsafe, tags: [].}- Updates a guild in the cache
method getUser(c: Cache; id: string): tuple[user: User, exists: bool] {.
base, gcsafe, raises: [CacheError, KeyError], tags: [].}- Gets a user from the cache
method removeUser(c: Cache; id: string) {.
raises: CacheError, inline, base, gcsafe, tags: [].}- Removes a user from the cache
method updateUser(c: Cache; user: User) {.
inline, base, gcsafe, raises: [CacheError], tags: [].}- Updates a user in the cache
method getChannel(c: Cache; id: string): tuple[channel: Channel, exists: bool] {.
base, gcsafe, raises: [CacheError, KeyError], tags: [].}- Gets a channel from the cache
method updateChannel(c: Cache; chan: Channel) {.
inline, base, gcsafe, raises: [CacheError], tags: [].}- Updates a channel in the cache
method removeChannel(c: Cache; chan: string) {.
raises: CacheError, inline, base, gcsafe, tags: [].}- Removes a channel from the cache
method getGuildMember(c: Cache; guild, memberid: string): tuple[member: GuildMember, exists: bool] {.
base, gcsafe, raises: [CacheError, Exception], tags: [RootEffect].}- Gets a guild member from the cache
method addGuildMember(c: Cache; member: GuildMember) {.
inline, base, gcsafe, raises: [CacheError], tags: [].}- Adds a guild member to the cache
method updateGuildMember(c: Cache; m: GuildMember) {.
inline, base, gcsafe, raises: [CacheError], tags: [].}- Updates a guild member in the cache
method removeGuildMember(c: Cache; gmember: GuildMember) {.
inline, base, gcsafe, raises: [CacheError], tags: [].}- Removes a guild member from the cache
method getRole(c: Cache; guildid, roleid: string): tuple[role: Role, exists: bool] {.
base, gcsafe, raises: [CacheError, Exception], tags: [RootEffect].}- Gets a role from the cache
method updateRole(c: Cache; role: Role) {.
raises: CacheError, base, gcsafe, tags: [].}- Updates a role in the cache
method removeRole(c: Cache; role: string) {.
raises: CacheError, base, gcsafe, tags: [].}- Removes a role from the cache
method clear(c: Cache) {.
base, gcsafe, raises: [], tags: [].}- Clears a cache of all cached objects
method channel(s: Shard; channel_id: string): Future[Channel] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}method channelEdit(s: Shard; channelid: string; params: ChannelParams; reason: string = ""): Future[Guild] {.
base, gcsafe, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect, WriteIOEffect].}- Edits a channel with the ChannelParams
method deleteChannel(s: Shard; channelid: string; reason: string = ""): Future[Channel] {.
base, gcsafe, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}- Deletes a channel
method channelMessages(s: Shard; channelid: string; before, after, around: string; limit: int): Future[seq[Message]] {.
base, gcsafe, raises: [FutureError], tags: [TimeEffect, ReadIOEffect, RootEffect].}- Returns a channels messages Maximum of 100 messages
method channelMessage(s: Shard; channelid, messageid: string): Future[Message] {.
base, gcsafe, inline, raises: [FutureError], tags: [TimeEffect, ReadIOEffect, RootEffect].}- Returns a message from a channel
method channelMessageSend(s: Shard; channelid, message: string): Future[Message] {.
base, gcsafe, raises: [FutureError], tags: [TimeEffect, ReadIOEffect, RootEffect].}- Sends a regular text message to a channel
method channelMessageSendEmbed(s: Shard; channelid: string; embed: Embed): Future[ Message] {.
base, gcsafe, inline, raises: [FutureError], tags: [TimeEffect, ReadIOEffect, RootEffect].}- Sends an Embed message to a channel
method channelMessageSendTTS(s: Shard; channelid, message: string): Future[Message] {.
base, gcsafe, inline, raises: [FutureError], tags: [TimeEffect, ReadIOEffect, RootEffect].}- Sends a TTS message to a channel
method channelFileSendWithMessage(s: Shard; channelid, name, message: string): Future[ Message] {.
base, gcsafe, raises: [FutureError], tags: [ReadIOEffect, TimeEffect, RootEffect].}- Sends a file to a channel along with a message
method channelFileSendWithMessage(s: Shard; channelid, name, fbody, message: string): Future[ Message] {.
base, gcsafe, raises: [FutureError], tags: [TimeEffect, ReadIOEffect, RootEffect].}- Sends the contents of a file as a file to a channel.
method channelFileSend(s: Shard; channelid, fname: string): Future[Message] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect].}- Sends a file to a channel
method channelFileSend(s: Shard; channelid, fname, fbody: string): Future[Message] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect].}- Sends the contents of a file as a file to a channel.
method channelMessageReactionAdd(s: Shard; channelid, messageid, emojiid: string): Future[ void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Adds a reaction to a message
method messageDeleteOwnReaction(s: Shard; channelid, messageid, emojiid: string): Future[ void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes your own reaction to a message
method messageDeleteReaction(s: Shard; channelid, messageid, emojiid, userid: string): Future[ void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes a reaction from a user from a message
method messageGetReactions(s: Shard; channelid, messageid, emojiid: string): Future[ seq[User]] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Gets a message's reactions
method messageDeleteAllReactions(s: Shard; channelid, messageid: string): Future[void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes all reactions on a message
method channelMessageEdit(s: Shard; channelid, messageid, content: string): Future[ Message] {.
base, gcsafe, inline, raises: [FutureError], tags: [TimeEffect, ReadIOEffect, RootEffect].}- Edits a message's contents
method channelMessageDelete(s: Shard; channelid, messageid: string; reason: string = ""): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes a message
method channelMessagesDeleteBulk(s: Shard; channelid: string; messages: seq[string]): Future[ void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes messages in bulk. Will not delete messages older than 2 weeks
method channelEditPermissions(s: Shard; channelid: string; overwrite: Overwrite; reason: string = ""): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Edits a channel's permissions
method channelInvites(s: Shard; channel: string): Future[seq[Invite]] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Returns all invites to a channel
method channelCreateInvite(s: Shard; channel: string; max_age, max_uses: int; temp, unique: bool; reason: string = ""): Future[Invite] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Creates an invite to a channel
method channelDeletePermission(s: Shard; channel, target: string; reason: string = ""): Future[ void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes a channel permission
method typingIndicatorTrigger(s: Shard; channel: string): Future[void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Triggers the "X is typing" indicator
method channelPinnedMessages(s: Shard; channel: string): Future[seq[Message]] {.
base, gcsafe, inline, raises: [FutureError], tags: [TimeEffect, ReadIOEffect, RootEffect].}- Returns all pinned messages in a channel
method channelPinMessage(s: Shard; channel, message: string): Future[void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Pins a message in a channel
method channelDeletePinnedMessage(s: Shard; channel, message: string): Future[void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}method groupDMCreate(s: Shard; accesstokens: seq[string]; nicks: seq[AddGroupDMUser]): Future[ Channel] {.
base, gcsafe, inline, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}- Creates a group DM channel
method groupDMAddUser(s: Shard; channelid, userid, access_token, nick: string): Future[ void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Adds a user to a group dm. Requires the 'gdm.join' scope.
method groupdDMRemoveUser(s: Shard; channelid, userid: string): Future[void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Removes a user from a group dm.
method createGuild(s: Shard; name, region, icon: string; roles: seq[Role] = @[]; channels: seq[PartialChannel] = @[]; verlvl, defmsgnot: int): Future[ Guild] {.
base, gcsafe, inline, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}- Creates a guild. This endpoint is limited to 10 active guilds
method guild(s: Shard; id: string): Future[Guild] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, ReadIOEffect, TimeEffect].}- Gets a guild
method guildEdit(s: Shard; guild: string; settings: GuildParams; reason: string = ""): Future[ Guild] {.
base, gcsafe, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect, WriteIOEffect].}- Edits a guild with the GuildParams
method deleteGuild(s: Shard; guild: string): Future[Guild] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes a guild
method guildChannels(s: Shard; guild: string): Future[seq[Channel]] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, ReadIOEffect, TimeEffect].}- Returns all guild channels
method guildChannelCreate(s: Shard; guild, channelname: string; voice: bool; reason: string = ""): Future[Channel] {.
base, gcsafe, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}- Creates a new channel in a guild
method guildChannelPositionEdit(s: Shard; guild, channel: string; position: int; reason: string = ""): Future[seq[Channel]] {.
base, gcsafe, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}- Reorders the position of a channel and returns the new order
method guildMembers(s: Shard; guild: string; limit, after: int): Future[seq[GuildMember]] {.
base, gcsafe, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}- Returns up to 1000 guild members
method guildMember(s: Shard; guild, userid: string): Future[GuildMember] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, ReadIOEffect, TimeEffect].}- Returns a guild member with the userid
method guildAddMember(s: Shard; guild, userid, accesstoken: string): Future[GuildMember] {.
base, gcsafe, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}- Adds a guild member to the guild
method guildMemberRolesEdit(s: Shard; guild, userid: string; roles: seq[string]): Future[ void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Edits a guild member's roles
method guildMemberSetNickname(s: Shard; guild, userid, nick: string; reason: string = ""): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Sets the nickname of a member
method guildMemberMute(s: Shard; guild, userid: string; mute: bool; reason: string = ""): Future[ void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Mutes a guild member
method guildMemberDeafen(s: Shard; guild, userid: string; deafen: bool; reason: string = ""): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deafens a guild member
method guildMemberMove(s: Shard; guild, userid, channel: string; reason: string = ""): Future[ void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Moves a guild member from one channel to another only works if they are connected to a voice channel
method setNickname(s: Shard; guild, nick: string; reason: string = ""): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Sets the nick for the current user
method guildMemberAddRole(s: Shard; guild, userid, roleid: string; reason: string = ""): Future[ void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Adds a role to a guild member
method guildMemberRemoveRole(s: Shard; guild, userid, roleid: string; reason: string = ""): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Removes a role from a guild member
method guildRemoveMemberWithReason(s: Shard; guild, userid, reason: string): Future[ void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}method guildRemoveMember(s: Shard; guild, userid: string; reason: string = ""): Future[ void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect].}- Removes a guild membe from the guild
method guildBans(s: Shard; guild: string): Future[seq[User]] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Returns all users who have been banned from the guild
method guildUserBan(s: Shard; guild, userid: string; reason: string = ""): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Bans a user from the guild
method guildRemoveBan(s: Shard; guild, userid: string; reason: string = ""): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Removes a ban from the guild
method guildRoles(s: Shard; guild: string): Future[seq[Role]] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Returns all guild roles
method guildRole(s: Shard; guild, roleid: string): Future[Role] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect].}- Returns a role with the given id.
method guildCreateRole(s: Shard; guild: string; reason: string = ""): Future[Role] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Creates a new role in the guild
method guildEditRolePosition(s: Shard; guild: string; roles: seq[Role]; reason: string = ""): Future[seq[Role]] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}- Edits the positions of a guilds roles roles and returns the new roles order
method guildEditRole(s: Shard; guild, roleid, name: string; permissions, color: int; hoist, mentionable: bool; reason: string = ""): Future[Role] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Edits a role
method guildDeleteRole(s: Shard; guild, roleid: string; reason: string = ""): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes a role
method guildPruneCount(s: Shard; guild: string; days: int): Future[int] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Returns the number of members who would get kicked during a prune operation
method guildPruneBegin(s: Shard; guild: string; days: int; reason: string = ""): Future[int] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Begins a prune operation and kicks all members who haven't been active for N days
method guildVoiceRegions(s: Shard; guild: string): Future[seq[VoiceRegion]] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Lists all voice regions in a guild
method guildInvites(s: Shard; guild: string): Future[seq[Invite]] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Lists all guild invites
method guildIntegrations(s: Shard; guild: string): Future[seq[Integration]] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Lists all guild integrations
method guildIntegrationCreate(s: Shard; guild, typ, id: string): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Creates a new guild integration
method guildIntegrationEdit(s: Shard; guild, integrationid: string; behaviour, grace: int; emotes: bool): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Edits a guild integration
method guildIntegrationDelete(s: Shard; guild, integration: string): Future[void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes a guild Integration
method guildIntegrationSync(s: Shard; guild, integration: string): Future[void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Syncs an existing guild integration
method guildEmbed(s: Shard; guild: string): Future[GuildEmbed] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Gets a GuildEmbed
method guildEmbedEdit(s: Shard; guild: string; enabled: bool; channel: string): Future[ GuildEmbed] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}- Edits a GuildEmbed
method guildEmojiCreate(s: Shard; guild, name, image: string; roles: seq[string] = @[]): Future[ Emoji] {.
base, gcsafe, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}method guildEmojiUpdate(s: Shard; guild, emoji, name: string; roles: seq[string] = @[]): Future[ Emoji] {.
base, gcsafe, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}- Updates a guild emoji
method guildEmojiDelete(s: Shard; guild, emoji: string): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}method guildAuditLog(s: Shard; guild: string; user_id: string = ""; action_type: int = -1; before: string = ""; limit: int = 50): Future[ AuditLog] {.
gcsafe, base, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}method invite(s: Shard; code: string): Future[Invite] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Gets an invite with code
method inviteDelete(s: Shard; code: string; reason: string = ""): Future[Invite] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes an invite
method me(s: Shard): User {.
base, gcsafe, inline, raises: [], tags: [].}- Returns the current user
method user(s: Shard; userid: string): Future[User] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Gets a user
method usernameEdit(s: Shard; name: string): Future[User] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Edits the current users username
method avatarEdit(s: Shard; avatar: string): Future[User] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Changes the current users avatar
method currentUserGuilds(s: Shard): Future[seq[UserGuild]] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Lists the current users guilds
method leaveGuild(s: Shard; guild: string): Future[void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Makes the current user leave the specified guild
method activePrivateChannels(s: Shard): Future[seq[Channel]] {.
base, gcsafe, inline, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}- Lists all active DM channels
method privateChannelCreate(s: Shard; recipient: string): Future[Channel] {.
base, gcsafe, inline, raises: [FutureError], tags: [ReadIOEffect, RootEffect, TimeEffect].}- Creates a new DM channel
method voiceRegions(s: Shard): Future[seq[VoiceRegion]] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Lists all voice regions
method webhookCreate(s: Shard; channel, name, avatar: string; reason: string = ""): Future[ Webhook] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Creates a webhook
method channelWebhooks(s: Shard; channel: string): Future[seq[Webhook]] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Lists all webhooks in a channel
method guildWebhooks(s: Shard; guild: string): Future[seq[Webhook]] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Lists all webhooks in a guild
method getWebhookWithToken(s: Shard; webhook, token: string): Future[Webhook] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Gets a webhook with a token
method webhookEdit(s: Shard; webhook, name, avatar: string; reason: string = ""): Future[ Webhook] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Edits a webhook
method webhookEditWithToken(s: Shard; webhook, token, name, avatar: string; reason: string = ""): Future[Webhook] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Edits a webhook with a token
method webhookDelete(s: Shard; webhook: string; reason: string = ""): Future[Webhook] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deletes a webhook
method webhookDeleteWithToken(s: Shard; webhook, token: string; reason: string = ""): Future[ Webhook] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect].}- Deltes a webhook with a token
method executeWebhook(s: Shard; webhook, token: string; payload: WebhookParams): Future[ void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}- Executes a webhook
method updateStreamingStatus(s: Shard; idle: int = 0; game: string; url: string = ""; status: string = "online"): Future[void] {.
base, gcsafe, raises: [FutureError], tags: [RootEffect, WriteIOEffect, ReadIOEffect].}- Updates the Playing ... message of the current user.
method updateStatus(s: Shard; idle: int = 0; game: string = ""): Future[void] {.
base, gcsafe, inline, raises: [FutureError], tags: [RootEffect].}- Updates the Playing ... status
method disconnect(s: Shard): Future[void] {.
gcsafe, base, raises: [FutureError], tags: [ RootEffect, WriteIOEffect, ReadIOEffect].}- Disconnects a shard
method startSession(s: Shard): Future[void] {.
base, raises: [FutureError], tags: [RootEffect, TimeEffect, WriteIOEffect, ReadIOEffect].}- Connects a Shard