Browse Source

Added DownloadMessages and edit message support

tags/docs-0.9
Brandon Smith 9 years ago
parent
commit
4d07a54a8f
4 changed files with 28 additions and 29 deletions
  1. +2
    -2
      Discord.Net/API/DiscordAPI.cs
  2. +1
    -5
      Discord.Net/API/Models/WebSocketEvents.cs
  3. +25
    -21
      Discord.Net/DiscordClient.cs
  4. +0
    -1
      Discord.Net/Helpers/Http.cs

+ 2
- 2
Discord.Net/API/DiscordAPI.cs 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)


+ 1
- 5
Discord.Net/API/Models/WebSocketEvents.cs 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


+ 25
- 21
Discord.Net/DiscordClient.cs 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)


+ 0
- 1
Discord.Net/Helpers/Http.cs View File

@@ -157,7 +157,6 @@ namespace Discord.Helpers
else
return null;
}

}

private static Stream GetDecoder(string contentEncoding, MemoryStream encodedStream)


Loading…
Cancel
Save