diff --git a/src/Client.Helpers.cs b/src/Client.Helpers.cs
index 2cca82b..cf57217 100644
--- a/src/Client.Helpers.cs
+++ b/src/Client.Helpers.cs
@@ -228,13 +228,14 @@ namespace WTelegram
/// WTelegramClient proxy settings don't apply to HttpClient
/// * You may run into errors if you mix, in the same album, photos and file documents having no thumbnails/video attributes
///
- public async Task SendAlbumAsync(InputPeer peer, InputMedia[] medias, string caption = null, int reply_to_msg_id = 0, MessageEntity[] entities = null, DateTime schedule_date = default)
+ public async Task SendAlbumAsync(InputPeer peer, InputMedia[] medias, string caption = null, int reply_to_msg_id = 0, MessageEntity[] entities = null, DateTime schedule_date = default)
{
System.Net.Http.HttpClient httpClient = null;
var multiMedia = new InputSingleMedia[medias.Length];
+ var random_id = Helpers.RandomLong();
for (int i = 0; i < medias.Length; i++)
{
- var ism = multiMedia[i] = new InputSingleMedia { random_id = Helpers.RandomLong(), media = medias[i] };
+ var ism = multiMedia[i] = new InputSingleMedia { random_id = random_id + i, media = medias[i] };
retry:
switch (ism.media)
{
@@ -282,17 +283,18 @@ namespace WTelegram
var updates = await this.Messages_SendMultiMedia(peer, multiMedia, reply_to_msg_id: reply_to_msg_id, schedule_date: schedule_date);
OnUpdate(updates);
- int msgId = -1;
+ var msgIds = new int[medias.Length];
+ var result = new Message[medias.Length];
foreach (var update in updates.UpdateList)
{
switch (update)
{
- case UpdateMessageID updMsgId when updMsgId.random_id == lastMedia.random_id: msgId = updMsgId.id; break;
- case UpdateNewMessage { message: Message message } when message.id == msgId: return message;
- case UpdateNewScheduledMessage { message: Message schedMsg } when schedMsg.id == msgId: return schedMsg;
+ case UpdateMessageID updMsgId: msgIds[updMsgId.random_id - random_id] = updMsgId.id; break;
+ case UpdateNewMessage { message: Message message }: result[Array.IndexOf(msgIds, message.id)] = message; break;
+ case UpdateNewScheduledMessage { message: Message schedMsg }: result[Array.IndexOf(msgIds, schedMsg.id)] = schedMsg; break;
}
}
- return null;
+ return result;
}
private Peer InputToPeer(InputPeer peer) => peer switch
diff --git a/src/TL.Schema.cs b/src/TL.Schema.cs
index 1417301..cb70955 100644
--- a/src/TL.Schema.cs
+++ b/src/TL.Schema.cs
@@ -4084,7 +4084,7 @@ namespace TL
[TLDef(0xC4870A49)]
public class UpdateBotStopped : Update
{
- /// The bot ID
+ /// The user ID
public long user_id;
/// When did this action occur
public DateTime date;