mirror of https://github.com/Sonarr/Sonarr
35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
using RestSharp;
|
|
using NzbDrone.Common.EnvironmentInfo;
|
|
using NzbDrone.Common.Http.Proxy;
|
|
|
|
namespace NzbDrone.Core.Rest
|
|
{
|
|
public class RestClientFactory : IRestClientFactory
|
|
{
|
|
private readonly IHttpProxySettingsProvider _httpProxySettingsProvider;
|
|
private readonly ICreateManagedWebProxy _createManagedWebProxy;
|
|
|
|
public RestClientFactory(IHttpProxySettingsProvider httpProxySettingsProvider, ICreateManagedWebProxy createManagedWebProxy)
|
|
{
|
|
_httpProxySettingsProvider = httpProxySettingsProvider;
|
|
_createManagedWebProxy = createManagedWebProxy;
|
|
}
|
|
|
|
public RestClient BuildClient(string baseUrl)
|
|
{
|
|
var restClient = new RestClient(baseUrl)
|
|
{
|
|
UserAgent = $"{BuildInfo.AppName}/{BuildInfo.Version} ({OsInfo.Os})"
|
|
};
|
|
|
|
var proxySettings = _httpProxySettingsProvider.GetProxySettings();
|
|
if (proxySettings != null)
|
|
{
|
|
restClient.Proxy = _createManagedWebProxy.GetWebProxy(proxySettings);
|
|
}
|
|
|
|
return restClient;
|
|
}
|
|
}
|
|
}
|