You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.3 KiB
48 lines
1.3 KiB
11 years ago
|
using System;
|
||
|
using System.Xml.Linq;
|
||
|
using NLog;
|
||
|
using NzbDrone.Core.Parser.Model;
|
||
|
|
||
|
namespace NzbDrone.Core.Indexers
|
||
|
{
|
||
|
public class BasicTorrentRssParser : RssParserBase
|
||
|
{
|
||
|
protected override ReleaseInfo CreateNewReleaseInfo()
|
||
|
{
|
||
|
return new TorrentInfo();
|
||
|
}
|
||
|
|
||
|
protected override ReleaseInfo PostProcessor(XElement item, ReleaseInfo currentResult)
|
||
|
{
|
||
|
var torrentInfo = (TorrentInfo)currentResult;
|
||
|
|
||
|
torrentInfo.MagnetUrl = MagnetUrl(item);
|
||
|
torrentInfo.InfoHash = InfoHash(item);
|
||
|
|
||
|
return torrentInfo;
|
||
|
}
|
||
|
|
||
|
protected override long GetSize(XElement item)
|
||
|
{
|
||
|
var elementLength = GetTorrentElement(item).Element("contentLength");
|
||
|
return Convert.ToInt64(elementLength.Value);
|
||
|
}
|
||
|
|
||
|
protected virtual string MagnetUrl(XElement item)
|
||
|
{
|
||
|
var elementLength = GetTorrentElement(item).Element("magnetURI");
|
||
|
return elementLength.Value;
|
||
|
}
|
||
|
|
||
|
protected virtual string InfoHash(XElement item)
|
||
|
{
|
||
|
var elementLength = GetTorrentElement(item).Element("infoHash");
|
||
|
return elementLength.Value;
|
||
|
}
|
||
|
|
||
|
private static XElement GetTorrentElement(XElement item)
|
||
|
{
|
||
|
return item.Element("torrent");
|
||
|
}
|
||
|
}
|
||
|
}
|