mirror of
https://github.com/Radarr/Radarr
synced 2025-02-27 16:42:46 +00:00
Fixed: No longer mixes up peers and leechers, so the UI should now properly report seeders and leechers.
This commit is contained in:
parent
400a47cd19
commit
3244f71e5c
6 changed files with 29 additions and 12 deletions
|
@ -53,7 +53,7 @@ public void should_parse_recent_feed_from_BroadcastheNet()
|
||||||
torrentInfo.InfoHash.Should().Be("123");
|
torrentInfo.InfoHash.Should().Be("123");
|
||||||
torrentInfo.TvRageId.Should().Be(4055);
|
torrentInfo.TvRageId.Should().Be(4055);
|
||||||
torrentInfo.MagnetUrl.Should().BeNullOrEmpty();
|
torrentInfo.MagnetUrl.Should().BeNullOrEmpty();
|
||||||
torrentInfo.Peers.Should().Be(9);
|
torrentInfo.Peers.Should().Be(40+9);
|
||||||
torrentInfo.Seeders.Should().Be(40);
|
torrentInfo.Seeders.Should().Be(40);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ public void should_parse_recent_feed_from_Nyaa()
|
||||||
torrentInfo.Size.Should().Be(2523293286); //2.35 GiB
|
torrentInfo.Size.Should().Be(2523293286); //2.35 GiB
|
||||||
torrentInfo.InfoHash.Should().Be(null);
|
torrentInfo.InfoHash.Should().Be(null);
|
||||||
torrentInfo.MagnetUrl.Should().Be(null);
|
torrentInfo.MagnetUrl.Should().Be(null);
|
||||||
torrentInfo.Peers.Should().Be(2);
|
torrentInfo.Peers.Should().Be(2+1);
|
||||||
torrentInfo.Seeders.Should().Be(1);
|
torrentInfo.Seeders.Should().Be(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ public void should_parse_recent_feed_from_Torrentleech()
|
||||||
torrentInfo.Size.Should().Be(0);
|
torrentInfo.Size.Should().Be(0);
|
||||||
torrentInfo.InfoHash.Should().Be(null);
|
torrentInfo.InfoHash.Should().Be(null);
|
||||||
torrentInfo.MagnetUrl.Should().Be(null);
|
torrentInfo.MagnetUrl.Should().Be(null);
|
||||||
torrentInfo.Peers.Should().Be(7);
|
torrentInfo.Peers.Should().Be(7+1);
|
||||||
torrentInfo.Seeders.Should().Be(1);
|
torrentInfo.Seeders.Should().Be(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ public IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
||||||
//torrentInfo.MagnetUrl =
|
//torrentInfo.MagnetUrl =
|
||||||
torrentInfo.InfoHash = torrent.InfoHash;
|
torrentInfo.InfoHash = torrent.InfoHash;
|
||||||
torrentInfo.Seeders = torrent.Seeders;
|
torrentInfo.Seeders = torrent.Seeders;
|
||||||
torrentInfo.Peers = torrent.Leechers;
|
torrentInfo.Peers = torrent.Leechers + torrent.Seeders;
|
||||||
|
|
||||||
results.Add(torrentInfo);
|
results.Add(torrentInfo);
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ protected override String GetMagnetUrl(XElement item)
|
||||||
return (Int32)seeds;
|
return (Int32)seeds;
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.GetPeers(item);
|
return base.GetSeeders(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override Int32? GetPeers(XElement item)
|
protected override Int32? GetPeers(XElement item)
|
||||||
|
|
|
@ -46,11 +46,19 @@ protected virtual String GetMagnetUrl(XElement item)
|
||||||
{
|
{
|
||||||
if (ParseSeedersInDescription)
|
if (ParseSeedersInDescription)
|
||||||
{
|
{
|
||||||
var match = ParseSeedersRegex.Match(item.Element("description").Value);
|
var matchSeeders = ParseSeedersRegex.Match(item.Element("description").Value);
|
||||||
|
|
||||||
if (match.Success)
|
if (matchSeeders.Success)
|
||||||
{
|
{
|
||||||
return Int32.Parse(match.Groups["value"].Value);
|
return Int32.Parse(matchSeeders.Groups["value"].Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
var matchPeers = ParsePeersRegex.Match(item.Element("description").Value);
|
||||||
|
var matchLeechers = ParseLeechersRegex.Match(item.Element("description").Value);
|
||||||
|
|
||||||
|
if (matchPeers.Success && matchLeechers.Success)
|
||||||
|
{
|
||||||
|
return Int32.Parse(matchPeers.Groups["value"].Value) - Int32.Parse(matchLeechers.Groups["value"].Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,11 +69,19 @@ protected virtual String GetMagnetUrl(XElement item)
|
||||||
{
|
{
|
||||||
if (ParseSeedersInDescription)
|
if (ParseSeedersInDescription)
|
||||||
{
|
{
|
||||||
var match = ParsePeersRegex.Match(item.Element("description").Value);
|
var matchPeers = ParsePeersRegex.Match(item.Element("description").Value);
|
||||||
|
|
||||||
if (match.Success)
|
if (matchPeers.Success)
|
||||||
{
|
{
|
||||||
return Int32.Parse(match.Groups["value"].Value);
|
return Int32.Parse(matchPeers.Groups["value"].Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
var matchSeeders = ParseSeedersRegex.Match(item.Element("description").Value);
|
||||||
|
var matchLeechers = ParseLeechersRegex.Match(item.Element("description").Value);
|
||||||
|
|
||||||
|
if (matchSeeders.Success && matchLeechers.Success)
|
||||||
|
{
|
||||||
|
return Int32.Parse(matchSeeders.Groups["value"].Value) + Int32.Parse(matchLeechers.Groups["value"].Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,6 +89,7 @@ protected virtual String GetMagnetUrl(XElement item)
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly Regex ParseSeedersRegex = new Regex(@"(Seeder)s?:\s+(?<value>\d+)|(?<value>\d+)\s+(seeder)s?", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
private static readonly Regex ParseSeedersRegex = new Regex(@"(Seeder)s?:\s+(?<value>\d+)|(?<value>\d+)\s+(seeder)s?", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||||
private static readonly Regex ParsePeersRegex = new Regex(@"(Leecher|Peer)s?:\s+(?<value>\d+)|(?<value>\d+)\s+(leecher|peer)s?", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
private static readonly Regex ParseLeechersRegex = new Regex(@"(Leecher)s?:\s+(?<value>\d+)|(?<value>\d+)\s+(leecher)s?", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||||
|
private static readonly Regex ParsePeersRegex = new Regex(@"(Peer)s?:\s+(?<value>\d+)|(?<value>\d+)\s+(peer)s?", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue