Ejemplo n.º 1
0
        private T ProcessRequest <T>(HadoukenSettings settings, string method, params object[] parameters)
        {
            var baseUrl        = HttpRequestBuilder.BuildBaseUrl(settings.UseSsl, settings.Host, settings.Port, "api");
            var requestBuilder = new JsonRpcRequestBuilder(baseUrl, method, parameters);

            requestBuilder.LogResponseContent = true;
            requestBuilder.NetworkCredential  = new NetworkCredential(settings.Username, settings.Password);
            requestBuilder.Headers.Add("Accept-Encoding", "gzip,deflate");

            var          httpRequest = requestBuilder.Build();
            HttpResponse response;

            try
            {
                response = _httpClient.Execute(httpRequest);
            }
            catch (HttpException ex)
            {
                throw new DownloadClientException("Unable to connect to Hadouken, please check your settings", ex);
            }
            catch (WebException ex)
            {
                throw new DownloadClientUnavailableException("Unable to connect to Hadouken, please check your settings", ex);
            }

            var result = Json.Deserialize <JsonRpcResponse <T> >(response.Content);

            if (result.Error != null)
            {
                throw new DownloadClientException("Error response received from Hadouken: {0}", result.Error.ToString());
            }

            return(result.Result);
        }
        private IEnumerable <IndexerRequest> GetPagedRequests(BroadcastheNetTorrentQuery parameters, int results, int offset)
        {
            var builder = new JsonRpcRequestBuilder(Settings.BaseUrl)
                          .Call("getTorrents", Settings.ApiKey, parameters, results, offset);

            builder.SuppressHttpError = true;

            yield return(new IndexerRequest(builder.Build()));
        }
        private IEnumerable <IndexerRequest> GetPagedRequests(int maxPages, BroadcastheNetTorrentQuery parameters)
        {
            var builder = new JsonRpcRequestBuilder(Settings.BaseUrl)
                          .Call("getTorrents", Settings.ApiKey, parameters, PageSize, 0);

            builder.SuppressHttpError = true;

            for (var page = 0; page < maxPages; page++)
            {
                builder.JsonParameters[3] = page * PageSize;

                yield return(new IndexerRequest(builder.Build()));
            }
        }
Ejemplo n.º 4
0
        private IEnumerable <IndexerRequest> GetPagedRequests(int maxPages, BroadcastheNetTorrentQuery parameters)
        {
            if (parameters == null)
            {
                parameters = new BroadcastheNetTorrentQuery();
            }

            var builder = new JsonRpcRequestBuilder(Settings.BaseUrl, "getTorrents", new object[] { Settings.ApiKey, parameters, PageSize, 0 });

            builder.SupressHttpError = true;

            for (var page = 0; page < maxPages; page++)
            {
                builder.Parameters[3] = page * PageSize;

                yield return(new IndexerRequest(builder.Build("")));
            }
        }
Ejemplo n.º 5
0
        private T ProcessRequest <T>(NzbgetSettings settings, string method, params object[] parameters)
        {
            var baseUrl = HttpRequestBuilder.BuildBaseUrl(settings.UseSsl, settings.Host, settings.Port, "jsonrpc");

            var requestBuilder = new JsonRpcRequestBuilder(baseUrl, method, parameters);

            requestBuilder.LogResponseContent = true;
            requestBuilder.NetworkCredential  = new NetworkCredential(settings.Username, settings.Password);

            var httpRequest = requestBuilder.Build();

            HttpResponse response;

            try
            {
                response = _httpClient.Execute(httpRequest);
            }
            catch (HttpException ex)
            {
                if (ex.Response.StatusCode == HttpStatusCode.Unauthorized)
                {
                    throw new DownloadClientAuthenticationException("Authentication failed for NzbGet, please check your settings", ex);
                }

                throw new DownloadClientException("Unable to connect to NzbGet. " + ex.Message, ex);
            }
            catch (WebException ex)
            {
                throw new DownloadClientUnavailableException("Unable to connect to NzbGet. " + ex.Message, ex);
            }

            var result = Json.Deserialize <JsonRpcResponse <T> >(response.Content);

            if (result.Error != null)
            {
                throw new DownloadClientException("Error response received from nzbget: {0}", result.Error.ToString());
            }

            return(result.Result);
        }
Ejemplo n.º 6
0
        private string ProcessRequest(XbmcSettings settings, string method, params object[] parameters)
        {
            var url            = string.Format(@"http://{0}/jsonrpc", settings.Address);
            var requestBuilder = new JsonRpcRequestBuilder(url, method, parameters);

            requestBuilder.LogResponseContent = true;

            var request = requestBuilder.Build();

            if (!settings.Username.IsNullOrWhiteSpace())
            {
                request.AddBasicAuthentication(settings.Username, settings.Password);
            }

            var response = _httpClient.Execute(request);

            _logger.Trace("Response: {0}", response.Content);

            CheckForError(response);

            return(response.Content);
        }
Ejemplo n.º 7
0
        private string ProcessRequest(XbmcSettings settings, string method, params object[] parameters)
        {
            var url            = HttpRequestBuilder.BuildBaseUrl(settings.UseSsl, settings.Host, settings.Port, "jsonrpc");
            var requestBuilder = new JsonRpcRequestBuilder(url, method, parameters);

            requestBuilder.LogResponseContent = true;

            var request = requestBuilder.Build();

            if (!settings.Username.IsNullOrWhiteSpace())
            {
                request.Credentials = new BasicNetworkCredential(settings.Username, settings.Password);
            }

            var response = _httpClient.Execute(request);

            _logger.Trace("Response: {0}", response.Content);

            CheckForError(response);

            return(response.Content);
        }