|
22 | 22 | SOFTWARE. |
23 | 23 | ''' |
24 | 24 |
|
25 | | -__version__ = '1.5.0' |
| 25 | +__version__ = '1.5.1' |
26 | 26 |
|
27 | 27 | from contextlib import redirect_stdout |
28 | 28 | from urllib.parse import urlparse |
@@ -167,10 +167,24 @@ async def on_message_delete(self, message): |
167 | 167 | message_id = matches[0] |
168 | 168 |
|
169 | 169 | async for msg in channel.history(): |
170 | | - if msg.embeds: |
171 | | - if f'Moderator - {message_id}' == msg.embeds[0].footer.text: |
172 | | - await msg.delete() |
173 | | - break |
| 170 | + if msg.embeds and f'Moderator - {message_id}' in msg.embeds[0].footer.text: |
| 171 | + await msg.delete() |
| 172 | + break |
| 173 | + |
| 174 | + async def on_message_edit(self, before, after): |
| 175 | + if before.author.bot: |
| 176 | + return |
| 177 | + if isinstance(before.channel, discord.DMChannel): |
| 178 | + channel = await self.find_or_create_thread(before.author) |
| 179 | + async for msg in channel.history(): |
| 180 | + if msg.embeds: |
| 181 | + embed = msg.embeds[0] |
| 182 | + if f'User - {before.id}' in embed.footer.text: |
| 183 | + if ' - (Edited)' not in embed.footer.text: |
| 184 | + embed.set_footer(text=embed.footer.text + ' - (Edited)') |
| 185 | + embed.description = after.content |
| 186 | + await msg.edit(embed=embed) |
| 187 | + break |
174 | 188 |
|
175 | 189 | def overwrites(self, ctx, modrole=None): |
176 | 190 | '''Permision overwrites for the guild.''' |
@@ -694,7 +708,7 @@ async def send_mail(self, message, channel, from_mod, delete_message=True): |
694 | 708 | else: |
695 | 709 | em.color=discord.Color.gold() |
696 | 710 | em.set_author(name=str(author), icon_url=author.avatar_url) |
697 | | - em.set_footer(text='User') |
| 711 | + em.set_footer(text=f'User - {message.id}') |
698 | 712 |
|
699 | 713 | await channel.trigger_typing() |
700 | 714 | await channel.send(embed=em) |
@@ -752,11 +766,11 @@ async def process_modmail(self, message): |
752 | 766 | if str(message.author.id) in blocked: |
753 | 767 | await message.author.send(embed=self.blocked_em) |
754 | 768 | else: |
755 | | - channel = await self.create_thread(message.author) |
| 769 | + channel = await self.find_or_create_thread(message.author) |
756 | 770 | await self.send_mail(message, channel, from_mod=False) |
757 | 771 |
|
758 | 772 |
|
759 | | - async def create_thread(self, user, *, creator=None, reopen=False): |
| 773 | + async def find_or_create_thread(self, user, *, creator=None, reopen=False): |
760 | 774 |
|
761 | 775 | guild = self.guild |
762 | 776 | topic = f'User ID: {user.id}' |
@@ -784,9 +798,8 @@ async def create_thread(self, user, *, creator=None, reopen=False): |
784 | 798 |
|
785 | 799 |
|
786 | 800 | if channel is not None: |
787 | | - if channel.category is archives: |
788 | | - if creator: # thread appears to be closed |
789 | | - await user.send(embed=em) |
| 801 | + if channel.category is archives: # thread appears to be closed |
| 802 | + if creator: await user.send(embed=em) |
790 | 803 | await channel.edit(category=categ) |
791 | 804 | info_description = info_description or f'{user.mention} has reopened this thread.' |
792 | 805 | await channel.send(mention, embed=self.format_info(user, info_description)) |
@@ -841,7 +854,7 @@ async def contact(self, ctx, *, user: discord.Member=None): |
841 | 854 | return await ctx.send('This user does not share any servers with the bot and is thus unreachable.') |
842 | 855 |
|
843 | 856 | categ = discord.utils.get(ctx.guild.categories, id=ctx.channel.category_id) |
844 | | - channel = await self.create_thread(user, creator=ctx.author, reopen=reopen) |
| 857 | + channel = await self.find_or_create_thread(user, creator=ctx.author, reopen=reopen) |
845 | 858 |
|
846 | 859 | if channel is not ctx.channel: |
847 | 860 | em = discord.Embed(title='Thread reopened' if reopen else 'Created thread') |
|
0 commit comments