@@ -242,6 +242,7 @@ proc logParser*(msg: string, s = "") =
242242
243243proc 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]) =
258259proc 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
316326proc 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+
610625proc newMember * (data: JsonNode ): Member =
611626 result = ($ data).fromJson (Member )
612627
@@ -1027,14 +1042,14 @@ proc `&=`(a: var JsonNode, b: JsonNode) =
10271042proc `%%*` * (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}
0 commit comments