mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-10-29 23:12:39 +01:00
Fixed: Initial state for qBittorrent v5.0
This commit is contained in:
parent
fcf68d9259
commit
ff724b7f40
@ -26,8 +26,6 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
Dictionary<string, QBittorrentLabel> GetLabels(QBittorrentSettings settings);
|
Dictionary<string, QBittorrentLabel> GetLabels(QBittorrentSettings settings);
|
||||||
void SetTorrentSeedingConfiguration(string hash, TorrentSeedConfiguration seedConfiguration, QBittorrentSettings settings);
|
void SetTorrentSeedingConfiguration(string hash, TorrentSeedConfiguration seedConfiguration, QBittorrentSettings settings);
|
||||||
void MoveTorrentToTopInQueue(string hash, QBittorrentSettings settings);
|
void MoveTorrentToTopInQueue(string hash, QBittorrentSettings settings);
|
||||||
void PauseTorrent(string hash, QBittorrentSettings settings);
|
|
||||||
void ResumeTorrent(string hash, QBittorrentSettings settings);
|
|
||||||
void SetForceStart(string hash, bool enabled, QBittorrentSettings settings);
|
void SetForceStart(string hash, bool enabled, QBittorrentSettings settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
{
|
{
|
||||||
request.AddFormParameter("paused", false);
|
request.AddFormParameter("paused", false);
|
||||||
}
|
}
|
||||||
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Pause)
|
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Stop)
|
||||||
{
|
{
|
||||||
request.AddFormParameter("paused", true);
|
request.AddFormParameter("paused", true);
|
||||||
}
|
}
|
||||||
@ -177,7 +177,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
{
|
{
|
||||||
request.AddFormParameter("paused", false);
|
request.AddFormParameter("paused", false);
|
||||||
}
|
}
|
||||||
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Pause)
|
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Stop)
|
||||||
{
|
{
|
||||||
request.AddFormParameter("paused", true);
|
request.AddFormParameter("paused", true);
|
||||||
}
|
}
|
||||||
@ -213,7 +213,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
catch (DownloadClientException ex)
|
catch (DownloadClientException ex)
|
||||||
{
|
{
|
||||||
// if setCategory fails due to method not being found, then try older setLabel command for qBittorrent < v.3.3.5
|
// if setCategory fails due to method not being found, then try older setLabel command for qBittorrent < v.3.3.5
|
||||||
if (ex.InnerException is HttpException && (ex.InnerException as HttpException).Response.StatusCode == HttpStatusCode.NotFound)
|
if (ex.InnerException is HttpException httpException && httpException.Response.StatusCode == HttpStatusCode.NotFound)
|
||||||
{
|
{
|
||||||
var setLabelRequest = BuildRequest(settings).Resource("/command/setLabel")
|
var setLabelRequest = BuildRequest(settings).Resource("/command/setLabel")
|
||||||
.Post()
|
.Post()
|
||||||
@ -255,7 +255,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
catch (DownloadClientException ex)
|
catch (DownloadClientException ex)
|
||||||
{
|
{
|
||||||
// qBittorrent rejects all Prio commands with 403: Forbidden if Options -> BitTorrent -> Torrent Queueing is not enabled
|
// qBittorrent rejects all Prio commands with 403: Forbidden if Options -> BitTorrent -> Torrent Queueing is not enabled
|
||||||
if (ex.InnerException is HttpException && (ex.InnerException as HttpException).Response.StatusCode == HttpStatusCode.Forbidden)
|
if (ex.InnerException is HttpException httpException && httpException.Response.StatusCode == HttpStatusCode.Forbidden)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -264,22 +264,6 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PauseTorrent(string hash, QBittorrentSettings settings)
|
|
||||||
{
|
|
||||||
var request = BuildRequest(settings).Resource("/command/pause")
|
|
||||||
.Post()
|
|
||||||
.AddFormParameter("hash", hash);
|
|
||||||
ProcessRequest(request, settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ResumeTorrent(string hash, QBittorrentSettings settings)
|
|
||||||
{
|
|
||||||
var request = BuildRequest(settings).Resource("/command/resume")
|
|
||||||
.Post()
|
|
||||||
.AddFormParameter("hash", hash);
|
|
||||||
ProcessRequest(request, settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetForceStart(string hash, bool enabled, QBittorrentSettings settings)
|
public void SetForceStart(string hash, bool enabled, QBittorrentSettings settings)
|
||||||
{
|
{
|
||||||
var request = BuildRequest(settings).Resource("/command/setForceStart")
|
var request = BuildRequest(settings).Resource("/command/setForceStart")
|
||||||
|
@ -247,14 +247,20 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
request.AddFormParameter("category", settings.TvCategory);
|
request.AddFormParameter("category", settings.TvCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: ForceStart is handled by separate api call
|
// Avoid extraneous API version check if initial state is ForceStart
|
||||||
if ((QBittorrentState)settings.InitialState == QBittorrentState.Start)
|
if ((QBittorrentState)settings.InitialState is QBittorrentState.Start or QBittorrentState.Stop)
|
||||||
{
|
{
|
||||||
request.AddFormParameter("paused", false);
|
var stoppedParameterName = GetApiVersion(settings) >= new Version(2, 11, 0) ? "stopped" : "paused";
|
||||||
}
|
|
||||||
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Pause)
|
// Note: ForceStart is handled by separate api call
|
||||||
{
|
if ((QBittorrentState)settings.InitialState == QBittorrentState.Start)
|
||||||
request.AddFormParameter("paused", true);
|
{
|
||||||
|
request.AddFormParameter(stoppedParameterName, false);
|
||||||
|
}
|
||||||
|
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Stop)
|
||||||
|
{
|
||||||
|
request.AddFormParameter(stoppedParameterName, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settings.SequentialOrder)
|
if (settings.SequentialOrder)
|
||||||
@ -292,7 +298,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
catch (DownloadClientException ex)
|
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
|
// 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;
|
return;
|
||||||
}
|
}
|
||||||
@ -314,7 +320,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
catch (DownloadClientException ex)
|
catch (DownloadClientException ex)
|
||||||
{
|
{
|
||||||
// qBittorrent rejects all Prio commands with 409: Conflict if Options -> BitTorrent -> Torrent Queueing is not enabled
|
// 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;
|
return;
|
||||||
}
|
}
|
||||||
@ -323,22 +329,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)
|
public void SetForceStart(string hash, bool enabled, QBittorrentSettings settings)
|
||||||
{
|
{
|
||||||
var request = BuildRequest(settings).Resource("/api/v2/torrents/setForceStart")
|
var request = BuildRequest(settings).Resource("/api/v2/torrents/setForceStart")
|
||||||
|
@ -1,9 +1,16 @@
|
|||||||
|
using NzbDrone.Core.Annotations;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Download.Clients.QBittorrent
|
namespace NzbDrone.Core.Download.Clients.QBittorrent
|
||||||
{
|
{
|
||||||
public enum QBittorrentState
|
public enum QBittorrentState
|
||||||
{
|
{
|
||||||
|
[FieldOption(Label = "Started")]
|
||||||
Start = 0,
|
Start = 0,
|
||||||
|
|
||||||
|
[FieldOption(Label = "Force Started")]
|
||||||
ForceStart = 1,
|
ForceStart = 1,
|
||||||
Pause = 2
|
|
||||||
|
[FieldOption(Label = "Stopped")]
|
||||||
|
Stop = 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user