From dc01bb9d53f2f84b8b03a1e2ae872c27985740bd Mon Sep 17 00:00:00 2001 From: Zevaryx Date: Tue, 19 Apr 2022 17:17:48 -0600 Subject: [PATCH] Improve message command support in client --- jarvis/client.py | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/jarvis/client.py b/jarvis/client.py index 0f9e956..5a5b343 100644 --- a/jarvis/client.py +++ b/jarvis/client.py @@ -19,7 +19,7 @@ from dis_snek.models.discord.channel import DMChannel from dis_snek.models.discord.embed import EmbedField from dis_snek.models.discord.enums import Permissions from dis_snek.models.discord.message import Message -from dis_snek.models.snek.context import Context, InteractionContext +from dis_snek.models.snek.context import Context, InteractionContext, MessageContext from dis_snek.models.snek.tasks.task import Task from dis_snek.models.snek.tasks.triggers import IntervalTrigger from jarvis_core.db import q @@ -125,11 +125,17 @@ class Jarvis(Snake): arg_str = "" if isinstance(ctx, InteractionContext) and ctx.target_id: ctx.kwargs["context target"] = ctx.target - for k, v in ctx.kwargs.items(): - arg_str += f" {k}: " - if isinstance(v, str) and len(v) > 100: - v = v[97] + "..." - arg_str += f"{v}\n" + if isinstance(ctx, InteractionContext): + for k, v in ctx.kwargs.items(): + arg_str += f" {k}: " + if isinstance(v, str) and len(v) > 100: + v = v[97] + "..." + arg_str += f"{v}\n" + elif isinstance(ctx, MessageContext): + for v in ctx.args.items(): + if isinstance(v, str) and len(v) > 100: + v = v[97] + "..." + arg_str += f" - {v}" callback_args = "\n".join(f" - {i}" for i in args) if args else " None" callback_kwargs = ( "\n".join(f" {k}: {v}" for k, v in kwargs.items()) if kwargs else " None" @@ -173,12 +179,18 @@ class Jarvis(Snake): args = [] if isinstance(ctx, InteractionContext) and ctx.target_id: args.append(f"{KEY_FMT}context target:{VAL_FMT}{ctx.target}{RESET}") - for k, v in ctx.kwargs.items(): - if isinstance(v, str): - v = v.replace("`", "\\`") - if len(v) > 100: - v = v[:97] + "..." - args.append(f"{KEY_FMT}{k}:{VAL_FMT}{v}{RESET}") + if isinstance(ctx, InteractionContext): + for k, v in ctx.kwargs.items(): + if isinstance(v, str): + v = v.replace("`", "\\`") + if len(v) > 100: + v = v[:97] + "..." + args.append(f"{KEY_FMT}{k}:{VAL_FMT}{v}{RESET}") + elif isinstance(ctx, MessageContext): + for v in ctx.args.items(): + if isinstance(v, str) and len(v) > 100: + v = v[97] + "..." + args.append(f"{VAL_FMT}{v}{RESET}") args = " ".join(args) fields = [ EmbedField(