Added DownloadMessages and edit message support

This commit is contained in:
Brandon Smith
2015-08-14 22:25:57 -03:00
parent 424acfc0ed
commit 4d07a54a8f
4 changed files with 28 additions and 29 deletions

View File

@@ -48,8 +48,8 @@ namespace Discord.API
}
public static Task<APIResponses.DestroyChannel> DestroyChannel(string channelId, HttpOptions options)
=> Http.Delete<APIResponses.DestroyChannel>(Endpoints.Channel(channelId), options);
public static Task<APIResponses.GetMessages[]> GetMessages(string channelId, HttpOptions options)
=> Http.Get<APIResponses.GetMessages[]>(Endpoints.ChannelMessages(channelId, 50), options);
public static Task<APIResponses.GetMessages[]> GetMessages(string channelId, int count, HttpOptions options)
=> Http.Get<APIResponses.GetMessages[]>(Endpoints.ChannelMessages(channelId, count), options);
//Members
public static Task Kick(string serverId, string memberId, HttpOptions options)

View File

@@ -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

View File

@@ -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<Message[]> DownloadMessages(Channel channel, int count)
=> DownloadMessages(channel.Id, count);
public async Task<Message[]> 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)

View File

@@ -157,7 +157,6 @@ namespace Discord.Helpers
else
return null;
}
}
private static Stream GetDecoder(string contentEncoding, MemoryStream encodedStream)