Skip to content

Commit 14026d0

Browse files
committed
feat: add polls to send functions
1 parent f408d48 commit 14026d0

File tree

5 files changed

+23
-0
lines changed

5 files changed

+23
-0
lines changed

interactions/client/mixins/send.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from interactions.models.discord.components import BaseComponent
1111
from interactions.models.discord.embed import Embed
1212
from interactions.models.discord.message import AllowedMentions, Message, MessageReference
13+
from interactions.models.discord.poll import Poll
1314
from interactions.models.discord.sticker import Sticker
1415
from interactions.models.discord.snowflake import Snowflake_Type
1516

@@ -49,6 +50,7 @@ async def send(
4950
delete_after: Optional[float] = None,
5051
nonce: Optional[str | int] = None,
5152
enforce_nonce: bool = False,
53+
poll: "Optional[Poll | dict]" = None,
5254
**kwargs: Any,
5355
) -> "Message":
5456
"""
@@ -73,6 +75,7 @@ async def send(
7375
enforce_nonce: If enabled and nonce is present, it will be checked for uniqueness in the past few minutes. \
7476
If another message was created by the same author with the same nonce, that message will be returned \
7577
and no new message will be created.
78+
poll: A poll.
7679
7780
Returns:
7881
New message object that was sent.
@@ -115,6 +118,7 @@ async def send(
115118
flags=flags,
116119
nonce=nonce,
117120
enforce_nonce=enforce_nonce,
121+
poll=poll,
118122
**kwargs,
119123
)
120124

interactions/ext/hybrid_commands/context.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
to_snowflake,
2323
Attachment,
2424
process_message_payload,
25+
Poll,
2526
)
2627
from interactions.client.mixins.send import SendMixin
2728
from interactions.client.errors import HTTPException
@@ -276,6 +277,7 @@ async def send(
276277
suppress_embeds: bool = False,
277278
silent: bool = False,
278279
flags: Optional[Union[int, "MessageFlags"]] = None,
280+
poll: "Optional[Poll | dict]" = None,
279281
delete_after: Optional[float] = None,
280282
ephemeral: bool = False,
281283
**kwargs: Any,
@@ -297,6 +299,7 @@ async def send(
297299
suppress_embeds: Should embeds be suppressed on this send
298300
silent: Should this message be sent without triggering a notification.
299301
flags: Message flags to apply.
302+
poll: A poll.
300303
delete_after: Delete message after this many seconds.
301304
ephemeral: Should this message be sent as ephemeral (hidden) - only works with interactions
302305
@@ -325,6 +328,7 @@ async def send(
325328
file=file,
326329
tts=tts,
327330
flags=flags,
331+
poll=poll,
328332
delete_after=delete_after,
329333
pass_self_into_delete=bool(self._slash_ctx),
330334
**kwargs,

interactions/models/discord/message.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from interactions.models.discord.embed import process_embeds
2929
from interactions.models.discord.emoji import process_emoji_req_format
3030
from interactions.models.discord.file import UPLOADABLE_TYPE
31+
from interactions.models.discord.poll import Poll
3132

3233
from .base import DiscordObject
3334
from .enums import (
@@ -929,6 +930,7 @@ def process_message_payload(
929930
flags: Optional[Union[int, MessageFlags]] = None,
930931
nonce: Optional[str | int] = None,
931932
enforce_nonce: bool = False,
933+
poll: Optional[Poll | dict] = None,
932934
**kwargs,
933935
) -> dict:
934936
"""
@@ -948,6 +950,7 @@ def process_message_payload(
948950
enforce_nonce: If enabled and nonce is present, it will be checked for uniqueness in the past few minutes. \
949951
If another message was created by the same author with the same nonce, that message will be returned \
950952
and no new message will be created.
953+
poll: A poll.
951954
952955
Returns:
953956
Dictionary
@@ -965,6 +968,9 @@ def process_message_payload(
965968
if attachments:
966969
attachments = [attachment.to_dict() for attachment in attachments]
967970

971+
if isinstance(poll, Poll):
972+
poll = poll.to_dict()
973+
968974
return dict_filter_none(
969975
{
970976
"content": content,
@@ -978,6 +984,7 @@ def process_message_payload(
978984
"flags": flags,
979985
"nonce": nonce,
980986
"enforce_nonce": enforce_nonce,
987+
"poll": poll,
981988
**kwargs,
982989
}
983990
)

interactions/models/discord/webhooks.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
Message,
2828
MessageReference,
2929
)
30+
from interactions.models.discord.poll import Poll
3031
from interactions.models.discord.sticker import Sticker
3132

3233
__all__ = ("WebhookTypes", "Webhook")
@@ -190,6 +191,7 @@ async def send(
190191
tts: bool = False,
191192
suppress_embeds: bool = False,
192193
flags: Optional[Union[int, "MessageFlags"]] = None,
194+
poll: "Optional[Poll | dict]" = None,
193195
username: str | None = None,
194196
avatar_url: str | None = None,
195197
wait: bool = False,
@@ -212,6 +214,7 @@ async def send(
212214
tts: Should this message use Text To Speech.
213215
suppress_embeds: Should embeds be suppressed on this send
214216
flags: Message flags to apply.
217+
poll: A poll.
215218
username: The username to use
216219
avatar_url: The url of an image to use as the avatar
217220
wait: Waits for confirmation of delivery. Set this to True if you intend to edit the message
@@ -241,6 +244,7 @@ async def send(
241244
reply_to=reply_to,
242245
tts=tts,
243246
flags=flags,
247+
poll=poll,
244248
username=username,
245249
avatar_url=avatar_url,
246250
**kwargs,

interactions/models/internal/context.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from interactions.client.const import get_logger, MISSING
1313
from interactions.models.discord.components import BaseComponent
1414
from interactions.models.discord.file import UPLOADABLE_TYPE
15+
from interactions.models.discord.poll import Poll
1516
from interactions.models.discord.sticker import Sticker
1617
from interactions.models.discord.user import Member, User
1718

@@ -528,6 +529,7 @@ async def send(
528529
suppress_embeds: bool = False,
529530
silent: bool = False,
530531
flags: typing.Optional[typing.Union[int, "MessageFlags"]] = None,
532+
poll: "typing.Optional[Poll | dict]" = None,
531533
delete_after: typing.Optional[float] = None,
532534
ephemeral: bool = False,
533535
**kwargs: typing.Any,
@@ -549,6 +551,7 @@ async def send(
549551
suppress_embeds: Should embeds be suppressed on this send
550552
silent: Should this message be sent without triggering a notification.
551553
flags: Message flags to apply.
554+
poll: A poll.
552555
delete_after: Delete message after this many seconds.
553556
ephemeral: Whether the response should be ephemeral
554557
@@ -577,6 +580,7 @@ async def send(
577580
file=file,
578581
tts=tts,
579582
flags=flags,
583+
poll=poll,
580584
delete_after=delete_after,
581585
pass_self_into_delete=True,
582586
**kwargs,

0 commit comments

Comments
 (0)