Added DownloadMessages and edit message support
This commit is contained in:
@@ -48,8 +48,8 @@ namespace Discord.API
|
|||||||
}
|
}
|
||||||
public static Task<APIResponses.DestroyChannel> DestroyChannel(string channelId, HttpOptions options)
|
public static Task<APIResponses.DestroyChannel> DestroyChannel(string channelId, HttpOptions options)
|
||||||
=> Http.Delete<APIResponses.DestroyChannel>(Endpoints.Channel(channelId), options);
|
=> Http.Delete<APIResponses.DestroyChannel>(Endpoints.Channel(channelId), options);
|
||||||
public static Task<APIResponses.GetMessages[]> GetMessages(string channelId, HttpOptions options)
|
public static Task<APIResponses.GetMessages[]> GetMessages(string channelId, int count, HttpOptions options)
|
||||||
=> Http.Get<APIResponses.GetMessages[]>(Endpoints.ChannelMessages(channelId, 50), options);
|
=> Http.Get<APIResponses.GetMessages[]>(Endpoints.ChannelMessages(channelId, count), options);
|
||||||
|
|
||||||
//Members
|
//Members
|
||||||
public static Task Kick(string serverId, string memberId, HttpOptions options)
|
public static Task Kick(string serverId, string memberId, HttpOptions options)
|
||||||
|
|||||||
@@ -118,11 +118,7 @@ namespace Discord.API.Models
|
|||||||
|
|
||||||
//Chat
|
//Chat
|
||||||
public sealed class MessageCreate : Message { }
|
public sealed class MessageCreate : Message { }
|
||||||
public sealed class MessageUpdate : MessageReference
|
public sealed class MessageUpdate : Message { }
|
||||||
{
|
|
||||||
[JsonProperty(PropertyName = "embeds")]
|
|
||||||
public object[] Embeds;
|
|
||||||
}
|
|
||||||
public sealed class MessageDelete : MessageReference { }
|
public sealed class MessageDelete : MessageReference { }
|
||||||
public sealed class MessageAck : MessageReference { }
|
public sealed class MessageAck : MessageReference { }
|
||||||
public sealed class TypingStart
|
public sealed class TypingStart
|
||||||
|
|||||||
@@ -69,23 +69,7 @@ namespace Discord
|
|||||||
foreach (var role in extendedModel.Roles)
|
foreach (var role in extendedModel.Roles)
|
||||||
_roles.Update(role.Id, model.Id, role);
|
_roles.Update(role.Id, model.Id, role);
|
||||||
foreach (var channel in extendedModel.Channels)
|
foreach (var channel in extendedModel.Channels)
|
||||||
{
|
|
||||||
_channels.Update(channel.Id, model.Id, channel);
|
_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)
|
foreach (var membership in extendedModel.Members)
|
||||||
{
|
{
|
||||||
_users.Update(membership.User.Id, membership.User);
|
_users.Update(membership.User.Id, membership.User);
|
||||||
@@ -126,11 +110,6 @@ namespace Discord
|
|||||||
message.Timestamp = extendedModel.Timestamp;
|
message.Timestamp = extendedModel.Timestamp;
|
||||||
message.Text = extendedModel.Content;
|
message.Text = extendedModel.Content;
|
||||||
}
|
}
|
||||||
if (model is WebSocketEvents.MessageUpdate)
|
|
||||||
{
|
|
||||||
var extendedModel = model as WebSocketEvents.MessageUpdate;
|
|
||||||
message.Embeds = extendedModel.Embeds;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
message => { }
|
message => { }
|
||||||
);
|
);
|
||||||
@@ -474,6 +453,31 @@ namespace Discord
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Message GetMessage(string id) => _messages[id];
|
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
|
//Auth
|
||||||
public async Task Connect(string email, string password)
|
public async Task Connect(string email, string password)
|
||||||
|
|||||||
@@ -157,7 +157,6 @@ namespace Discord.Helpers
|
|||||||
else
|
else
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Stream GetDecoder(string contentEncoding, MemoryStream encodedStream)
|
private static Stream GetDecoder(string contentEncoding, MemoryStream encodedStream)
|
||||||
|
|||||||
Reference in New Issue
Block a user