@ -72,7 +72,13 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
. Post ( )
. AddFormParameter ( "urls" , torrentUrl ) ;
ProcessRequest < object > ( request , settings ) ;
var result = ProcessRequest ( request , settings ) ;
// Note: Older qbit versions returned nothing, so we can't do != "Ok." here.
if ( result = = "Fails." )
{
throw new DownloadClientException ( "Download client failed to add torrent by url" ) ;
}
}
public void AddTorrentFromFile ( string fileName , Byte [ ] fileContent , QBittorrentSettings settings )
@ -81,7 +87,13 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
. Post ( )
. AddFormUpload ( "torrents" , fileName , fileContent ) ;
ProcessRequest < object > ( request , settings ) ;
var result = ProcessRequest ( request , settings ) ;
// Note: Current qbit versions return nothing, so we can't do != "Ok." here.
if ( result = = "Fails." )
{
throw new DownloadClientException ( "Download client failed to add torrent" ) ;
}
}
public void RemoveTorrent ( string hash , Boolean removeData , QBittorrentSettings settings )
@ -90,7 +102,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
. Post ( )
. AddFormParameter ( "hashes" , hash ) ;
ProcessRequest <object > (request , settings ) ;
ProcessRequest (request , settings ) ;
}
public void SetTorrentLabel ( string hash , string label , QBittorrentSettings settings )
@ -101,7 +113,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
. AddFormParameter ( "category" , label ) ;
try
{
ProcessRequest <object > (setCategoryRequest , settings ) ;
ProcessRequest (setCategoryRequest , settings ) ;
}
catch ( DownloadClientException ex )
{
@ -112,7 +124,8 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
. Post ( )
. AddFormParameter ( "hashes" , hash )
. AddFormParameter ( "label" , label ) ;
ProcessRequest < object > ( setLabelRequest , settings ) ;
ProcessRequest ( setLabelRequest , settings ) ;
}
}
}
@ -125,7 +138,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
try
{
var response = ProcessRequest < object > ( request , settings ) ;
ProcessRequest ( request , settings ) ;
}
catch ( DownloadClientException ex )
{
@ -152,6 +165,13 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
private TResult ProcessRequest < TResult > ( HttpRequestBuilder requestBuilder , QBittorrentSettings settings )
where TResult : new ( )
{
var responseContent = ProcessRequest ( requestBuilder , settings ) ;
return Json . Deserialize < TResult > ( responseContent ) ;
}
private string ProcessRequest ( HttpRequestBuilder requestBuilder , QBittorrentSettings settings )
{
AuthenticateClient ( requestBuilder , settings ) ;
@ -185,7 +205,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
throw new DownloadClientException ( "Failed to connect to qBitTorrent, please check your settings." , ex ) ;
}
return Json. Deserialize < TResult > ( response. Content ) ;
return response. Content ;
}
private void AuthenticateClient ( HttpRequestBuilder requestBuilder , QBittorrentSettings settings , bool reauthenticate = false )