SendAlbumAsync now returns all the Message[] (#75)

This commit is contained in:
Wizou 2022-07-24 11:14:08 +02:00
parent 1299e27cab
commit 000c35b256
2 changed files with 10 additions and 8 deletions

View file

@ -228,13 +228,14 @@ namespace WTelegram
/// WTelegramClient proxy settings don't apply to HttpClient<br/>
/// * You may run into errors if you mix, in the same album, photos and file documents having no thumbnails/video attributes
/// </remarks>
public async Task<Message> SendAlbumAsync(InputPeer peer, InputMedia[] medias, string caption = null, int reply_to_msg_id = 0, MessageEntity[] entities = null, DateTime schedule_date = default)
public async Task<Message[]> 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

View file

@ -4084,7 +4084,7 @@ namespace TL
[TLDef(0xC4870A49)]
public class UpdateBotStopped : Update
{
/// <summary>The bot ID</summary>
/// <summary>The user ID</summary>
public long user_id;
/// <summary>When did this action occur</summary>
public DateTime date;