Improve message command support in client

This commit is contained in:
Zeva Rose 2022-04-19 17:17:48 -06:00
parent 3c23802ca0
commit dc01bb9d53

View file

@ -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.embed import EmbedField
from dis_snek.models.discord.enums import Permissions from dis_snek.models.discord.enums import Permissions
from dis_snek.models.discord.message import Message 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.task import Task
from dis_snek.models.snek.tasks.triggers import IntervalTrigger from dis_snek.models.snek.tasks.triggers import IntervalTrigger
from jarvis_core.db import q from jarvis_core.db import q
@ -125,11 +125,17 @@ class Jarvis(Snake):
arg_str = "" arg_str = ""
if isinstance(ctx, InteractionContext) and ctx.target_id: if isinstance(ctx, InteractionContext) and ctx.target_id:
ctx.kwargs["context target"] = ctx.target ctx.kwargs["context target"] = ctx.target
for k, v in ctx.kwargs.items(): if isinstance(ctx, InteractionContext):
arg_str += f" {k}: " for k, v in ctx.kwargs.items():
if isinstance(v, str) and len(v) > 100: arg_str += f" {k}: "
v = v[97] + "..." if isinstance(v, str) and len(v) > 100:
arg_str += f"{v}\n" 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_args = "\n".join(f" - {i}" for i in args) if args else " None"
callback_kwargs = ( callback_kwargs = (
"\n".join(f" {k}: {v}" for k, v in kwargs.items()) if kwargs else " None" "\n".join(f" {k}: {v}" for k, v in kwargs.items()) if kwargs else " None"
@ -173,12 +179,18 @@ class Jarvis(Snake):
args = [] args = []
if isinstance(ctx, InteractionContext) and ctx.target_id: if isinstance(ctx, InteractionContext) and ctx.target_id:
args.append(f"{KEY_FMT}context target:{VAL_FMT}{ctx.target}{RESET}") args.append(f"{KEY_FMT}context target:{VAL_FMT}{ctx.target}{RESET}")
for k, v in ctx.kwargs.items(): if isinstance(ctx, InteractionContext):
if isinstance(v, str): for k, v in ctx.kwargs.items():
v = v.replace("`", "\\`") if isinstance(v, str):
if len(v) > 100: v = v.replace("`", "\\`")
v = v[:97] + "..." if len(v) > 100:
args.append(f"{KEY_FMT}{k}:{VAL_FMT}{v}{RESET}") 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) args = " ".join(args)
fields = [ fields = [
EmbedField( EmbedField(