Skip to content

Commit 6bfb00c

Browse files
feat: add reactions to all internal evaluations (#705)
1 parent af2bc55 commit 6bfb00c

1 file changed

Lines changed: 18 additions & 12 deletions

File tree

monty/exts/core/eval.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ def maybe_file(
196196
return filename, file
197197
return None
198198

199-
def get_component_for_segment(
199+
def _get_component_for_segment(
200200
self,
201201
*,
202202
content: str,
@@ -229,7 +229,7 @@ def get_component_for_segment(
229229
container.accent_color = display_colour
230230
return container.children, file
231231

232-
def add_segments(
232+
def _add_segments(
233233
self,
234234
response: Response,
235235
*,
@@ -251,17 +251,16 @@ def add_segments(
251251
def get_formatted_response(self, result: Result) -> Response:
252252
"""Formulate a response message based on the result."""
253253
response = Response()
254-
components: list[disnake.ui.Container] = []
255254
if result.raw_value is not None and result.raw_value.strip():
256-
component, file = self.get_component_for_segment(
255+
component, file = self._get_component_for_segment(
257256
content=result.raw_value,
258257
title="Result",
259258
language="ansi",
260259
display_colour=disnake.Colour.greyple(),
261260
)
262-
self.add_segments(response, components=component, files=file)
261+
self._add_segments(response, components=component, files=file)
263262
if result.errors:
264-
component, file = self.get_component_for_segment(
263+
component, file = self._get_component_for_segment(
265264
content="\n".join(
266265
"".join(
267266
traceback.format_exception(
@@ -276,24 +275,23 @@ def get_formatted_response(self, result: Result) -> Response:
276275
language="py",
277276
display_colour=constants.Colours.soft_red,
278277
)
279-
self.add_segments(response, components=component, files=file)
278+
self._add_segments(response, components=component, files=file)
280279

281280
if result.stdout:
282-
component, file = self.get_component_for_segment(
281+
component, file = self._get_component_for_segment(
283282
content=result.stdout, title="Stdout", language="ansi", display_colour=constants.Colours.blue
284283
)
285-
self.add_segments(response, components=component, files=file)
284+
self._add_segments(response, components=component, files=file)
286285

287286
if result._:
288-
component, file = self.get_component_for_segment(
287+
component, file = self._get_component_for_segment(
289288
content="\n".join(repr(item) for item in result._),
290289
title="Captured output",
291290
language="ansi",
292291
display_colour=constants.Colours.soft_orange,
293292
)
294-
self.add_segments(response, components=component, files=file)
293+
self._add_segments(response, components=component, files=file)
295294

296-
response.components.extend(components)
297295
return response
298296

299297
@commands.command(name="ieval", aliases=["iexec"], hidden=True)
@@ -334,6 +332,10 @@ async def ieval(self, ctx: commands.Context, *, body: str) -> None:
334332
result = self.make_pretty(result, rules)
335333
response = self.get_formatted_response(result)
336334

335+
await ctx.message.add_reaction("\u2705" if not result.errors else "\u2757")
336+
if not response.components and not response.files:
337+
return
338+
337339
if ctx.guild is not None and ctx.channel.permissions_for(ctx.guild.me).manage_messages:
338340
delete_contexts = (ctx.message, None)
339341
else:
@@ -403,6 +405,10 @@ async def repl(self, ctx: commands.Context) -> None:
403405
if result.raw_value == last_result:
404406
result.raw_value = None
405407
response = self.get_formatted_response(result)
408+
await msg.add_reaction("\u2705" if not result.errors else "\u2757")
409+
if not response.components and not response.files:
410+
continue
411+
406412
response.components += [
407413
disnake.ui.ActionRow(
408414
*[

0 commit comments

Comments
 (0)