Browse Source
Allow deletion race conditions to work with purge
pull/10014/head
Michael H
10 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with
9 additions and
2 deletions
-
discord/abc.py
|
|
@ -49,7 +49,7 @@ from typing import ( |
|
|
|
from .object import OLDEST_OBJECT, Object |
|
|
|
from .context_managers import Typing |
|
|
|
from .enums import ChannelType, InviteTarget |
|
|
|
from .errors import ClientException |
|
|
|
from .errors import ClientException, NotFound |
|
|
|
from .mentions import AllowedMentions |
|
|
|
from .permissions import PermissionOverwrite, Permissions |
|
|
|
from .role import Role |
|
|
@ -122,7 +122,14 @@ _undefined: Any = _Undefined() |
|
|
|
|
|
|
|
async def _single_delete_strategy(messages: Iterable[Message], *, reason: Optional[str] = None): |
|
|
|
for m in messages: |
|
|
|
await m.delete() |
|
|
|
try: |
|
|
|
await m.delete() |
|
|
|
except NotFound as exc: |
|
|
|
if exc.code == 10008: |
|
|
|
continue # bulk deletion ignores not found messages, single deletion does not. |
|
|
|
# several other race conditions with deletion should fail without continuing, |
|
|
|
# such as the channel being deleted and not found. |
|
|
|
raise |
|
|
|
|
|
|
|
|
|
|
|
async def _purge_helper( |
|
|
|