Browse Source

Removed System.Net.Http dependency

tags/docs-0.9
RogueException 9 years ago
parent
commit
4d2f1e1bae
8 changed files with 53 additions and 65 deletions
  1. +5
    -1
      src/Discord.Net/DiscordClient.Voice.cs
  2. +2
    -2
      src/Discord.Net/DiscordClient.cs
  3. +8
    -9
      src/Discord.Net/DiscordWSClient.cs
  4. +3
    -4
      src/Discord.Net/Net/Rest/IRestEngine.cs
  5. +3
    -4
      src/Discord.Net/Net/Rest/RestClient.Events.cs
  6. +28
    -34
      src/Discord.Net/Net/Rest/RestClient.cs
  7. +4
    -5
      src/Discord.Net/Net/Rest/SharpRestEngine.cs
  8. +0
    -6
      src/Discord.Net/project.json

+ 5
- 1
src/Discord.Net/DiscordClient.Voice.cs View File

@@ -40,7 +40,11 @@ namespace Discord
config.VoiceClientId = unchecked(++_nextVoiceClientId); config.VoiceClientId = unchecked(++_nextVoiceClientId);
return new DiscordWSClient(config, server.Id); return new DiscordWSClient(config, server.Id);
}); });
client.LogMessage += (s, e) => RaiseOnLog(e.Severity, e.Source, $"(#{client.Config.VoiceClientId}) {e.Message}", e.Exception);
client.LogMessage += (s, e) =>
{
if (e.Source != LogMessageSource.DataWebSocket)
RaiseOnLog(e.Severity, e.Source, $"(#{client.Config.VoiceClientId}) {e.Message}", e.Exception);
};
await client.Connect(_gateway, _token).ConfigureAwait(false); await client.Connect(_gateway, _token).ConfigureAwait(false);
return client; return client;
} }


+ 2
- 2
src/Discord.Net/DiscordClient.cs View File

@@ -132,9 +132,9 @@ namespace Discord
_api.RestClient.OnRequest += (s, e) => _api.RestClient.OnRequest += (s, e) =>
{ {
if (e.Payload != null) if (e.Payload != null)
RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Rest, $"{e.Method.Method} {e.Path}: {Math.Round(e.ElapsedMilliseconds, 2)} ms ({e.Payload})");
RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Rest, $"{e.Method} {e.Path}: {Math.Round(e.ElapsedMilliseconds, 2)} ms ({e.Payload})");
else else
RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Rest, $"{e.Method.Method} {e.Path}: {Math.Round(e.ElapsedMilliseconds, 2)} ms");
RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Rest, $"{e.Method} {e.Path}: {Math.Round(e.ElapsedMilliseconds, 2)} ms");
}; };
} }
if (_config.LogLevel >= LogMessageSeverity.Debug) if (_config.LogLevel >= LogMessageSeverity.Debug)


+ 8
- 9
src/Discord.Net/DiscordWSClient.cs View File

@@ -79,15 +79,12 @@ namespace Discord
if (e.WasUnexpected) if (e.WasUnexpected)
await socket.Reconnect(_token).ConfigureAwait(false); await socket.Reconnect(_token).ConfigureAwait(false);
}; };

if (!_config.VoiceOnly)
socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.DataWebSocket, e.Message, e.Exception);
if (_config.LogLevel >= LogMessageSeverity.Info)
{ {
socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.DataWebSocket, e.Message, e.Exception);
if (_config.LogLevel >= LogMessageSeverity.Info)
{
socket.Connected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.DataWebSocket, "Connected");
socket.Disconnected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.DataWebSocket, "Disconnected");
}
socket.Connected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.DataWebSocket, "Connected");
socket.Disconnected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.DataWebSocket, "Disconnected");
} }


socket.ReceivedEvent += async (s, e) => await OnReceivedEvent(e).ConfigureAwait(false); socket.ReceivedEvent += async (s, e) => await OnReceivedEvent(e).ConfigureAwait(false);
@@ -96,7 +93,6 @@ namespace Discord
internal virtual VoiceWebSocket CreateVoiceSocket() internal virtual VoiceWebSocket CreateVoiceSocket()
{ {
var socket = new VoiceWebSocket(this); var socket = new VoiceWebSocket(this);
socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.VoiceWebSocket, e.Message, e.Exception);
socket.Connected += (s, e) => RaiseVoiceConnected(); socket.Connected += (s, e) => RaiseVoiceConnected();
socket.Disconnected += async (s, e) => socket.Disconnected += async (s, e) =>
{ {
@@ -104,11 +100,14 @@ namespace Discord
if (e.WasUnexpected) if (e.WasUnexpected)
await socket.Reconnect().ConfigureAwait(false); await socket.Reconnect().ConfigureAwait(false);
}; };

socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.VoiceWebSocket, e.Message, e.Exception);
if (_config.LogLevel >= LogMessageSeverity.Info) if (_config.LogLevel >= LogMessageSeverity.Info)
{ {
socket.Connected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.VoiceWebSocket, "Connected"); socket.Connected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.VoiceWebSocket, "Connected");
socket.Disconnected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.VoiceWebSocket, "Disconnected"); socket.Disconnected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.VoiceWebSocket, "Disconnected");
} }

return socket; return socket;
} }




+ 3
- 4
src/Discord.Net/Net/Rest/IRestEngine.cs View File

@@ -1,5 +1,4 @@
using System.Net.Http;
using System.Threading;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;


namespace Discord.Net.Rest namespace Discord.Net.Rest
@@ -7,7 +6,7 @@ namespace Discord.Net.Rest
internal interface IRestEngine internal interface IRestEngine
{ {
void SetToken(string token); void SetToken(string token);
Task<string> Send(HttpMethod method, string path, string json, CancellationToken cancelToken);
Task<string> SendFile(HttpMethod method, string path, string filePath, CancellationToken cancelToken);
Task<string> Send(string method, string path, string json, CancellationToken cancelToken);
Task<string> SendFile(string method, string path, string filePath, CancellationToken cancelToken);
} }
} }

+ 3
- 4
src/Discord.Net/Net/Rest/RestClient.Events.cs View File

@@ -1,5 +1,4 @@
using System; using System;
using System.Net.Http;


namespace Discord.Net.Rest namespace Discord.Net.Rest
{ {
@@ -7,11 +6,11 @@ namespace Discord.Net.Rest
{ {
public class RequestEventArgs : EventArgs public class RequestEventArgs : EventArgs
{ {
public HttpMethod Method { get; }
public string Method { get; }
public string Path { get; } public string Path { get; }
public string Payload { get; } public string Payload { get; }
public double ElapsedMilliseconds { get; } public double ElapsedMilliseconds { get; }
public RequestEventArgs(HttpMethod method, string path, string payload, double milliseconds)
public RequestEventArgs(string method, string path, string payload, double milliseconds)
{ {
Method = method; Method = method;
Path = path; Path = path;
@@ -21,7 +20,7 @@ namespace Discord.Net.Rest
} }


public event EventHandler<RequestEventArgs> OnRequest; public event EventHandler<RequestEventArgs> OnRequest;
private void RaiseOnRequest(HttpMethod method, string path, string payload, double milliseconds)
private void RaiseOnRequest(string method, string path, string payload, double milliseconds)
{ {
if (OnRequest != null) if (OnRequest != null)
OnRequest(this, new RequestEventArgs(method, path, payload, milliseconds)); OnRequest(this, new RequestEventArgs(method, path, payload, milliseconds));


+ 28
- 34
src/Discord.Net/Net/Rest/RestClient.cs View File

@@ -2,7 +2,6 @@
using Newtonsoft.Json; using Newtonsoft.Json;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Net.Http;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;


@@ -27,69 +26,64 @@ namespace Discord.Net.Rest
public void SetToken(string token) => _engine.SetToken(token); public void SetToken(string token) => _engine.SetToken(token);


//DELETE //DELETE
private static readonly HttpMethod _delete = HttpMethod.Delete;
internal Task<ResponseT> Delete<ResponseT>(string path, object data) where ResponseT : class internal Task<ResponseT> Delete<ResponseT>(string path, object data) where ResponseT : class
=> Send<ResponseT>(_delete, path, data);
=> Send<ResponseT>("DELETE", path, data);
internal Task<ResponseT> Delete<ResponseT>(string path) where ResponseT : class internal Task<ResponseT> Delete<ResponseT>(string path) where ResponseT : class
=> Send<ResponseT>(_delete, path);
=> Send<ResponseT>("DELETE", path);
internal Task Delete(string path, object data) internal Task Delete(string path, object data)
=> Send(_delete, path, data);
=> Send("DELETE", path, data);
internal Task Delete(string path) internal Task Delete(string path)
=> Send(_delete, path);
=> Send("DELETE", path);


//GET //GET
private static readonly HttpMethod _get = HttpMethod.Get;
internal Task<ResponseT> Get<ResponseT>(string path) where ResponseT : class internal Task<ResponseT> Get<ResponseT>(string path) where ResponseT : class
=> Send<ResponseT>(_get, path);
=> Send<ResponseT>("GET", path);
internal Task Get(string path) internal Task Get(string path)
=> Send(_get, path);
=> Send("GET", path);


//PATCH //PATCH
private static readonly HttpMethod _patch = new HttpMethod("PATCH");
internal Task<ResponseT> Patch<ResponseT>(string path, object data) where ResponseT : class internal Task<ResponseT> Patch<ResponseT>(string path, object data) where ResponseT : class
=> Send<ResponseT>(_patch, path, data);
=> Send<ResponseT>("PATCH", path, data);
internal Task Patch(string path, object data) internal Task Patch(string path, object data)
=> Send(_patch, path, data);

private static readonly HttpMethod _post = HttpMethod.Post;
=> Send("PATCH", path, data);
internal Task<ResponseT> Post<ResponseT>(string path, object data) where ResponseT : class internal Task<ResponseT> Post<ResponseT>(string path, object data) where ResponseT : class
=> Send<ResponseT>(_post, path, data);
=> Send<ResponseT>("POST", path, data);
internal Task<ResponseT> Post<ResponseT>(string path) where ResponseT : class internal Task<ResponseT> Post<ResponseT>(string path) where ResponseT : class
=> Send<ResponseT>(_post, path);
=> Send<ResponseT>("POST", path);
internal Task Post(string path, object data) internal Task Post(string path, object data)
=> Send(_post, path, data);
=> Send("POST", path, data);
internal Task Post(string path) internal Task Post(string path)
=> Send(_post, path);

private static readonly HttpMethod _put = HttpMethod.Put;
=> Send("POST", path);
internal Task<ResponseT> Put<ResponseT>(string path, object data) where ResponseT : class internal Task<ResponseT> Put<ResponseT>(string path, object data) where ResponseT : class
=> Send<ResponseT>(_put, path, data);
=> Send<ResponseT>("PUT", path, data);
internal Task<ResponseT> Put<ResponseT>(string path) where ResponseT : class internal Task<ResponseT> Put<ResponseT>(string path) where ResponseT : class
=> Send<ResponseT>(_put, path);
=> Send<ResponseT>("PUT", path);
internal Task Put(string path, object data) internal Task Put(string path, object data)
=> Send(_put, path, data);
=> Send("PUT", path, data);
internal Task Put(string path) internal Task Put(string path)
=> Send(_put, path);
=> Send("PUT", path);


internal Task<ResponseT> PostFile<ResponseT>(string path, string filePath) where ResponseT : class internal Task<ResponseT> PostFile<ResponseT>(string path, string filePath) where ResponseT : class
=> SendFile<ResponseT>(_post, path, filePath);
=> SendFile<ResponseT>("POST", path, filePath);
internal Task PostFile(string path, string filePath) internal Task PostFile(string path, string filePath)
=> SendFile(_post, path, filePath);
=> SendFile("POST", path, filePath);


internal Task<ResponseT> PutFile<ResponseT>(string path, string filePath) where ResponseT : class internal Task<ResponseT> PutFile<ResponseT>(string path, string filePath) where ResponseT : class
=> SendFile<ResponseT>(_put, path, filePath);
=> SendFile<ResponseT>("PUT", path, filePath);
internal Task PutFile(string path, string filePath) internal Task PutFile(string path, string filePath)
=> SendFile(_put, path, filePath);
=> SendFile("PUT", path, filePath);


private async Task<ResponseT> Send<ResponseT>(HttpMethod method, string path, object content = null)
private async Task<ResponseT> Send<ResponseT>(string method, string path, object content = null)
where ResponseT : class where ResponseT : class
{ {
string responseJson = await Send(method, path, content, true).ConfigureAwait(false); string responseJson = await Send(method, path, content, true).ConfigureAwait(false);
return DeserializeResponse<ResponseT>(responseJson); return DeserializeResponse<ResponseT>(responseJson);
} }
private Task Send(HttpMethod method, string path, object content = null)
private Task Send(string method, string path, object content = null)
=> Send(method, path, content, false); => Send(method, path, content, false);
private async Task<string> Send(HttpMethod method, string path, object content, bool hasResponse)
private async Task<string> Send(string method, string path, object content, bool hasResponse)
{ {
Stopwatch stopwatch = null; Stopwatch stopwatch = null;
string requestJson = null; string requestJson = null;
@@ -123,15 +117,15 @@ namespace Discord.Net.Rest
return responseJson; return responseJson;
} }


private async Task<ResponseT> SendFile<ResponseT>(HttpMethod method, string path, string filePath)
private async Task<ResponseT> SendFile<ResponseT>(string method, string path, string filePath)
where ResponseT : class where ResponseT : class
{ {
string responseJson = await SendFile(method, path, filePath, true).ConfigureAwait(false); string responseJson = await SendFile(method, path, filePath, true).ConfigureAwait(false);
return DeserializeResponse<ResponseT>(responseJson); return DeserializeResponse<ResponseT>(responseJson);
} }
private Task SendFile(HttpMethod method, string path, string filePath)
private Task SendFile(string method, string path, string filePath)
=> SendFile(method, path, filePath, false); => SendFile(method, path, filePath, false);
private async Task<string> SendFile(HttpMethod method, string path, string filePath, bool hasResponse)
private async Task<string> SendFile(string method, string path, string filePath, bool hasResponse)
{ {
Stopwatch stopwatch = null; Stopwatch stopwatch = null;




+ 4
- 5
src/Discord.Net/Net/Rest/SharpRestEngine.cs View File

@@ -3,7 +3,6 @@ using Discord.API;
using RestSharp; using RestSharp;
using System; using System;
using System.Net; using System.Net;
using System.Net.Http;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;


@@ -39,13 +38,13 @@ namespace Discord.Net.Rest
_client.AddDefaultHeader("authorization", token); _client.AddDefaultHeader("authorization", token);
} }


public Task<string> Send(HttpMethod method, string path, string json, CancellationToken cancelToken)
public Task<string> Send(string method, string path, string json, CancellationToken cancelToken)
{ {
var request = new RestRequest(path, GetMethod(method)); var request = new RestRequest(path, GetMethod(method));
request.AddParameter("application/json", json, ParameterType.RequestBody); request.AddParameter("application/json", json, ParameterType.RequestBody);
return Send(request, cancelToken); return Send(request, cancelToken);
} }
public Task<string> SendFile(HttpMethod method, string path, string filePath, CancellationToken cancelToken)
public Task<string> SendFile(string method, string path, string filePath, CancellationToken cancelToken)
{ {
var request = new RestRequest(path, Method.POST); var request = new RestRequest(path, Method.POST);
request.AddFile("file", filePath); request.AddFile("file", filePath);
@@ -70,9 +69,9 @@ namespace Discord.Net.Rest
} }
} }


private Method GetMethod(HttpMethod method)
private Method GetMethod(string method)
{ {
switch (method.Method)
switch (method)
{ {
case "DELETE": return Method.DELETE; case "DELETE": return Method.DELETE;
case "GET": return Method.GET; case "GET": return Method.GET;


+ 0
- 6
src/Discord.Net/project.json View File

@@ -35,18 +35,12 @@


"frameworks": { "frameworks": {
"net45": { "net45": {
"frameworkAssemblies": {
"System.Net.Http": "4.0.0.0"
},
"dependencies": { "dependencies": {
"RestSharp": "105.2.3", "RestSharp": "105.2.3",
"WebSocketSharp": "1.0.3-rc9" "WebSocketSharp": "1.0.3-rc9"
} }
}, },
"dnx451": { "dnx451": {
"frameworkAssemblies": {
"System.Net.Http": "4.0.0.0"
},
"dependencies": { "dependencies": {
"RestSharp": "105.2.3", "RestSharp": "105.2.3",
"WebSocketSharp": "1.0.3-rc9" "WebSocketSharp": "1.0.3-rc9"


Loading…
Cancel
Save