diff --git a/Discord.Net/API/DiscordAPI.cs b/Discord.Net/API/DiscordAPI.cs index 6b14c5225..dc3fa480d 100644 --- a/Discord.Net/API/DiscordAPI.cs +++ b/Discord.Net/API/DiscordAPI.cs @@ -48,8 +48,8 @@ namespace Discord.API } public static Task DestroyChannel(string channelId, HttpOptions options) => Http.Delete(Endpoints.Channel(channelId), options); - public static Task GetMessages(string channelId, HttpOptions options) - => Http.Get(Endpoints.ChannelMessages(channelId, 50), options); + public static Task GetMessages(string channelId, int count, HttpOptions options) + => Http.Get(Endpoints.ChannelMessages(channelId, count), options); //Members public static Task Kick(string serverId, string memberId, HttpOptions options) diff --git a/Discord.Net/API/Models/WebSocketEvents.cs b/Discord.Net/API/Models/WebSocketEvents.cs index bb49e6fb8..7ddab3070 100644 --- a/Discord.Net/API/Models/WebSocketEvents.cs +++ b/Discord.Net/API/Models/WebSocketEvents.cs @@ -118,11 +118,7 @@ namespace Discord.API.Models //Chat public sealed class MessageCreate : Message { } - public sealed class MessageUpdate : MessageReference - { - [JsonProperty(PropertyName = "embeds")] - public object[] Embeds; - } + public sealed class MessageUpdate : Message { } public sealed class MessageDelete : MessageReference { } public sealed class MessageAck : MessageReference { } public sealed class TypingStart diff --git a/Discord.Net/DiscordClient.cs b/Discord.Net/DiscordClient.cs index dcff97205..16a3040b9 100644 --- a/Discord.Net/DiscordClient.cs +++ b/Discord.Net/DiscordClient.cs @@ -69,23 +69,7 @@ namespace Discord foreach (var role in extendedModel.Roles) _roles.Update(role.Id, model.Id, role); foreach (var channel in extendedModel.Channels) - { _channels.Update(channel.Id, model.Id, channel); - /*if (channel.Type == ChannelTypes.Text) - { - try - { - var messages = DiscordAPI.GetMessages(channel.Id, _httpOptions).Result.OrderBy(x => x.Timestamp); - foreach (var message in messages) - { - var msg = _messages.Update(message.Id, message.ChannelId, message); - if (msg.User != null) - msg.User.UpdateActivity(message.Timestamp); - } - } - catch { } //Bad Permissions? - }*/ - } foreach (var membership in extendedModel.Members) { _users.Update(membership.User.Id, membership.User); @@ -126,11 +110,6 @@ namespace Discord message.Timestamp = extendedModel.Timestamp; message.Text = extendedModel.Content; } - if (model is WebSocketEvents.MessageUpdate) - { - var extendedModel = model as WebSocketEvents.MessageUpdate; - message.Embeds = extendedModel.Embeds; - } }, message => { } ); @@ -474,6 +453,31 @@ namespace Discord } public Message GetMessage(string id) => _messages[id]; + public Task DownloadMessages(Channel channel, int count) + => DownloadMessages(channel.Id, count); + public async Task DownloadMessages(string channelId, int count) + { + Channel channel = GetChannel(channelId); + if (channel != null && channel.Type == ChannelTypes.Text) + { + try + { + var msgs = await DiscordAPI.GetMessages(channel.Id, count, _httpOptions); + return msgs.OrderBy(x => x.Timestamp) + .Select(x => + { + var msg = _messages.Update(x.Id, x.ChannelId, x); + var user = msg.User; + if (user != null) + user.UpdateActivity(x.Timestamp); + return msg; + }) + .ToArray(); + } + catch { } //Bad Permissions? + } + return null; + } //Auth public async Task Connect(string email, string password) diff --git a/Discord.Net/Helpers/Http.cs b/Discord.Net/Helpers/Http.cs index af24fb432..b08e01777 100644 --- a/Discord.Net/Helpers/Http.cs +++ b/Discord.Net/Helpers/Http.cs @@ -157,7 +157,6 @@ namespace Discord.Helpers else return null; } - } private static Stream GetDecoder(string contentEncoding, MemoryStream encodedStream)