diff --git a/src/Jackett.Common/Indexers/SubsPlease.cs b/src/Jackett.Common/Indexers/SubsPlease.cs index 8a1ada798..3269d2054 100644 --- a/src/Jackett.Common/Indexers/SubsPlease.cs +++ b/src/Jackett.Common/Indexers/SubsPlease.cs @@ -7,6 +7,7 @@ using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; +using AngleSharp.Text; using Jackett.Common.Models; using Jackett.Common.Models.IndexerConfig; using Jackett.Common.Services.Interfaces; @@ -156,17 +157,21 @@ namespace Jackett.Common.Indexers release.MagnetUri = new Uri(d.Magnet); release.Link = null; release.Guid = new Uri(d.Magnet); - - // The API doesn't tell us file size, so give an estimate based on resolution - if (string.Equals(d.Res, "1080")) - release.Size = 1395864371; // 1.3GB - else if (string.Equals(d.Res, "720")) - release.Size = 734003200; // 700MB - else if (string.Equals(d.Res, "480")) - release.Size = 367001600; // 350MB + Match sizeMatch = Regex.Match(d.Magnet, "&xl=\\d+"); + if (sizeMatch.Success) + release.Size = ParseUtil.CoerceLong(sizeMatch.Value.Replace("&xl=", string.Empty)); else - release.Size = 1073741824; // 1GB - + { + // The API doesn't tell us file size, so give an estimate based on resolution + if (string.Equals(d.Res, "1080")) + release.Size = 1395864371; // 1.3GB + else if (string.Equals(d.Res, "720")) + release.Size = 734003200; // 700MB + else if (string.Equals(d.Res, "480")) + release.Size = 367001600; // 350MB + else + release.Size = 1073741824; // 1GB + } releaseInfo.Add(release); } }