Skip to content

Commit a19f06c

Browse files
authored
fix(gateway): fix sub-function logic for options in subcommands by type.
(f) fixed the logic of the sub-function for defining parameters for t…
2 parents c334794 + 7299577 commit a19f06c

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

interactions/api/gateway.py

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -245,27 +245,28 @@ def handle_dispatch(self, event: str, data: dict) -> None:
245245
:type data: dict
246246
"""
247247

248-
def check_sub_command(option) -> dict:
249-
_kwargs = dict()
250-
if option._json.get("options"):
251-
if option["type"] == OptionType.SUB_COMMAND_GROUP:
252-
_kwargs["sub_command_group"] = option["name"]
248+
def check_sub_command(option: dict) -> dict:
249+
kwargs = dict()
250+
if option["type"] == OptionType.SUB_COMMAND_GROUP:
251+
kwargs["sub_command_group"] = option["name"]
252+
if option.get("options"):
253253
for group_option in option["options"]:
254-
_kwargs["sub_command"] = group_option["name"]
254+
kwargs["sub_command"] = group_option["name"]
255255
if group_option.get("options"):
256256
for sub_option in group_option["options"]:
257-
_kwargs[sub_option["name"]] = sub_option["value"]
258-
elif option["type"] == OptionType.SUB_COMMAND:
259-
_kwargs["sub_command"] = option["name"]
257+
kwargs[sub_option["name"]] = sub_option["value"]
258+
elif option["type"] == OptionType.SUB_COMMAND:
259+
kwargs["sub_command"] = option["name"]
260+
if option.get("options"):
260261
for sub_option in option["options"]:
261-
_kwargs[sub_option["name"]] = sub_option["value"]
262+
kwargs[sub_option["name"]] = sub_option["value"]
262263
else:
263-
_kwargs[option.name] = option.value
264+
kwargs[option["name"]] = option["value"]
264265

265-
return _kwargs
266+
return kwargs
266267

267-
def check_sub_auto(option) -> tuple:
268-
if option._json.get("options"):
268+
def check_sub_auto(option: dict) -> tuple:
269+
if option.get("options"):
269270
if option["type"] == OptionType.SUB_COMMAND_GROUP:
270271
for group_option in option["options"]:
271272
if group_option.get("options"):
@@ -313,15 +314,21 @@ def check_sub_auto(option) -> tuple:
313314
if context.data._json.get("options"):
314315
if context.data.options:
315316
for option in context.data.options:
316-
_kwargs.update(check_sub_command(option))
317+
_kwargs.update(
318+
check_sub_command(
319+
option if isinstance(option, dict) else option._json
320+
)
321+
)
317322
elif data["type"] == InteractionType.MESSAGE_COMPONENT:
318323
_name = context.data.custom_id
319324
elif data["type"] == InteractionType.APPLICATION_COMMAND_AUTOCOMPLETE:
320325
_name = "autocomplete_"
321326
if context.data._json.get("options"):
322327
if context.data.options:
323328
for option in context.data.options:
324-
add_name, add_args = check_sub_auto(option)
329+
add_name, add_args = check_sub_auto(
330+
option if isinstance(option, dict) else option._json
331+
)
325332
if add_name:
326333
_name += add_name
327334
if add_args:

0 commit comments

Comments
 (0)