parent
771e366441
commit
5fc4cd29a3
@ -1,74 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Indexers.NzbClub
|
|
||||||
{
|
|
||||||
public class NzbClub : IndexerBase
|
|
||||||
{
|
|
||||||
public override string Name
|
|
||||||
{
|
|
||||||
get { return "NzbClub"; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public override bool EnableByDefault
|
|
||||||
{
|
|
||||||
get { return false; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IParseFeed Parser
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return new NzbClubParser();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<string> RecentFeed
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return new[]
|
|
||||||
{
|
|
||||||
String.Format("http://www.nzbclub.com/nzbfeed.aspx?ig=2&gid=102952&st=1&ns=1&q=%23a.b.teevee"),
|
|
||||||
String.Format("http://www.nzbclub.com/nzbfeed.aspx?ig=2&gid=5542&st=1&ns=1&q=")
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<string> GetEpisodeSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int episodeNumber)
|
|
||||||
{
|
|
||||||
var searchUrls = new List<string>();
|
|
||||||
|
|
||||||
foreach (var url in RecentFeed)
|
|
||||||
{
|
|
||||||
searchUrls.Add(String.Format("{0}+{1}+s{2:00}e{3:00}", url, seriesTitle, seasonNumber, episodeNumber));
|
|
||||||
}
|
|
||||||
|
|
||||||
return searchUrls;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<string> GetSeasonSearchUrls(string seriesTitle, int tvRageId, int seasonNumber, int offset)
|
|
||||||
{
|
|
||||||
var searchUrls = new List<string>();
|
|
||||||
|
|
||||||
foreach (var url in RecentFeed)
|
|
||||||
{
|
|
||||||
searchUrls.Add(String.Format("{0}+{1}+s{2:00}", url, seriesTitle, seasonNumber));
|
|
||||||
}
|
|
||||||
|
|
||||||
return searchUrls;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<string> GetDailyEpisodeSearchUrls(string seriesTitle, int tvRageId, DateTime date)
|
|
||||||
{
|
|
||||||
var searchUrls = new List<String>();
|
|
||||||
|
|
||||||
foreach (var url in RecentFeed)
|
|
||||||
{
|
|
||||||
searchUrls.Add(String.Format("{0}+{1}+{2:yyyy MM dd}", url, seriesTitle, date));
|
|
||||||
}
|
|
||||||
|
|
||||||
return searchUrls;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Xml.Linq;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Indexers.NzbClub
|
|
||||||
{
|
|
||||||
public class NzbClubParser : RssParserBase
|
|
||||||
{
|
|
||||||
|
|
||||||
private static readonly Regex SizeRegex = new Regex(@"(?:Size:)\s(?<size>\d+.\d+\s[g|m]i?[b])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
|
|
||||||
|
|
||||||
|
|
||||||
protected override long GetSize(XElement item)
|
|
||||||
{
|
|
||||||
var match = SizeRegex.Match(item.Description());
|
|
||||||
|
|
||||||
if (match.Success && match.Groups["size"].Success)
|
|
||||||
{
|
|
||||||
return ParseSize(match.Groups["size"].Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string GetTitle(XElement item)
|
|
||||||
{
|
|
||||||
var title = ParseHeader(item.Title());
|
|
||||||
|
|
||||||
if (String.IsNullOrWhiteSpace(title))
|
|
||||||
return item.Title();
|
|
||||||
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static readonly Regex[] HeaderRegex = new[]
|
|
||||||
{
|
|
||||||
new Regex(@"(?:\[.+\]\-\[.+\]\-\[.+\]\-\[)(?<nzbTitle>.+)(?:\]\-.+)",
|
|
||||||
RegexOptions.IgnoreCase),
|
|
||||||
|
|
||||||
new Regex(@"(?:\[.+\]\W+\[.+\]\W+\[.+\]\W+\"")(?<nzbTitle>.+)(?:\"".+)",
|
|
||||||
RegexOptions.IgnoreCase),
|
|
||||||
|
|
||||||
new Regex(@"(?:\[)(?<nzbTitle>.+)(?:\]\-.+)",
|
|
||||||
RegexOptions.IgnoreCase),
|
|
||||||
};
|
|
||||||
|
|
||||||
private static string ParseHeader(string header)
|
|
||||||
{
|
|
||||||
foreach (var regex in HeaderRegex)
|
|
||||||
{
|
|
||||||
var match = regex.Matches(header);
|
|
||||||
|
|
||||||
if (match.Count != 0)
|
|
||||||
return match[0].Groups["nzbTitle"].Value.Trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
return header;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string GetNzbInfoUrl(XElement item)
|
|
||||||
{
|
|
||||||
return item.Links().First();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string GetNzbUrl(XElement item)
|
|
||||||
{
|
|
||||||
var enclosure = item.Element("enclosure");
|
|
||||||
|
|
||||||
return enclosure.Attribute("url").Value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in new issue