aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2017-01-29 20:31:54 -0500
committerRapptz <[email protected]>2017-01-29 20:32:24 -0500
commitb27fab09eb411dfdb51c3c43a81d51a4f5710adf (patch)
treea7e6962f9f8740c57c61b7e58e0cbd5ee54ac54c
parentAdd missing int casts in many different events in the state. (diff)
downloaddiscord.py-b27fab09eb411dfdb51c3c43a81d51a4f5710adf.tar.xz
discord.py-b27fab09eb411dfdb51c3c43a81d51a4f5710adf.zip
Allow removing an embed in Message.edit
-rw-r--r--discord/http.py12
-rw-r--r--discord/message.py25
2 files changed, 22 insertions, 15 deletions
diff --git a/discord/http.py b/discord/http.py
index 2750a792..e660f6cb 100644
--- a/discord/http.py
+++ b/discord/http.py
@@ -318,18 +318,10 @@ class HTTPClient:
return self.request(r, json=payload)
- def edit_message(self, message_id, channel_id, content, *, embed=None):
+ def edit_message(self, message_id, channel_id, **fields):
r = Route('PATCH', '/channels/{channel_id}/messages/{message_id}', channel_id=channel_id,
message_id=message_id)
- payload = {}
-
- if content:
- payload['content'] = content
-
- if embed:
- payload['embed'] = embed
-
- return self.request(r, json=payload)
+ return self.request(r, json=fields)
def add_reaction(self, message_id, channel_id, emoji):
r = Route('PUT', '/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/@me',
diff --git a/discord/message.py b/discord/message.py
index acf4da2c..d4367f23 100644
--- a/discord/message.py
+++ b/discord/message.py
@@ -416,7 +416,7 @@ class Message:
yield from self._state.http.delete_message(self.channel.id, self.id)
@asyncio.coroutine
- def edit(self, *, content: str = None, embed: Embed = None):
+ def edit(self, **fields):
"""|coro|
Edits the message.
@@ -427,8 +427,9 @@ class Message:
-----------
content: str
The new content to replace the message with.
- embed: :class:`Embed`
+ embed: Optional[:class:`Embed`]
The new embed to replace the original with.
+ Could be ``None`` to remove the embed.
Raises
-------
@@ -436,9 +437,23 @@ class Message:
Editing the message failed.
"""
- content = str(content) if content else None
- embed = embed.to_dict() if embed else None
- data = yield from self._state.http.edit_message(self.id, self.channel.id, content, embed=embed)
+ try:
+ content = fields['content']
+ except KeyError:
+ pass
+ else:
+ if content is not None:
+ fields['content'] = str(content)
+
+ try:
+ embed = fields['embed']
+ except KeyError:
+ pass
+ else:
+ if embed is not None:
+ fields['embed'] = embed.to_dict()
+
+ data = yield from self._state.http.edit_message(self.id, self.channel.id, **fields)
self._update(channel=self.channel, data=data)
@asyncio.coroutine