Skip to content

Commit f79ba1a

Browse files
authored
Fix BulkDeleteError showing incorrect values (#817)
* Fix BulkDeleteError showing incorrect values * Add changelog fragment * Add missing typehints
1 parent 1e90e82 commit f79ba1a

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

changes/817.bugfix.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Fix `BulkDeleteError` returning incorrect values for `messages_skipped`
2+
- This affected the `__str__` and `percentage_completion`, which also returned incorrect values

hikari/impl/rest.py

+7-5
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232

3333
import asyncio
3434
import base64
35-
import collections
3635
import contextlib
3736
import copy
3837
import datetime
@@ -1565,8 +1564,8 @@ async def delete_messages(
15651564
) -> None:
15661565
route = routes.POST_DELETE_CHANNEL_MESSAGES_BULK.compile(channel=channel)
15671566

1568-
pending: typing.Deque[snowflakes.SnowflakeishOr[messages_.PartialMessage]] = collections.deque()
1569-
deleted: typing.Deque[snowflakes.SnowflakeishOr[messages_.PartialMessage]] = collections.deque()
1567+
pending: typing.List[snowflakes.SnowflakeishOr[messages_.PartialMessage]] = []
1568+
deleted: typing.List[snowflakes.SnowflakeishOr[messages_.PartialMessage]] = []
15701569

15711570
if isinstance(messages, typing.Iterable): # Syntactic sugar. Allows to use iterables
15721571
pending.extend(messages)
@@ -1594,15 +1593,18 @@ async def delete_messages(
15941593
# I am just gonna invoke these sequentially instead.
15951594
try:
15961595
if len(pending) == 1:
1597-
message = pending.popleft()
1596+
message = pending[0]
15981597
await self.delete_message(channel, message)
15991598
deleted.append(message)
1599+
16001600
else:
16011601
body = data_binding.JSONObjectBuilder()
1602-
chunk = [pending.popleft() for _ in range(min(100, len(pending)))]
1602+
chunk = pending[:100]
16031603
body.put_snowflake_array("messages", chunk)
16041604
await self._request(route, json=body)
16051605
deleted += chunk
1606+
1607+
pending = pending[100:]
16061608
except Exception as ex:
16071609
raise errors.BulkDeleteError(deleted, pending) from ex
16081610

0 commit comments

Comments
 (0)