diff --git a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
index f1afd11c4..2454ef7d1 100644
--- a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
+++ b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
@@ -90,6 +90,7 @@
+
diff --git a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs
index b006ef5db..757a2f1b2 100644
--- a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs
+++ b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs
@@ -84,7 +84,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
_logger.Warn(ex, "Failed to set the torrent priority for {0}.", filename);
}
- SetInitialState(hash);
+ SetInitialState(hash.ToLower());
return hash;
}
@@ -107,7 +107,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
item.TotalSize = torrent.Size;
item.DownloadClient = Definition.Name;
item.RemainingSize = (long)(torrent.Size * (1.0 - torrent.Progress));
- item.RemainingTime = TimeSpan.FromSeconds(torrent.Eta);
+ item.RemainingTime = GetRemainingTime(torrent);
item.OutputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, new OsPath(torrent.SavePath));
@@ -315,7 +315,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
{
try
{
- switch ((QBittorrentState) Settings.InitialState)
+ switch ((QBittorrentState)Settings.InitialState)
{
case QBittorrentState.ForceStart:
_proxy.SetForceStart(hash, true, Settings);
@@ -333,5 +333,15 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
_logger.Warn(ex, "Failed to set inital state for {0}.", hash);
}
}
+
+ protected TimeSpan? GetRemainingTime(QBittorrentTorrent torrent)
+ {
+ if (torrent.Eta < 0 || torrent.Eta > 365 * 24 * 3600)
+ {
+ return null;
+ }
+
+ return TimeSpan.FromSeconds((int)torrent.Eta);
+ }
}
}
diff --git a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentTorrent.cs b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentTorrent.cs
index 266d22f95..04b803401 100644
--- a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentTorrent.cs
+++ b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentTorrent.cs
@@ -1,4 +1,5 @@
-using Newtonsoft.Json;
+using System.Numerics;
+using Newtonsoft.Json;
namespace NzbDrone.Core.Download.Clients.QBittorrent
{
@@ -13,7 +14,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
public double Progress { get; set; } // Torrent progress (%/100)
- public ulong Eta { get; set; } // Torrent ETA (seconds)
+ public BigInteger Eta { get; set; } // Torrent ETA (seconds)
public string State { get; set; } // Torrent state. See possible values here below
diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj
index e561e9af6..c805ee4e3 100644
--- a/src/NzbDrone.Core/NzbDrone.Core.csproj
+++ b/src/NzbDrone.Core/NzbDrone.Core.csproj
@@ -100,6 +100,7 @@
+