@@ -1285,7 +1285,7 @@ async def handle_reaction_events(self, payload):
1285
1285
if not thread .recipient .dm_channel :
1286
1286
await thread .recipient .create_dm ()
1287
1287
try :
1288
- linked_message = await thread .find_linked_message_from_dm (
1288
+ linked_messages = await thread .find_linked_message_from_dm (
1289
1289
message , either_direction = True
1290
1290
)
1291
1291
except ValueError as e :
@@ -1296,21 +1296,21 @@ async def handle_reaction_events(self, payload):
1296
1296
if not thread :
1297
1297
return
1298
1298
try :
1299
- _ , * linked_message = await thread .find_linked_messages (
1299
+ _ , linked_messages = await thread .find_linked_messages (
1300
1300
message .id , either_direction = True
1301
1301
)
1302
1302
except ValueError as e :
1303
1303
logger .warning ("Failed to find linked message for reactions: %s" , e )
1304
1304
return
1305
1305
1306
- if self .config ["transfer_reactions" ] and linked_message is not [None ]:
1306
+ if self .config ["transfer_reactions" ] and linked_messages is not [None ]:
1307
1307
if payload .event_type == "REACTION_ADD" :
1308
- for msg in linked_message :
1308
+ for msg in linked_messages :
1309
1309
await self .add_reaction (msg , reaction )
1310
1310
await self .add_reaction (message , reaction )
1311
1311
else :
1312
1312
try :
1313
- for msg in linked_message :
1313
+ for msg in linked_messages :
1314
1314
await msg .remove_reaction (reaction , self .user )
1315
1315
await message .remove_reaction (reaction , self .user )
1316
1316
except (discord .HTTPException , discord .InvalidArgument ) as e :
@@ -1444,14 +1444,22 @@ async def on_message_delete(self, message):
1444
1444
if not thread :
1445
1445
return
1446
1446
try :
1447
- message = await thread .find_linked_message_from_dm (message )
1447
+ linked_messages = await thread .find_linked_message_from_dm (message )
1448
1448
except ValueError as e :
1449
1449
if str (e ) != "Thread channel message not found." :
1450
1450
logger .debug ("Failed to find linked message to delete: %s" , e )
1451
1451
return
1452
- embed = message .embeds [0 ]
1453
- embed .set_footer (text = f"{ embed .footer .text } (deleted)" , icon_url = embed .footer .icon_url )
1454
- await message .edit (embed = embed )
1452
+ for msg in linked_messages :
1453
+ if isinstance (msg .channel , discord .TextChannel ):
1454
+ # just for thread channel, we don't actually delete the message
1455
+ # but just mark it as '(deleted)'
1456
+ embed = msg .embeds [0 ]
1457
+ embed .set_footer (
1458
+ text = f"{ embed .footer .text } (deleted)" , icon_url = embed .footer .icon_url
1459
+ )
1460
+ await msg .edit (embed = embed )
1461
+ else :
1462
+ await msg .delete ()
1455
1463
return
1456
1464
1457
1465
if message .author != self .user :
@@ -1461,15 +1469,6 @@ async def on_message_delete(self, message):
1461
1469
if not thread :
1462
1470
return
1463
1471
1464
- audit_logs = self .modmail_guild .audit_logs (
1465
- limit = 10 , action = discord .AuditLogAction .message_delete
1466
- )
1467
-
1468
- entry = await audit_logs .find (lambda a : a .target == self .user )
1469
-
1470
- if entry is None :
1471
- return
1472
-
1473
1472
try :
1474
1473
await thread .delete_message (message , note = False )
1475
1474
embed = discord .Embed (
0 commit comments