From b8d0c75f7ec8ca44499902427cc36f93a839d159 Mon Sep 17 00:00:00 2001 From: KZ Date: Mon, 21 Sep 2015 19:58:17 +0100 Subject: [PATCH] ShowRSS should use raw title #173 --- src/Jackett/Indexers/ShowRSS.cs | 264 ++++++++++++++++---------------- 1 file changed, 132 insertions(+), 132 deletions(-) diff --git a/src/Jackett/Indexers/ShowRSS.cs b/src/Jackett/Indexers/ShowRSS.cs index 58d0b52d0..62638a65d 100644 --- a/src/Jackett/Indexers/ShowRSS.cs +++ b/src/Jackett/Indexers/ShowRSS.cs @@ -1,132 +1,132 @@ -using Jackett.Models; -using Jackett.Services; -using Jackett.Utils; -using Jackett.Utils.Clients; -using Newtonsoft.Json.Linq; -using NLog; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Text; -using System.Threading.Tasks; -using System.Web; -using System.Xml; -using Jackett.Models.IndexerConfig; - -namespace Jackett.Indexers -{ - public class ShowRSS : BaseIndexer, IIndexer - { - readonly static string defaultSiteLink = "http://showrss.info/"; - - private Uri BaseUri - { - get { return new Uri(configData.Url.Value); } - set { configData.Url.Value = value.ToString(); } - } - - private string SearchAllUrl { get { return BaseUri + "feeds/all.rss"; } } - - new ConfigurationDataUrl configData - { - get { return (ConfigurationDataUrl)base.configData; } - set { base.configData = value; } - } - - public ShowRSS(IIndexerManagerService i, Logger l, IWebClient wc, IProtectionService ps) - : base(name: "ShowRSS", - description: "showRSS is a service that allows you to keep track of your favorite TV shows", - link: defaultSiteLink, - caps: TorznabUtil.CreateDefaultTorznabTVCaps(), - manager: i, - client: wc, - logger: l, - p: ps, - configData: new ConfigurationDataUrl(defaultSiteLink)) - { - } - - public async Task ApplyConfiguration(JToken configJson) - { - configData.LoadValuesFromJson(configJson); - var releases = await PerformQuery(new TorznabQuery()); - - await ConfigureIfOK(string.Empty, releases.Count() > 0, () => - { - throw new Exception("Could not find releases from this URL"); - }); - - return IndexerConfigurationStatus.RequiresTesting; - } - - // Override to load legacy config format - public override void LoadFromSavedConfiguration(JToken jsonConfig) - { - if (jsonConfig is JObject) - { - BaseUri = new Uri(jsonConfig.Value("base_url")); - SaveConfig(); - IsConfigured = true; - return; - } - - base.LoadFromSavedConfiguration(jsonConfig); - } - - public override Task Download(Uri link) - { - throw new NotImplementedException(); - } - - public async Task> PerformQuery(TorznabQuery query) - { - var releases = new List(); - var episodeSearchUrl = string.Format(SearchAllUrl); - var result = await RequestStringWithCookiesAndRetry(episodeSearchUrl, string.Empty); - var xmlDoc = new XmlDocument(); - - try - { - xmlDoc.LoadXml(result.Content); - ReleaseInfo release; - string serie_title; - - foreach (XmlNode node in xmlDoc.GetElementsByTagName("item")) - { - release = new ReleaseInfo(); - - release.MinimumRatio = 1; - release.MinimumSeedTime = 172800; - - serie_title = node.SelectSingleNode("title").InnerText; - release.Title = serie_title; - - release.Comments = new Uri(node.SelectSingleNode("link").InnerText); - int category = 0; - int.TryParse(node.SelectSingleNode("title").InnerText, out category); - release.Category = category; - var test = node.SelectSingleNode("enclosure"); - release.Guid = new Uri(test.Attributes["url"].Value); - release.PublishDate = DateTime.Parse(node.SelectSingleNode("pubDate").InnerText, CultureInfo.InvariantCulture); - - release.Description = node.SelectSingleNode("description").InnerText; - release.InfoHash = node.SelectSingleNode("description").InnerText; - release.Size = 0; - release.Seeders = 1; - release.Peers = 1; - release.MagnetUri = new Uri(node.SelectSingleNode("link").InnerText); - releases.Add(release); - } - } - catch (Exception ex) - { - OnParseError(result.Content, ex); - } - - return releases; - } - } -} +using Jackett.Models; +using Jackett.Services; +using Jackett.Utils; +using Jackett.Utils.Clients; +using Newtonsoft.Json.Linq; +using NLog; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; +using System.Web; +using System.Xml; +using Jackett.Models.IndexerConfig; + +namespace Jackett.Indexers +{ + public class ShowRSS : BaseIndexer, IIndexer + { + readonly static string defaultSiteLink = "http://showrss.info/"; + + private Uri BaseUri + { + get { return new Uri(configData.Url.Value); } + set { configData.Url.Value = value.ToString(); } + } + + private string SearchAllUrl { get { return BaseUri + "feeds/all.rss"; } } + + new ConfigurationDataUrl configData + { + get { return (ConfigurationDataUrl)base.configData; } + set { base.configData = value; } + } + + public ShowRSS(IIndexerManagerService i, Logger l, IWebClient wc, IProtectionService ps) + : base(name: "ShowRSS", + description: "showRSS is a service that allows you to keep track of your favorite TV shows", + link: defaultSiteLink, + caps: TorznabUtil.CreateDefaultTorznabTVCaps(), + manager: i, + client: wc, + logger: l, + p: ps, + configData: new ConfigurationDataUrl(defaultSiteLink)) + { + } + + public async Task ApplyConfiguration(JToken configJson) + { + configData.LoadValuesFromJson(configJson); + var releases = await PerformQuery(new TorznabQuery()); + + await ConfigureIfOK(string.Empty, releases.Count() > 0, () => + { + throw new Exception("Could not find releases from this URL"); + }); + + return IndexerConfigurationStatus.RequiresTesting; + } + + // Override to load legacy config format + public override void LoadFromSavedConfiguration(JToken jsonConfig) + { + if (jsonConfig is JObject) + { + BaseUri = new Uri(jsonConfig.Value("base_url")); + SaveConfig(); + IsConfigured = true; + return; + } + + base.LoadFromSavedConfiguration(jsonConfig); + } + + public override Task Download(Uri link) + { + throw new NotImplementedException(); + } + + public async Task> PerformQuery(TorznabQuery query) + { + var releases = new List(); + var episodeSearchUrl = string.Format(SearchAllUrl); + var result = await RequestStringWithCookiesAndRetry(episodeSearchUrl, string.Empty); + var xmlDoc = new XmlDocument(); + + try + { + xmlDoc.LoadXml(result.Content); + ReleaseInfo release; + string serie_title; + + foreach (XmlNode node in xmlDoc.GetElementsByTagName("item")) + { + release = new ReleaseInfo(); + + release.MinimumRatio = 1; + release.MinimumSeedTime = 172800; + + serie_title = node.SelectSingleNode(".//*[local-name()='rawtitle']").InnerText; + release.Title = serie_title; + + release.Comments = new Uri(node.SelectSingleNode("link").InnerText); + int category = 0; + int.TryParse(node.SelectSingleNode("title").InnerText, out category); + release.Category = category; + var test = node.SelectSingleNode("enclosure"); + release.Guid = new Uri(test.Attributes["url"].Value); + release.PublishDate = DateTime.Parse(node.SelectSingleNode("pubDate").InnerText, CultureInfo.InvariantCulture); + + release.Description = node.SelectSingleNode("description").InnerText; + release.InfoHash = node.SelectSingleNode("description").InnerText; + release.Size = 0; + release.Seeders = 1; + release.Peers = 1; + release.MagnetUri = new Uri(node.SelectSingleNode("link").InnerText); + releases.Add(release); + } + } + catch (Exception ex) + { + OnParseError(result.Content, ex); + } + + return releases; + } + } +}