2013-04-07 07:30:37 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.ServiceModel.Syndication;
|
|
|
|
|
using NzbDrone.Core.Model;
|
2013-04-15 01:41:39 +00:00
|
|
|
|
using NzbDrone.Core.Parser;
|
|
|
|
|
using NzbDrone.Core.Parser.Model;
|
2013-04-07 07:30:37 +00:00
|
|
|
|
|
|
|
|
|
namespace NzbDrone.Core.Indexers.Newznab
|
|
|
|
|
{
|
|
|
|
|
public class NewznabParser : BasicRssParser
|
|
|
|
|
{
|
|
|
|
|
private readonly Newznab _newznabIndexer;
|
|
|
|
|
|
|
|
|
|
public NewznabParser(Newznab newznabIndexer)
|
|
|
|
|
{
|
|
|
|
|
_newznabIndexer = newznabIndexer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override string GetNzbInfoUrl(SyndicationItem item)
|
|
|
|
|
{
|
|
|
|
|
return item.Id;
|
|
|
|
|
}
|
|
|
|
|
|
2013-04-15 01:41:39 +00:00
|
|
|
|
protected override ReportInfo PostProcessor(SyndicationItem item, ReportInfo currentResult)
|
2013-04-07 07:30:37 +00:00
|
|
|
|
{
|
|
|
|
|
if (currentResult != null)
|
|
|
|
|
{
|
|
|
|
|
if (item.Links.Count > 1)
|
|
|
|
|
currentResult.Size = item.Links[1].Length;
|
|
|
|
|
|
|
|
|
|
currentResult.Indexer = GetName(item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return currentResult;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private string GetName(SyndicationItem item)
|
|
|
|
|
{
|
|
|
|
|
var hostname = item.Links[0].Uri.DnsSafeHost.ToLower();
|
|
|
|
|
return String.Format("{0}_{1}", _newznabIndexer.Name, hostname);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|