@@ -281,16 +281,17 @@ def is_older_than_14d(message: Message) -> bool:
281281 two_weeks_old_snowflake = int ((time .time () - 14 * 24 * 60 * 60 ) * 1000.0 - 1420070400000 ) << 22
282282 return message .id < two_weeks_old_snowflake
283283
284- async def _delete_messages_individually (self , messages : list [Message ]) -> list [Message ]:
285- """Delete each message in the list unless cleaning is cancelled. Return the deleted messages."""
284+ async def _delete_messages_individually (self , channel_messages : dict [ TextChannel , list [Message ] ]) -> list [Message ]:
285+ """Delete each message unless cleaning is cancelled. Return the deleted messages."""
286286 deleted = []
287- for message in messages :
288- # Ensure that deletion was not canceled
289- if not self .cleaning :
290- return deleted
291- with contextlib .suppress (NotFound ): # Message doesn't exist or was already deleted
292- await message .delete ()
293- deleted .append (message )
287+ for messages in channel_messages .values ():
288+ for message in messages :
289+ # Ensure that deletion was not canceled
290+ if not self .cleaning :
291+ return deleted
292+ with contextlib .suppress (NotFound ): # Message doesn't exist or was already deleted
293+ await message .delete ()
294+ deleted .append (message )
294295 return deleted
295296
296297 async def _delete_found (self , message_mappings : dict [TextChannel , list [Message ]]) -> list [Message ]:
@@ -302,18 +303,18 @@ async def _delete_found(self, message_mappings: dict[TextChannel, list[Message]]
302303 If cleaning was cancelled in the middle, return messages already deleted.
303304 """
304305 deleted = []
306+ old_messages = {}
305307 for channel , messages in message_mappings .items ():
306308 to_delete = []
307309
308- delete_old = False
309- for current_index , message in enumerate (messages ): # noqa: B007
310+ for current_index , message in enumerate (messages ):
310311 if not self .cleaning :
311312 # Means that the cleaning was canceled
312313 return deleted
313314
314315 if self .is_older_than_14d (message ):
315316 # Further messages are too old to be deleted in bulk
316- delete_old = True
317+ old_messages [ channel ] = messages [ current_index :]
317318 break
318319
319320 to_delete .append (message )
@@ -332,11 +333,11 @@ async def _delete_found(self, message_mappings: dict[TextChannel, list[Message]]
332333 await channel .delete_messages (to_delete )
333334 deleted .extend (to_delete )
334335
336+ if old_messages :
335337 if not self .cleaning :
336338 return deleted
337- if delete_old :
338- old_deleted = await self ._delete_messages_individually (messages [current_index :])
339- deleted .extend (old_deleted )
339+ old_deleted = await self ._delete_messages_individually (old_messages )
340+ deleted .extend (old_deleted )
340341
341342 return deleted
342343
0 commit comments