diff --git a/src/Jackett.Common/Indexers/ShowRSS.cs b/src/Jackett.Common/Indexers/ShowRSS.cs index c9fa9d805..38f861539 100644 --- a/src/Jackett.Common/Indexers/ShowRSS.cs +++ b/src/Jackett.Common/Indexers/ShowRSS.cs @@ -20,8 +20,9 @@ namespace Jackett.Common.Indexers public class ShowRSS : BaseWebIndexer { private string SearchAllUrl => SiteLink + "other/all.rss"; + private string BrowseUrl => SiteLink + "browse/"; public override string[] LegacySiteLinks { get; protected set; } = { - "http://showrss.info/", + "http://showrss.info/" }; private new ConfigurationData configData => base.configData; @@ -54,8 +55,6 @@ namespace Jackett.Common.Indexers return IndexerConfigurationStatus.RequiresTesting; } - public override Task Download(Uri link) => throw new NotImplementedException(); - protected override async Task> PerformQuery(TorznabQuery query) { var releases = new List(); @@ -68,44 +67,43 @@ namespace Jackett.Common.Indexers xmlDoc.LoadXml(result.ContentString); foreach (XmlNode node in xmlDoc.GetElementsByTagName("item")) { - //TODO revisit for refactoring var title = node.SelectSingleNode(".//*[local-name()='raw_title']").InnerText; - if ((!query.IsImdbQuery || !TorznabCaps.SupportsImdbMovieSearch) && - !query.MatchQueryStringAND(title)) + if (!query.MatchQueryStringAND(title)) continue; - // Try to guess the category... I'm not proud of myself... - var category = title.Contains("720p") ? TorznabCatType.TVHD.ID : TorznabCatType.TVSD.ID; - var test = node.SelectSingleNode("enclosure"); - var magnetUri = new Uri(node.SelectSingleNode("link").InnerText); + // guess category from title + var category = title.Contains("720p") || title.Contains("1080p") ? + TorznabCatType.TVHD.ID : + TorznabCatType.TVSD.ID; + + var magnetUri = new Uri(node.SelectSingleNode("link")?.InnerText); var publishDate = DateTime.Parse(node.SelectSingleNode("pubDate").InnerText, CultureInfo.InvariantCulture); - var infoHash = node.SelectSingleNode("description").InnerText; - //TODO Maybe use magnetUri instead? https://github.com/Jackett/Jackett/pull/7342#discussion_r397552678 - var guid = new Uri(test.Attributes["url"].Value); + var infoHash = node.SelectSingleNode(".//*[local-name()='info_hash']").InnerText; + var commentsUri = new Uri(BrowseUrl + node.SelectSingleNode(".//*[local-name()='show_id']").InnerText); + var release = new ReleaseInfo { - MinimumRatio = 1, - MinimumSeedTime = 172800, // 48 hours Title = title, - Comments = magnetUri, + Comments = commentsUri, Category = new List { category }, - Guid = guid, + Guid = magnetUri, PublishDate = publishDate, - Description = infoHash, InfoHash = infoHash, MagnetUri = magnetUri, Size = 0, Seeders = 1, Peers = 2, DownloadVolumeFactor = 0, - UploadVolumeFactor = 1 + UploadVolumeFactor = 1, + MinimumRatio = 1, + MinimumSeedTime = 172800, // 48 hours }; releases.Add(release); } } - catch (Exception ex) + catch (Exception e) { - OnParseError(result.ContentString, ex); + OnParseError(result.ContentString, e); } return releases;