diff options
| author | Rapptz <[email protected]> | 2017-01-29 20:31:54 -0500 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2017-01-29 20:32:24 -0500 |
| commit | b27fab09eb411dfdb51c3c43a81d51a4f5710adf (patch) | |
| tree | a7e6962f9f8740c57c61b7e58e0cbd5ee54ac54c | |
| parent | Add missing int casts in many different events in the state. (diff) | |
| download | discord.py-b27fab09eb411dfdb51c3c43a81d51a4f5710adf.tar.xz discord.py-b27fab09eb411dfdb51c3c43a81d51a4f5710adf.zip | |
Allow removing an embed in Message.edit
| -rw-r--r-- | discord/http.py | 12 | ||||
| -rw-r--r-- | discord/message.py | 25 |
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 |