Skip to content

Commit b35e301

Browse files
authored
Merge pull request #10 from EnderModuBot/feat/add-to-send_message-edit-message-bool-end
feat: return sent Message from send_message and apply guard clause style
2 parents 1069417 + ae09dec commit b35e301

2 files changed

Lines changed: 46 additions & 37 deletions

File tree

ModuBotDiscord/commands/__init__.py

Lines changed: 42 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import logging
33
import warnings
44
from abc import ABC, abstractmethod
5-
from typing import Awaitable, Callable, List, Optional, TypeVar, Union
5+
from typing import Awaitable, Callable, Dict, List, Optional, Sequence, TypeVar, Union
66

77
import discord
88
from discord import Embed, Interaction
@@ -33,7 +33,11 @@ async def send_message(
3333
silent: bool = False,
3434
delete_after: Optional[float] = None,
3535
poll: Union[discord.Poll, _MissingSentinel] = MISSING,
36-
) -> None:
36+
) -> Optional[
37+
Union[
38+
discord.interactions.InteractionMessage, discord.webhook.async_.WebhookMessage
39+
]
40+
]:
3741
if msg is not None:
3842
warnings.warn(
3943
"`msg` is deprecated, use `content` instead",
@@ -44,41 +48,43 @@ async def send_message(
4448
if content is None:
4549
content = msg
4650

47-
if not interaction.is_expired():
48-
if not interaction.response.is_done():
49-
await interaction.response.send_message(
50-
content=content,
51-
embed=embed,
52-
embeds=embeds,
53-
file=file,
54-
files=files,
55-
view=view,
56-
tts=tts,
57-
ephemeral=ephemeral,
58-
allowed_mentions=allowed_mentions,
59-
suppress_embeds=suppress_embeds,
60-
silent=silent,
61-
delete_after=delete_after,
62-
poll=poll,
63-
)
64-
else:
65-
await interaction.followup.send(
66-
content=content,
67-
embed=embed,
68-
embeds=embeds,
69-
file=file,
70-
files=files,
71-
view=view,
72-
tts=tts,
73-
ephemeral=ephemeral,
74-
allowed_mentions=allowed_mentions,
75-
suppress_embeds=suppress_embeds,
76-
silent=silent,
77-
delete_after=delete_after,
78-
poll=poll,
79-
)
80-
else:
51+
if interaction.is_expired():
8152
logger.warning("Interaction is expired. Skipping send_message().")
53+
return None
54+
55+
if interaction.response.is_done():
56+
return await interaction.followup.send(
57+
content=content,
58+
embed=embed,
59+
embeds=embeds,
60+
file=file,
61+
files=files,
62+
view=view,
63+
tts=tts,
64+
ephemeral=ephemeral,
65+
allowed_mentions=allowed_mentions,
66+
suppress_embeds=suppress_embeds,
67+
silent=silent,
68+
poll=poll,
69+
)
70+
71+
await interaction.response.send_message(
72+
content=content,
73+
embed=embed,
74+
embeds=embeds,
75+
file=file,
76+
files=files,
77+
view=view,
78+
tts=tts,
79+
ephemeral=ephemeral,
80+
allowed_mentions=allowed_mentions,
81+
suppress_embeds=suppress_embeds,
82+
silent=silent,
83+
delete_after=delete_after,
84+
poll=poll,
85+
)
86+
87+
return await interaction.original_response()
8288

8389

8490
async def send_error(

pyproject.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "ModuBotDiscord"
3-
version = "0.3.2"
3+
version = "0.4.0"
44
description = "Modular Discord bot framework built on top of ModuBotCore"
55
authors = [{ name = "Endkind", email = "endkind.ender@endkind.net" }]
66
readme = "README.md"
@@ -16,3 +16,6 @@ include = ["ModuBotDiscord*"]
1616

1717
[project.urls]
1818
"Source" = "https://github.com/EnderModuBot/discord"
19+
20+
[tool.isort]
21+
profile = "black"

0 commit comments

Comments
 (0)