mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-18 21:34:28 -04:00
@@ -88,6 +88,8 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
|
|
||||||
if (!addHasSetShareLimits && setShareLimits)
|
if (!addHasSetShareLimits && setShareLimits)
|
||||||
{
|
{
|
||||||
|
Proxy.SetTorrentSeedingConfiguration(hash.ToLower(), remoteBook.SeedConfiguration, Settings);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Proxy.SetTorrentSeedingConfiguration(hash.ToLower(), remoteBook.SeedConfiguration, Settings);
|
Proxy.SetTorrentSeedingConfiguration(hash.ToLower(), remoteBook.SeedConfiguration, Settings);
|
||||||
@@ -286,7 +288,8 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "forcedDL": //torrent is being downloaded, and was forced started
|
case "forcedDL": // torrent is being downloaded, and was forced started
|
||||||
|
case "forcedMetaDL": // torrent metadata is being forcibly downloaded
|
||||||
case "moving": // torrent is being moved from a folder
|
case "moving": // torrent is being moved from a folder
|
||||||
case "downloading": // torrent is being downloaded and data is being transferred
|
case "downloading": // torrent is being downloaded and data is being transferred
|
||||||
item.Status = DownloadItemStatus.Downloading;
|
item.Status = DownloadItemStatus.Downloading;
|
||||||
|
|||||||
@@ -142,20 +142,8 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
var request = BuildRequest(settings).Resource("/api/v2/torrents/add")
|
var request = BuildRequest(settings).Resource("/api/v2/torrents/add")
|
||||||
.Post()
|
.Post()
|
||||||
.AddFormParameter("urls", torrentUrl);
|
.AddFormParameter("urls", torrentUrl);
|
||||||
if (settings.MusicCategory.IsNotNullOrWhiteSpace())
|
|
||||||
{
|
|
||||||
request.AddFormParameter("category", settings.MusicCategory);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Note: ForceStart is handled by separate api call
|
AddTorrentDownloadFormParameters(request, settings);
|
||||||
if ((QBittorrentState)settings.InitialState == QBittorrentState.Start)
|
|
||||||
{
|
|
||||||
request.AddFormParameter("paused", false);
|
|
||||||
}
|
|
||||||
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Pause)
|
|
||||||
{
|
|
||||||
request.AddFormParameter("paused", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (seedConfiguration != null)
|
if (seedConfiguration != null)
|
||||||
{
|
{
|
||||||
@@ -177,20 +165,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
.Post()
|
.Post()
|
||||||
.AddFormUpload("torrents", fileName, fileContent);
|
.AddFormUpload("torrents", fileName, fileContent);
|
||||||
|
|
||||||
if (settings.MusicCategory.IsNotNullOrWhiteSpace())
|
AddTorrentDownloadFormParameters(request, settings);
|
||||||
{
|
|
||||||
request.AddFormParameter("category", settings.MusicCategory);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Note: ForceStart is handled by separate api call
|
|
||||||
if ((QBittorrentState)settings.InitialState == QBittorrentState.Start)
|
|
||||||
{
|
|
||||||
request.AddFormParameter("paused", false);
|
|
||||||
}
|
|
||||||
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Pause)
|
|
||||||
{
|
|
||||||
request.AddFormParameter("paused", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (seedConfiguration != null)
|
if (seedConfiguration != null)
|
||||||
{
|
{
|
||||||
@@ -259,6 +234,34 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void AddTorrentDownloadFormParameters(HttpRequestBuilder request, QBittorrentSettings settings)
|
||||||
|
{
|
||||||
|
if (settings.MusicCategory.IsNotNullOrWhiteSpace())
|
||||||
|
{
|
||||||
|
request.AddFormParameter("category", settings.MusicCategory);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Note: ForceStart is handled by separate api call
|
||||||
|
if ((QBittorrentState)settings.InitialState == QBittorrentState.Start)
|
||||||
|
{
|
||||||
|
request.AddFormParameter("paused", false);
|
||||||
|
}
|
||||||
|
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Pause)
|
||||||
|
{
|
||||||
|
request.AddFormParameter("paused", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings.SequentialOrder)
|
||||||
|
{
|
||||||
|
request.AddFormParameter("sequentialDownload", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings.FirstAndLast)
|
||||||
|
{
|
||||||
|
request.AddFormParameter("firstLastPiecePrio", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void SetTorrentSeedingConfiguration(string hash, TorrentSeedConfiguration seedConfiguration, QBittorrentSettings settings)
|
public void SetTorrentSeedingConfiguration(string hash, TorrentSeedConfiguration seedConfiguration, QBittorrentSettings settings)
|
||||||
{
|
{
|
||||||
var request = BuildRequest(settings).Resource("/api/v2/torrents/setShareLimits")
|
var request = BuildRequest(settings).Resource("/api/v2/torrents/setShareLimits")
|
||||||
|
|||||||
@@ -63,6 +63,12 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
[FieldDefinition(10, Label = "Initial State", Type = FieldType.Select, SelectOptions = typeof(QBittorrentState), HelpText = "Initial state for torrents added to qBittorrent. Note that Forced Torrents do not abide by seed restrictions")]
|
[FieldDefinition(10, Label = "Initial State", Type = FieldType.Select, SelectOptions = typeof(QBittorrentState), HelpText = "Initial state for torrents added to qBittorrent. Note that Forced Torrents do not abide by seed restrictions")]
|
||||||
public int InitialState { get; set; }
|
public int InitialState { get; set; }
|
||||||
|
|
||||||
|
[FieldDefinition(11, Label = "Sequential Order", Type = FieldType.Checkbox, HelpText = "Download in sequential order (qBittorrent 4.1.0+)")]
|
||||||
|
public bool SequentialOrder { get; set; }
|
||||||
|
|
||||||
|
[FieldDefinition(12, Label = "First and Last First", Type = FieldType.Checkbox, HelpText = "Download first and last pieces first (qBittorrent 4.1.0+)")]
|
||||||
|
public bool FirstAndLast { get; set; }
|
||||||
|
|
||||||
public NzbDroneValidationResult Validate()
|
public NzbDroneValidationResult Validate()
|
||||||
{
|
{
|
||||||
return new NzbDroneValidationResult(Validator.Validate(this));
|
return new NzbDroneValidationResult(Validator.Validate(this));
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
|
|
||||||
public double Progress { get; set; } // Torrent progress (%/100)
|
public double Progress { get; set; } // Torrent progress (%/100)
|
||||||
|
|
||||||
public BigInteger Eta { get; set; } // Torrent ETA (seconds)
|
public BigInteger Eta { get; set; } // Torrent ETA (seconds) (QBit contains a bug exceeding ulong limits)
|
||||||
|
|
||||||
public string State { get; set; } // Torrent state. See possible values here below
|
public string State { get; set; } // Torrent state. See possible values here below
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user