|
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