Finish some TODO's
This commit is contained in:
parent
5166ffe8ed
commit
eba9eeb741
|
@ -34,6 +34,37 @@ type
|
||||||
expFilterLvlMembersWithoutRoles = 1,
|
expFilterLvlMembersWithoutRoles = 1,
|
||||||
expFilterLvlAllMembers = 2
|
expFilterLvlAllMembers = 2
|
||||||
|
|
||||||
|
GuildFeature* = enum
|
||||||
|
## Guild's features. This enum is used as constants for the user.
|
||||||
|
## For guild feature explainations go [here](https://discord.com/developers/docs/resources/guild#guild-object-guild-features)
|
||||||
|
featureInviteSplash = "INVITE_SPLASH",
|
||||||
|
featureVipRegions = "VIP_REGIONS",
|
||||||
|
featureVanityUrl = "VANITY_URL",
|
||||||
|
featureVerifiedPartnered = "PARTNERED",
|
||||||
|
featurePublic = "PUBLIC",
|
||||||
|
featureCommerce = "COMMERCE",
|
||||||
|
featureNews = "NEWS",
|
||||||
|
featureDiscoverable = "DISCOVERABLE",
|
||||||
|
featureFeaturable = "FEATURABLE",
|
||||||
|
featureAnimatedIcon = "ANIMATED_ICON",
|
||||||
|
featureBanner = "BANNER",
|
||||||
|
featurePublicDisabled = "PUBLIC_DISABLED",
|
||||||
|
featureWelcomeScreenEnabled = "WELCOME_SCREEN_ENABLED"
|
||||||
|
|
||||||
|
VoiceState* = ref object
|
||||||
|
## Used to represent a user's voice connection status
|
||||||
|
guildID*: snowflake
|
||||||
|
channelID*: snowflake
|
||||||
|
userID*: snowflake
|
||||||
|
member*: GuildMember
|
||||||
|
sessionID*: string
|
||||||
|
deaf*: bool
|
||||||
|
mute*: bool
|
||||||
|
selfDeaf*: bool
|
||||||
|
selfMute*: bool
|
||||||
|
selfStream*: bool
|
||||||
|
suppress*: bool
|
||||||
|
|
||||||
Guild* = ref object of DiscordObject
|
Guild* = ref object of DiscordObject
|
||||||
## Discord Guild object
|
## Discord Guild object
|
||||||
name*: string
|
name*: string
|
||||||
|
@ -63,7 +94,7 @@ type
|
||||||
large*: bool
|
large*: bool
|
||||||
unavailable*: bool
|
unavailable*: bool
|
||||||
memberCount*: int
|
memberCount*: int
|
||||||
#voiceStates*: seq[VoiceState]
|
voiceStates*: seq[VoiceState]
|
||||||
members*: seq[GuildMember]
|
members*: seq[GuildMember]
|
||||||
channels*: seq[Channel]
|
channels*: seq[Channel]
|
||||||
#presences*: seq[Presence]
|
#presences*: seq[Presence]
|
||||||
|
@ -132,14 +163,11 @@ type
|
||||||
channelID*: snowflake
|
channelID*: snowflake
|
||||||
|
|
||||||
GuildWidgetStyle* = enum
|
GuildWidgetStyle* = enum
|
||||||
guildWidgetStyleShield = "shield", ## Shield style widget with Discord icon and guild members online count.
|
guildWidgetStyleShield = "shield",
|
||||||
guildWidgetStyleBanner1 = "banner1", ## Large image with guild icon, name and online count.
|
guildWidgetStyleBanner1 = "banner1",
|
||||||
## "POWERED BY DISCORD" as the footer of the widget.
|
guildWidgetStyleBanner2 = "banner2",
|
||||||
guildWidgetStyleBanner2 = "banner2", ## Smaller widget style with guild icon, name and online count.
|
guildWidgetStyleBanner3 = "banner3",
|
||||||
## Split on the right with Discord logo.
|
guildWidgetStyleBanner4 = "banner4"
|
||||||
guildWidgetStyleBanner3 = "banner3", ## Large image with guild icon, name and online count.
|
|
||||||
## In the footer, Discord logo on the left and "Chat Now" on the right.
|
|
||||||
guildWidgetStyleBanner4 = "banner4"
|
|
||||||
|
|
||||||
|
|
||||||
proc newGuild*(json: JsonNode): Guild {.inline.} =
|
proc newGuild*(json: JsonNode): Guild {.inline.} =
|
||||||
|
@ -157,7 +185,6 @@ proc newGuild*(json: JsonNode): Guild {.inline.} =
|
||||||
verificationLevel: VerificationLevel(json["verification_level"].getInt()),
|
verificationLevel: VerificationLevel(json["verification_level"].getInt()),
|
||||||
defaultMessageNotifications: MessageNotificationsLevel(json["default_message_notifications"].getInt()),
|
defaultMessageNotifications: MessageNotificationsLevel(json["default_message_notifications"].getInt()),
|
||||||
explicitContentFilter: ExplicitContentFilterLevel(json["explicit_content_filter"].getInt()),
|
explicitContentFilter: ExplicitContentFilterLevel(json["explicit_content_filter"].getInt()),
|
||||||
#features
|
|
||||||
mfaLevel: MFALevel(json["mfa_level"].getInt()),
|
mfaLevel: MFALevel(json["mfa_level"].getInt()),
|
||||||
applicationID: getIDFromJson(json["application_id"].getStr()),
|
applicationID: getIDFromJson(json["application_id"].getStr()),
|
||||||
systemChannelID: getIDFromJson(json["system_channel_id"].getStr()),
|
systemChannelID: getIDFromJson(json["system_channel_id"].getStr()),
|
||||||
|
@ -180,7 +207,8 @@ proc newGuild*(json: JsonNode): Guild {.inline.} =
|
||||||
g.roles.add(newRole(role, g.id))
|
g.roles.add(newRole(role, g.id))
|
||||||
for emoji in json["emojis"]:
|
for emoji in json["emojis"]:
|
||||||
g.emojis.add(newEmoji(emoji, g.id))
|
g.emojis.add(newEmoji(emoji, g.id))
|
||||||
#TODO features
|
for feature in json["features"]:
|
||||||
|
g.features.add(feature.getStr())
|
||||||
if (json.contains("widget_enabled")):
|
if (json.contains("widget_enabled")):
|
||||||
g.widgetEnabled = json["widget_enabled"].getBool()
|
g.widgetEnabled = json["widget_enabled"].getBool()
|
||||||
if (json.contains("widget_channel_id")):
|
if (json.contains("widget_channel_id")):
|
||||||
|
@ -191,7 +219,25 @@ proc newGuild*(json: JsonNode): Guild {.inline.} =
|
||||||
g.unavailable = json["unavailable"].getBool()
|
g.unavailable = json["unavailable"].getBool()
|
||||||
if (json.contains("member_count")):
|
if (json.contains("member_count")):
|
||||||
g.memberCount = json["member_count"].getInt()
|
g.memberCount = json["member_count"].getInt()
|
||||||
#TODO: voice_states
|
if (json.contains("voice_states")):
|
||||||
|
for voicestate in json["voice_states"]:
|
||||||
|
var state = VoiceState(
|
||||||
|
guildID: g.id,
|
||||||
|
channelID: getIDFromJson(voicestate["channel_id"].getStr()),
|
||||||
|
userID: getIDFromJson(voicestate["user_id"].getStr()),
|
||||||
|
sessionID: voicestate["session_id"].getStr(),
|
||||||
|
deaf: voicestate["deaf"].getBool(),
|
||||||
|
mute: voicestate["mute"].getBool(),
|
||||||
|
selfDeaf: voicestate["self_deaf"].getBool(),
|
||||||
|
selfMute: voicestate["self_mute"].getBool(),
|
||||||
|
selfStream: voicestate{"self_stream"}.getBool(),
|
||||||
|
suppress: voicestate["suppress"].getBool()
|
||||||
|
)
|
||||||
|
|
||||||
|
if (voicestate.contains("member")):
|
||||||
|
state.member = newGuildMember(voicestate["member"], g.id)
|
||||||
|
|
||||||
|
g.voiceStates.add(state)
|
||||||
if (json.contains("members")):
|
if (json.contains("members")):
|
||||||
for member in json["members"]:
|
for member in json["members"]:
|
||||||
g.members.insert(newGuildMember(member, g.id))
|
g.members.insert(newGuildMember(member, g.id))
|
||||||
|
|
Reference in New Issue