Skip to content

Commit ecd83c5

Browse files
Fixed method Client.get_media_group (pyrogram#619)
* Fixed method * Added exception in case message_id is invalid Co-authored-by: Dan <[email protected]>
1 parent 429b871 commit ecd83c5

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

pyrogram/methods/messages/get_media_group.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,27 @@ async def get_media_group(
4646
List of :obj:`~pyrogram.types.Message`: On success, a list of messages of the media group is returned.
4747
4848
Raises:
49-
ValueError: In case the passed message id doesn't belong to a media group.
49+
ValueError:
50+
In case the passed message_id is negative or equal 0.
51+
In case target message doesn't belong to a media group.
5052
"""
53+
5154
# There can be maximum 10 items in a media group.
5255
messages = await self.get_messages(chat_id, [msg_id for msg_id in range(message_id - 9, message_id + 10)],
5356
replies=0)
5457

55-
media_group_id = messages[9].media_group_id
58+
if message_id <= 0:
59+
raise ValueError("Passed message_id is negative or equal to zero.")
60+
61+
messages = await self.get_messages(
62+
chat_id=chat_id,
63+
message_ids=[msg_id for msg_id in range(message_id - 9, message_id + 10)],
64+
replies=0
65+
)
66+
67+
# There can be maximum 10 items in a media group.
68+
# The if/else condition to fix the problem of getting correct `media_group_id` when it has `message_id` less then 10.
69+
media_group_id = messages[9].media_group_id if len(messages) == 19 else messages[message_id-1].media_group_id
5670

5771
if media_group_id is None:
5872
raise ValueError("The message doesn't belong to a media group")

0 commit comments

Comments
 (0)