Skip to content

Commit 96700c9

Browse files
committed
Just some draft changes for debugging purposes
1 parent d58d5ea commit 96700c9

File tree

3 files changed

+32
-10
lines changed

3 files changed

+32
-10
lines changed

dimscord/constants.nim

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@ type
500500
mctFile = 13
501501
mctSeparator = 14
502502
mctContainer = 17
503+
mctLabel = 18
503504
StickerType* = enum
504505
stUnknown
505506
stStandard = 1
@@ -684,6 +685,8 @@ const
684685
deThreadListSync* = DispatchEvent.ThreadListSync
685686
deThreadMembersUpdate* = DispatchEvent.ThreadMembersUpdate
686687

688+
const mctStringSelect* = mctSelectMenu ## alias equivalent
689+
687690
const
688691
ActionRow* {.deprecated: "use mctActionRow".} = mctActionRow
689692
Button* {.deprecated: "use mctButton".} = mctButton

dimscord/objects.nim

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ proc logParser*(msg: string, s = "") =
242242

243243
proc parseHook[T](s: string, i: var int, v: var set[T]) =
244244
var data: JsonNode
245+
echo "hiya"
245246
jsony.parseHook(s, i, data)
246247

247248
case data.kind:
@@ -258,7 +259,16 @@ proc parseHook[T](s: string, i: var int, v: var set[T]) =
258259
proc fromJson*[T](s: string, x: typedesc[T]): T =
259260
try:
260261
var i = 0
261-
jsony.parseHook(s, i, result)
262+
## Draft code
263+
when (NimMajor, NimMinor, NimPatch) > (2, 0, 4):
264+
parseHook(s, i, result)
265+
else:
266+
when not compiles(objects.parseHook(s, i, result)):
267+
log "trying to parse " & $x & ", but going to use jsony's version"
268+
jsony.parseHook(s, i, result)
269+
else:
270+
log "trying to parse " & $x & ", but going to use objects's version"
271+
objects.parseHook(s, i, result)
262272
except:
263273
let message = getCurrentExceptionMsg()
264274
logParser(message, s)
@@ -315,6 +325,7 @@ proc parseHook[T: enum](s: string, i: var int, v: var T) =
315325

316326
proc parseHook[T](s: string, i: var int, v: var seq[T]) =
317327
try:
328+
log("trying to parse the sequence of " & $T)
318329
jsony.parseHook(s, i, v)
319330
except jsony.JsonError:
320331
logParser("Error parsing generic type " & $type(v) & " - using default", s)
@@ -568,6 +579,7 @@ proc parseHook(s: string, i: var int, g: var Guild) =
568579
g = new Guild
569580
g.id = data["id"].str # just in case
570581

582+
log "I am calling the Guild object"
571583
for v in data{"members"}.getElems:
572584
v["guild_id"] = %*g.id
573585
let member = v.`$`.fromJson Member
@@ -583,6 +595,7 @@ proc parseHook(s: string, i: var int, g: var Guild) =
583595
for v in val.getElems:
584596
let state = v.`$`.fromJson(VoiceState)
585597

598+
echo "peak a boo"
586599
g.members[state.user_id].voice_state = some state
587600
g.voice_states[state.user_id] = state
588601
of "threads":
@@ -607,6 +620,8 @@ proc parseHook(s: string, i: var int, g: var Guild) =
607620
else:
608621
discard
609622

623+
624+
610625
proc newMember*(data: JsonNode): Member =
611626
result = ($data).fromJson(Member)
612627

@@ -1027,14 +1042,14 @@ proc `&=`(a: var JsonNode, b: JsonNode) =
10271042
proc `%%*`*(comp: MessageComponent): JsonNode =
10281043
result = %*{"type": comp.kind.ord}
10291044

1030-
result.loadOpts(comp, spoiler, placeholder, disabled, id)
1045+
result.loadOpts(comp, spoiler, placeholder, disabled, id, label, description)
10311046
case comp.kind:
10321047
of mctNone: discard
10331048
of mctActionRow, mctContainer:
10341049
result["components"] = %comp.components.mapIt(%%*it)
10351050
result.loadOpts(comp, accent_color)
10361051
of mctButton:
1037-
result &= %*{"label": comp.label, "style": comp.style.ord}
1052+
result &= %*{"style": comp.style.ord}
10381053

10391054
result.loadOpts(comp, custom_id, url, sku_id)
10401055
if comp.emoji.isSome:
@@ -1056,7 +1071,6 @@ proc `%%*`*(comp: MessageComponent): JsonNode =
10561071
result.loadOpts(comp, value, required, min_length, max_length)
10571072
of mctThumbnail:
10581073
result &= %*{"media": %comp.media}
1059-
result.loadOpts(comp, description)
10601074
of mctSection:
10611075
result &= %*{"components": comp.sect_components.mapIt(%it),
10621076
"accessory": %%*comp.accessory}
@@ -1066,4 +1080,6 @@ proc `%%*`*(comp: MessageComponent): JsonNode =
10661080
"name": comp.name,
10671081
"size": comp.size}
10681082
of mctSeparator: result.loadOpts(comp, divider, spacing)
1069-
of mctTextDisplay: result["content"] = %comp.content
1083+
of mctTextDisplay: result["content"] = %comp.content
1084+
of mctLabel:
1085+
result &= %*{"component": %%*comp.component}

dimscord/objects/typedefs.nim

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,8 @@ type
156156
content*, timestamp*: string
157157
edited_timestamp*, guild_id*: Option[string]
158158
webhook_id*, application_id*: Option[string]
159-
nonce*: (Option[string], Option[int])
159+
nonce*: Option[string]
160+
# nonce*: (Option[string], Option[int])
160161
tts*, mention_everyone*, pinned*: bool
161162
kind*: MessageType
162163
flags*: set[MessageFlags]
@@ -926,24 +927,24 @@ type
926927
disabled*: Option[bool]
927928
placeholder*: Option[string]
928929
spoiler*: Option[bool]
930+
label*: Option[string]
929931
case kind*: MessageComponentType
930932
of mctNone: discard
931933
of mctActionRow, mctContainer:
932934
components*: seq[MessageComponent]
933935
accent_color*: Option[int] ## container only
934936
of mctButton: # Message Component
935937
style*: ButtonStyle
936-
label*: Option[string]
937938
emoji*: Option[Emoji]
938939
url*, sku_id*: Option[string]
939940
of mctSelectMenu, mctUserSelect, mctRoleSelect, mctMentionableSelect, mctChannelSelect:
940941
default_values*: seq[tuple[id, kind: string]]
941942
options*: seq[SelectMenuOption]
942-
channel_types*: seq[ChannelType] # !
943+
channel_types*: seq[ChannelType]
943944
min_values*, max_values*: Option[int]
944945
of mctTextInput:
945-
input_style*: Option[TextInputStyle] # also known as "style"
946-
input_label*, value*: Option[string] # also known as "label"
946+
input_style*: Option[TextInputStyle]
947+
input_label*, value*: Option[string]
947948
required*: Option[bool]
948949
min_length*, max_length*: Option[int]
949950
of mctThumbnail:
@@ -963,6 +964,8 @@ type
963964
spacing*: Option[int]
964965
of mctTextDisplay:
965966
content*: string
967+
of mctLabel:
968+
component*: MessageComponent
966969
GuildPreview* = object
967970
id*, name*: string
968971
system_channel_flags*: set[SystemChannelFlags]

0 commit comments

Comments
 (0)