mirror of https://github.com/Sonarr/Sonarr
uTorrent start/stop on add
New: Start torrents added to uTorrent by default New: Option to add torrents to uTorrent in a stopped state Closes #2141
This commit is contained in:
parent
9a82f45020
commit
fa34af8f15
|
@ -49,6 +49,15 @@ namespace NzbDrone.Core.Download.Clients.UTorrent
|
||||||
_proxy.MoveTorrentToTopInQueue(hash, Settings);
|
_proxy.MoveTorrentToTopInQueue(hash, Settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Settings.AddStopped)
|
||||||
|
{
|
||||||
|
_proxy.StopTorrent(hash, Settings);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_proxy.StartTorrent(hash, Settings);
|
||||||
|
}
|
||||||
|
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,6 +74,15 @@ namespace NzbDrone.Core.Download.Clients.UTorrent
|
||||||
_proxy.MoveTorrentToTopInQueue(hash, Settings);
|
_proxy.MoveTorrentToTopInQueue(hash, Settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Settings.AddStopped)
|
||||||
|
{
|
||||||
|
_proxy.StopTorrent(hash, Settings);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_proxy.StartTorrent(hash, Settings);
|
||||||
|
}
|
||||||
|
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@ namespace NzbDrone.Core.Download.Clients.UTorrent
|
||||||
void RemoveTorrent(string hash, bool removeData, UTorrentSettings settings);
|
void RemoveTorrent(string hash, bool removeData, UTorrentSettings settings);
|
||||||
void SetTorrentLabel(string hash, string label, UTorrentSettings settings);
|
void SetTorrentLabel(string hash, string label, UTorrentSettings settings);
|
||||||
void MoveTorrentToTopInQueue(string hash, UTorrentSettings settings);
|
void MoveTorrentToTopInQueue(string hash, UTorrentSettings settings);
|
||||||
|
void StartTorrent(string hash, UTorrentSettings settings);
|
||||||
|
void StopTorrent(string hash, UTorrentSettings settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class UTorrentProxy : IUTorrentProxy
|
public class UTorrentProxy : IUTorrentProxy
|
||||||
|
@ -157,6 +159,24 @@ namespace NzbDrone.Core.Download.Clients.UTorrent
|
||||||
ProcessRequest(requestBuilder, settings);
|
ProcessRequest(requestBuilder, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void StartTorrent(string hash, UTorrentSettings settings)
|
||||||
|
{
|
||||||
|
var requestBuilder = BuildRequest(settings)
|
||||||
|
.AddQueryParam("action", "start")
|
||||||
|
.AddQueryParam("hash", hash);
|
||||||
|
|
||||||
|
ProcessRequest(requestBuilder, settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopTorrent(string hash, UTorrentSettings settings)
|
||||||
|
{
|
||||||
|
var requestBuilder = BuildRequest(settings)
|
||||||
|
.AddQueryParam("action", "stop")
|
||||||
|
.AddQueryParam("hash", hash);
|
||||||
|
|
||||||
|
ProcessRequest(requestBuilder, settings);
|
||||||
|
}
|
||||||
|
|
||||||
private HttpRequestBuilder BuildRequest(UTorrentSettings settings)
|
private HttpRequestBuilder BuildRequest(UTorrentSettings settings)
|
||||||
{
|
{
|
||||||
var requestBuilder = new HttpRequestBuilder(false, settings.Host, settings.Port)
|
var requestBuilder = new HttpRequestBuilder(false, settings.Host, settings.Port)
|
||||||
|
|
|
@ -47,6 +47,9 @@ namespace NzbDrone.Core.Download.Clients.UTorrent
|
||||||
[FieldDefinition(6, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(UTorrentPriority), HelpText = "Priority to use when grabbing episodes that aired over 14 days ago")]
|
[FieldDefinition(6, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(UTorrentPriority), HelpText = "Priority to use when grabbing episodes that aired over 14 days ago")]
|
||||||
public int OlderTvPriority { get; set; }
|
public int OlderTvPriority { get; set; }
|
||||||
|
|
||||||
|
[FieldDefinition(7, Label = "Add Stopped", Type = FieldType.Checkbox, SelectOptions = typeof(UTorrentPriority), HelpText = "Torrents will need to be started manually in uTorrent")]
|
||||||
|
public bool AddStopped { get; set; }
|
||||||
|
|
||||||
public NzbDroneValidationResult Validate()
|
public NzbDroneValidationResult Validate()
|
||||||
{
|
{
|
||||||
return new NzbDroneValidationResult(Validator.Validate(this));
|
return new NzbDroneValidationResult(Validator.Validate(this));
|
||||||
|
|
Loading…
Reference in New Issue