@ -246,14 +246,20 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
request . AddFormParameter ( "category" , category ) ;
}
// Note: ForceStart is handled by separate api call
if ( ( QBittorrentState ) settings . InitialState = = QBittorrentState . Start )
// Avoid extraneous API version check if initial state is ForceStart
if ( ( QBittorrentState ) settings . InitialState is QBittorrentState . Start or QBittorrentState . Stop )
{
request . AddFormParameter ( "paused" , false ) ;
}
else if ( ( QBittorrentState ) settings . InitialState = = QBittorrentState . Pause )
{
request . AddFormParameter ( "paused" , true ) ;
var stoppedParameterName = GetApiVersion ( settings ) > = new Version ( 2 , 11 , 0 ) ? "stopped" : "paused" ;
// Note: ForceStart is handled by separate api call
if ( ( QBittorrentState ) settings . InitialState = = QBittorrentState . Start )
{
request . AddFormParameter ( stoppedParameterName , false ) ;
}
else if ( ( QBittorrentState ) settings . InitialState = = QBittorrentState . Stop )
{
request . AddFormParameter ( stoppedParameterName , true ) ;
}
}
if ( settings . SequentialOrder )
@ -291,7 +297,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
catch ( DownloadClientException ex )
{
// setShareLimits was added in api v2.0.1 so catch it case of the unlikely event that someone has api v2.0
if ( ex . InnerException is HttpException & & ( ex . InnerException as HttpException ) . Response . StatusCode = = HttpStatusCode . NotFound )
if ( ex . InnerException is HttpException httpException & & httpException . Response . StatusCode = = HttpStatusCode . NotFound )
{
return ;
}
@ -313,7 +319,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
catch ( DownloadClientException ex )
{
// qBittorrent rejects all Prio commands with 409: Conflict if Options -> BitTorrent -> Torrent Queueing is not enabled
if ( ex . InnerException is HttpException & & ( ex . InnerException as HttpException ) . Response . StatusCode = = HttpStatusCode . Conflict )
if ( ex . InnerException is HttpException httpException & & httpException . Response . StatusCode = = HttpStatusCode . Conflict )
{
return ;
}
@ -322,22 +328,6 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
}
}
public void PauseTorrent ( string hash , QBittorrentSettings settings )
{
var request = BuildRequest ( settings ) . Resource ( "/api/v2/torrents/pause" )
. Post ( )
. AddFormParameter ( "hashes" , hash ) ;
ProcessRequest ( request , settings ) ;
}
public void ResumeTorrent ( string hash , QBittorrentSettings settings )
{
var request = BuildRequest ( settings ) . Resource ( "/api/v2/torrents/resume" )
. Post ( )
. AddFormParameter ( "hashes" , hash ) ;
ProcessRequest ( request , settings ) ;
}
public void SetForceStart ( string hash , bool enabled , QBittorrentSettings settings )
{
var request = BuildRequest ( settings ) . Resource ( "/api/v2/torrents/setForceStart" )