Merge + Download Settings UI Fixes.

pull/4/head
Mark McDowall 14 years ago
parent e4d208883a
commit deb7f9d811

1
.gitignore vendored

@ -33,3 +33,4 @@ _ReSharper*/
#NZBDrone specific #NZBDrone specific
*.db *.db
*Web.Publish.xml *Web.Publish.xml
NzbDrone.Web/NzbDrone.Web.Publish.xml

@ -1,206 +0,0 @@
using System;
using System.Linq;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq.Expressions;
using AutoMoq;
using FizzWare.NBuilder;
using MbUnit.Framework;
using Moq;
using NzbDrone.Core.Model;
using NzbDrone.Core.Providers;
using NzbDrone.Core.Repository;
using NzbDrone.Core.Repository.Quality;
using SubSonic.Repository;
using TvdbLib.Data;
namespace NzbDrone.Core.Test
{
[TestFixture]
// ReSharper disable InconsistentNaming
public class EpisodeProviderTest
{
[Test]
public void RefreshEpisodeInfo()
{
//Arrange
const int seriesId = 71663;
const int episodeCount = 10;
var fakeEpisodes = Builder<TvdbSeries>.CreateNew().With(
c => c.Episodes =
new List<TvdbEpisode>(Builder<TvdbEpisode>.CreateListOfSize(episodeCount).
WhereAll()
.Have(l => l.Language = new TvdbLanguage(0, "eng", "a"))
.Build())
).With(c => c.Id = seriesId).Build();
var mocker = new AutoMoqer();
mocker.SetConstant(MockLib.GetEmptyRepository());
mocker.GetMock<TvDbProvider>()
.Setup(c => c.GetSeries(seriesId, true))
.Returns(fakeEpisodes).Verifiable();
//mocker.GetMock<IRepository>().SetReturnsDefault();
//Act
var sw = Stopwatch.StartNew();
mocker.Resolve<EpisodeProvider>().RefreshEpisodeInfo(seriesId);
var actualCount = mocker.Resolve<EpisodeProvider>().GetEpisodeBySeries(seriesId);
//Assert
mocker.GetMock<TvDbProvider>().VerifyAll();
Assert.Count(episodeCount, actualCount);
Console.WriteLine("Duration: " + sw.Elapsed);
}
[Test]
//Should Download
[Row(QualityTypes.TV, true, QualityTypes.TV, false, true)]
[Row(QualityTypes.DVD, true, QualityTypes.TV, true, true)]
[Row(QualityTypes.DVD, true, QualityTypes.TV, true, true)]
//Should Skip
[Row(QualityTypes.Bluray720, true, QualityTypes.Bluray1080, false, false)]
[Row(QualityTypes.TV, true, QualityTypes.HDTV, true, false)]
public void Is_Needed_Tv_Dvd_BluRay_BluRay720_Is_Cutoff(QualityTypes reportQuality, Boolean isReportProper, QualityTypes fileQuality, Boolean isFileProper, bool excpected)
{
//Setup
var parseResult = new EpisodeParseResult
{
SeriesId = 12,
SeasonNumber = 2,
Episodes = new List<int> { 3 },
Quality = reportQuality,
Proper = isReportProper
};
var epFile = new EpisodeFile
{
Proper = isFileProper,
Quality = fileQuality
};
var episodeInfo = new Episode
{
SeriesId = 12,
SeasonNumber = 2,
EpisodeNumber = 3,
Series = new Series { QualityProfileId = 1 },
EpisodeFile = epFile
};
var seriesQualityProfile = new QualityProfile
{
Allowed = new List<QualityTypes> { QualityTypes.TV, QualityTypes.DVD, QualityTypes.Bluray720, QualityTypes.Bluray1080 },
Cutoff = QualityTypes.Bluray720,
Name = "TV/DVD",
};
var mocker = new AutoMoqer();
mocker.GetMock<IRepository>()
.Setup(r => r.Single(It.IsAny<Expression<Func<Episode, Boolean>>>()))
.Returns(episodeInfo);
mocker.GetMock<QualityProvider>()
.Setup(q => q.Find(1))
.Returns(seriesQualityProfile);
var result = mocker.Resolve<EpisodeProvider>().IsNeeded(parseResult);
Assert.AreEqual(excpected, result);
}
[Test]
public void get_episode_by_parse_result()
{
var mocker = new AutoMoqer();
var repo = MockLib.GetEmptyRepository();
var fakeEpisodes = MockLib.GetFakeEpisodes(2);
repo.AddMany(fakeEpisodes);
mocker.SetConstant(repo);
var targetEpisode = fakeEpisodes[4];
var parseResult1 = new EpisodeParseResult
{
SeriesId = targetEpisode.SeriesId,
SeasonNumber = targetEpisode.SeasonNumber,
Episodes = new List<int> { targetEpisode.EpisodeNumber },
Quality = QualityTypes.DVD
};
var result = mocker.Resolve<EpisodeProvider>().GetEpisodeByParseResult(parseResult1);
Assert.Count(1, result);
Assert.AreEqual(targetEpisode.EpisodeId, result.First().EpisodeId);
Assert.AreEqual(targetEpisode.EpisodeNumber, result.First().EpisodeNumber);
Assert.AreEqual(targetEpisode.SeasonNumber, result.First().SeasonNumber);
Assert.AreEqual(targetEpisode.SeriesId, result.First().SeriesId);
}
[Test]
public void Missing_episode_should_be_added()
{
//Setup
var parseResult1 = new EpisodeParseResult
{
SeriesId = 12,
SeasonNumber = 2,
Episodes = new List<int> { 3 },
Quality = QualityTypes.DVD
};
var parseResult2 = new EpisodeParseResult
{
SeriesId = 12,
SeasonNumber = 3,
Episodes = new List<int> { 3 },
Quality = QualityTypes.DVD
};
var mocker = new AutoMoqer();
mocker.SetConstant(MockLib.GetEmptyRepository());
var episodeProvider = mocker.Resolve<EpisodeProvider>();
var result1 = episodeProvider.IsNeeded(parseResult1);
var result2 = episodeProvider.IsNeeded(parseResult2);
var episodes = episodeProvider.GetEpisodeBySeries(12);
Assert.IsTrue(result1);
Assert.IsTrue(result2);
Assert.IsNotEmpty(episodes);
Assert.Count(2, episodes);
}
[Test]
[Explicit]
public void Add_daily_show_episodes()
{
var mocker = new AutoMoqer();
mocker.SetConstant(MockLib.GetEmptyRepository());
mocker.Resolve<TvDbProvider>();
const int tvDbSeriesId = 71256;
//act
var seriesProvider = mocker.Resolve<SeriesProvider>();
seriesProvider.AddSeries("c:\\test\\", tvDbSeriesId, 0);
var episodeProvider = mocker.Resolve<EpisodeProvider>();
episodeProvider.RefreshEpisodeInfo(tvDbSeriesId);
//assert
var episodes = episodeProvider.GetEpisodeBySeries(tvDbSeriesId);
Assert.IsNotEmpty(episodes);
}
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,512 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<generator>NZBMatrix.com RSS 2.0</generator>
<language>en</language>
<title>NZBMatrix</title>
<description>NZBMatrix.com RSS Feed - Usenet</description>
<link>http://nzbmatrix.com</link>
<copyright>Copyright 2011 NZBMatrix</copyright>
<pubDate>Mon, 25 Apr 2011 18:09:40 +0200</pubDate>
<item>
<title>The New Inventors Save Water Special DVDRip XviD SPRiNTER</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914525&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914525&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> The New Inventors Save Water Special DVDRip XviD SPRiNTER<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 1.58 GB<br /><b>Added:</b> 2011-04-25 15:12:38<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914525">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914525&amp;hit=1" length="1692590407" type="application/x-nzb" />
</item>
<item>
<title>House S04E11 FRENCH 720p HDTV x264 BAWLS</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914522&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914522&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> House S04E11 FRENCH 720p HDTV x264 BAWLS<br /><b>Category:</b> TV: HD<br /><b>Size:</b> 1.24 GB<br /><b>Added:</b> 2011-04-25 15:06:58<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914522">View NFO</a> ]]></description>
<category>TV: HD</category>
<cattext>tv.hd</cattext>
<categoryid>41</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914522&amp;hit=1" length="1335801937" type="application/x-nzb" />
</item>
<item>
<title>House S04E10 FRENCH 720p HDTV x264 BAWLS</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914520&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914520&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> House S04E10 FRENCH 720p HDTV x264 BAWLS<br /><b>Category:</b> TV: HD<br /><b>Size:</b> 1.24 GB<br /><b>Added:</b> 2011-04-25 15:06:25<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914520">View NFO</a> ]]></description>
<category>TV: HD</category>
<cattext>tv.hd</cattext>
<categoryid>41</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914520&amp;hit=1" length="1335833395" type="application/x-nzb" />
</item>
<item>
<title>House S04E09 FRENCH 720p HDTV x264 BAWLS</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914518&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914518&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> House S04E09 FRENCH 720p HDTV x264 BAWLS<br /><b>Category:</b> TV: HD<br /><b>Size:</b> 1.24 GB<br /><b>Added:</b> 2011-04-25 15:05:26<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914518">View NFO</a> ]]></description>
<category>TV: HD</category>
<cattext>tv.hd</cattext>
<categoryid>41</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914518&amp;hit=1" length="1335613194" type="application/x-nzb" />
</item>
<item>
<title>Breakout Kings S01E08 Steaks 720p WEB DL DD5 1 H 264 EbP</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914497&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914497&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Breakout Kings S01E08 Steaks 720p WEB DL DD5 1 H 264 EbP<br /><b>Category:</b> TV: HD<br /><b>Size:</b> 1.48 GB<br /><b>Added:</b> 2011-04-25 14:16:41<br /><b>Group:</b> alt.binaries.hdtv ]]></description>
<category>TV: HD</category>
<cattext>tv.hd</cattext>
<categoryid>41</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914497&amp;hit=1" length="1592283627" type="application/x-nzb" />
</item>
<item>
<title>Melrose Place 2009 S01E11 FRENCH 720p HDTV x264 HTO</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914492&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914492&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Melrose Place 2009 S01E11 FRENCH 720p HDTV x264 HTO<br /><b>Category:</b> TV: HD<br /><b>Size:</b> 1.29 GB<br /><b>Added:</b> 2011-04-25 13:59:22<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914492">View NFO</a> ]]></description>
<category>TV: HD</category>
<cattext>tv.hd</cattext>
<categoryid>41</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914492&amp;hit=1" length="1381614223" type="application/x-nzb" />
</item>
<item>
<title>WTCC 2011 Belgie Race2 DUTCH HDTV XViD NSN</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914489&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914489&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> WTCC 2011 Belgie Race2 DUTCH HDTV XViD NSN<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 810.83 MB<br /><b>Added:</b> 2011-04-25 13:54:56<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914489">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914489&amp;hit=1" length="850216878" type="application/x-nzb" />
</item>
<item>
<title>WTCC 2011 Belgie Race1 DUTCH HDTV XViD NSN</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914487&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914487&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> WTCC 2011 Belgie Race1 DUTCH HDTV XViD NSN<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 812.25 MB<br /><b>Added:</b> 2011-04-25 13:52:41<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914487">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914487&amp;hit=1" length="851705856" type="application/x-nzb" />
</item>
<item>
<title>Misfits S02E04 FRENCH LD DVDRip XviD JMT</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914478&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914478&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Misfits S02E04 FRENCH LD DVDRip XviD JMT<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 411.96 MB<br /><b>Added:</b> 2011-04-25 13:33:59<br /><b>Group:</b> alt.binaries.multimedia ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914478&amp;hit=1" length="431971368" type="application/x-nzb" />
</item>
<item>
<title>The Benson Interruption S01E01</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914475&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914475&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> The Benson Interruption S01E01<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 270.59 MB<br /><b>Added:</b> 2011-04-25 13:24:57<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914475">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914475&amp;hit=1" length="283734179" type="application/x-nzb" />
</item>
<item>
<title>Car Warriors S01E08 HDTV XviD CRiMSON</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914441&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914441&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Car Warriors S01E08 HDTV XviD CRiMSON<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 398.51 MB<br /><b>Added:</b> 2011-04-25 12:04:29<br /><b>Group:</b> alt.binaries.teevee ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914441&amp;hit=1" length="417868021" type="application/x-nzb" />
</item>
<item>
<title>NBA 23 04 2011 WCQF G4 Mavericks vs Blazers</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914433&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914433&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> NBA 23 04 2011 WCQF G4 Mavericks vs Blazers<br /><b>Category:</b> TV: Sport/Ent<br /><b>Size:</b> 2.52 GB<br /><b>Added:</b> 2011-04-25 11:50:47<br /><b>Group:</b> alt.binaries.boneless ]]></description>
<category>TV: Sport/Ent</category>
<cattext>tv.sport/ent</cattext>
<categoryid>7</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914433&amp;hit=1" length="2703952445" type="application/x-nzb" />
</item>
<item>
<title>Supernatural S06E18 Frontierland German Custom Subbed WS HDTV XviD iNTERNAL BaCKToRG</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914432&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914432&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Supernatural S06E18 Frontierland German Custom Subbed WS HDTV XviD iNTERNAL BaCKToRG<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 399.38 MB<br /><b>Added:</b> 2011-04-25 11:49:23<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914432">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914432&amp;hit=1" length="418780282" type="application/x-nzb" />
</item>
<item>
<title>Supernatural S06E17 My Heart Will Go On German Custom Subbed WS HDTV XviD iNTERNAL BaCKToRG</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914427&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914427&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Supernatural S06E17 My Heart Will Go On German Custom Subbed WS HDTV XviD iNTERNAL BaCKToRG<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 399.32 MB<br /><b>Added:</b> 2011-04-25 11:47:26<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914427">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914427&amp;hit=1" length="418717368" type="application/x-nzb" />
</item>
<item>
<title>Fussball Bundesliga 2010 2011 30 Spieltag FC Bayern Muenchen vs Bayer 04 Leverkusen German WS dTV XviD WoGS</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914423&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914423&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Fussball Bundesliga 2010 2011 30 Spieltag FC Bayern Muenchen vs Bayer 04 Leverkusen German WS dTV XviD WoGS<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 1.28 GB<br /><b>Added:</b> 2011-04-25 11:41:35<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914423">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914423&amp;hit=1" length="1377828864" type="application/x-nzb" />
</item>
<item>
<title>How I Met Your Mother S06E20 The Exploding Meatball Sub German Custom Subbed WS HDTV XviD iNTERNAL BaCKToRG</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914420&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914420&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> How I Met Your Mother S06E20 The Exploding Meatball Sub German Custom Subbed WS HDTV XviD iNTERNAL BaCKToRG<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 199.67 MB<br /><b>Added:</b> 2011-04-25 11:35:54<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914420">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914420&amp;hit=1" length="209369169" type="application/x-nzb" />
</item>
<item>
<title>Desperate Housewives S07E18 Moments in the Woods German Custom Subbed WS HDTV XviD iNTERNAL BaCKToRG</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914418&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914418&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Desperate Housewives S07E18 Moments in the Woods German Custom Subbed WS HDTV XviD iNTERNAL BaCKToRG<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 399.33 MB<br /><b>Added:</b> 2011-04-25 11:34:59<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914418">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914418&amp;hit=1" length="418727854" type="application/x-nzb" />
</item>
<item>
<title>UR Samtiden Darfor Stannar Unga Inom Idrotten 2011 SWEDiSH WS PDTV XviD DiSCUSSET</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914410&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914410&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> UR Samtiden Darfor Stannar Unga Inom Idrotten 2011 SWEDiSH WS PDTV XviD DiSCUSSET<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 428.24 MB<br /><b>Added:</b> 2011-04-25 11:23:04<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914410">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914410&amp;hit=1" length="449042186" type="application/x-nzb" />
</item>
<item>
<title>The Sunday Footy Show 2011 04 24 WS PDTV XviD WLT</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914409&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914409&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> The Sunday Footy Show 2011 04 24 WS PDTV XviD WLT<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 387.34 MB<br /><b>Added:</b> 2011-04-25 11:20:29<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914409">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914409&amp;hit=1" length="406155427" type="application/x-nzb" />
</item>
<item>
<title>The Sunday Roast 2011 04 24 WS PDTV XviD WLT</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914407&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914407&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> The Sunday Roast 2011 04 24 WS PDTV XviD WLT<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 387.49 MB<br /><b>Added:</b> 2011-04-25 11:19:33<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914407">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914407&amp;hit=1" length="406312714" type="application/x-nzb" />
</item>
<item>
<title>Punky Brewster S02 iNTERNAL DVDRip XviD RUNNER</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914406&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914406&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Punky Brewster S02 iNTERNAL DVDRip XviD RUNNER<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 4.41 GB<br /><b>Added:</b> 2011-04-25 11:19:30<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914406">View NFO</a> <BR /><b>IMDB Link:</b> <a href="http://www.imdb.com/title/tt0086787/">Go To IMDB</a>]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914406&amp;hit=1" length="437801451" type="application/x-nzb" />
</item>
<item>
<title>Punky Brewster S01 iNTERNAL DVDRip XviD RUNNER</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914404&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914404&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Punky Brewster S01 iNTERNAL DVDRip XviD RUNNER<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 4.69 GB<br /><b>Added:</b> 2011-04-25 11:17:43<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914404">View NFO</a> <BR /><b>IMDB Link:</b> <a href="http://www.imdb.com/title/tt0086787/">Go To IMDB</a>]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914404&amp;hit=1" length="743482327" type="application/x-nzb" />
</item>
<item>
<title>The Only Way Is Essex S02E11 WS PDTV XviD CiA</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914385&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914385&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> The Only Way Is Essex S02E11 WS PDTV XviD CiA<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 329.12 MB<br /><b>Added:</b> 2011-04-25 10:49:28<br /><b>Group:</b> alt.binaries.matrix <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914385">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914385&amp;hit=1" length="345107333" type="application/x-nzb" />
</item>
<item>
<title>The 7pm Project 2011 04 25 Kath Robinson WS PDTV XviD FQM</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914384&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914384&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> The 7pm Project 2011 04 25 Kath Robinson WS PDTV XviD FQM<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 198.78 MB<br /><b>Added:</b> 2011-04-25 10:49:06<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914384">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914384&amp;hit=1" length="208435937" type="application/x-nzb" />
</item>
<item>
<title>Hawthorne S02E06 FRENCH 720p HDTV x264 BAWLS</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914378&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914378&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Hawthorne S02E06 FRENCH 720p HDTV x264 BAWLS<br /><b>Category:</b> TV: HD<br /><b>Size:</b> 1.29 GB<br /><b>Added:</b> 2011-04-25 10:41:49<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914378">View NFO</a> ]]></description>
<category>TV: HD</category>
<cattext>tv.hd</cattext>
<categoryid>41</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914378&amp;hit=1" length="1381624709" type="application/x-nzb" />
</item>
<item>
<title>Saving Grace S03E15 FRENCH 720p HDTV x264 BAWLS</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914377&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914377&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Saving Grace S03E15 FRENCH 720p HDTV x264 BAWLS<br /><b>Category:</b> TV: HD<br /><b>Size:</b> 1.28 GB<br /><b>Added:</b> 2011-04-25 10:41:05<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914377">View NFO</a> ]]></description>
<category>TV: HD</category>
<cattext>tv.hd</cattext>
<categoryid>41</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914377&amp;hit=1" length="1373854760" type="application/x-nzb" />
</item>
<item>
<title>Hawthorne S02E06 FRENCH HDTV XViD BAWLS</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914374&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914374&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Hawthorne S02E06 FRENCH HDTV XViD BAWLS<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 376.16 MB<br /><b>Added:</b> 2011-04-25 10:40:06<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914374">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914374&amp;hit=1" length="394432348" type="application/x-nzb" />
</item>
<item>
<title>Saving Grace S03E15 FRENCH HDTV XViD BAWLS</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914373&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914373&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Saving Grace S03E15 FRENCH HDTV XViD BAWLS<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 406.52 MB<br /><b>Added:</b> 2011-04-25 10:38:50<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914373">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914373&amp;hit=1" length="426267115" type="application/x-nzb" />
</item>
<item>
<title>Saddle Ranch S01E02 Always Down to Party HDTV XviD MOMENTUM</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914363&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914363&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Saddle Ranch S01E02 Always Down to Party HDTV XviD MOMENTUM<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 199.83 MB<br /><b>Added:</b> 2011-04-25 10:20:58<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914363">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914363&amp;hit=1" length="209536942" type="application/x-nzb" />
</item>
<item>
<title>Saddle Ranch S01E02 720p HDTV x264 MOMENTUM</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914359&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914359&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Saddle Ranch S01E02 720p HDTV x264 MOMENTUM<br /><b>Category:</b> TV: HD<br /><b>Size:</b> 638.89 MB<br /><b>Added:</b> 2011-04-25 10:15:33<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914359">View NFO</a> ]]></description>
<category>TV: HD</category>
<cattext>tv.hd</cattext>
<categoryid>41</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914359&amp;hit=1" length="669924720" type="application/x-nzb" />
</item>
<item>
<title>The Killing S01E05 Super 8 720p WEB DL DD5 1 H 264 TB</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914354&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914354&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> The Killing S01E05 Super 8 720p WEB DL DD5 1 H 264 TB<br /><b>Category:</b> TV: HD<br /><b>Size:</b> 1.52 GB<br /><b>Added:</b> 2011-04-25 10:06:12<br /><b>Group:</b> alt.binaries.hdtv <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914354">View NFO</a> ]]></description>
<category>TV: HD</category>
<cattext>tv.hd</cattext>
<categoryid>41</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914354&amp;hit=1" length="1632024657" type="application/x-nzb" />
</item>
<item>
<title>NBA 23 04 2011 WCQF G3 Spurs vs Grizzlies</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914349&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914349&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> NBA 23 04 2011 WCQF G3 Spurs vs Grizzlies<br /><b>Category:</b> TV: Sport/Ent<br /><b>Size:</b> 2.68 GB<br /><b>Added:</b> 2011-04-25 09:45:52<br /><b>Group:</b> alt.binaries.boneless ]]></description>
<category>TV: Sport/Ent</category>
<cattext>tv.sport/ent</cattext>
<categoryid>7</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914349&amp;hit=1" length="2874608189" type="application/x-nzb" />
</item>
<item>
<title>NBA 23 04 2011 ECQF G4 Pacers vs Bulls</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914348&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914348&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> NBA 23 04 2011 ECQF G4 Pacers vs Bulls<br /><b>Category:</b> TV: Sport/Ent<br /><b>Size:</b> 2.17 GB<br /><b>Added:</b> 2011-04-25 09:44:47<br /><b>Group:</b> alt.binaries.boneless ]]></description>
<category>TV: Sport/Ent</category>
<cattext>tv.sport/ent</cattext>
<categoryid>7</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914348&amp;hit=1" length="2327262003" type="application/x-nzb" />
</item>
<item>
<title>The Real Housewives of Orange County S06E08 Kiss and Tell HDTV XviD MOMENTUM</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914347&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914347&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> The Real Housewives of Orange County S06E08 Kiss and Tell HDTV XviD MOMENTUM<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 398.70 MB<br /><b>Added:</b> 2011-04-25 09:27:23<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914347">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914347&amp;hit=1" length="418067251" type="application/x-nzb" />
</item>
<item>
<title>The Real Housewives of Orange County S06E08 720p HDTV x264 MOMENTUM</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914346&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914346&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> The Real Housewives of Orange County S06E08 720p HDTV x264 MOMENTUM<br /><b>Category:</b> TV: HD<br /><b>Size:</b> 1.27 GB<br /><b>Added:</b> 2011-04-25 09:15:39<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914346">View NFO</a> ]]></description>
<category>TV: HD</category>
<cattext>tv.hd</cattext>
<categoryid>41</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914346&amp;hit=1" length="1368412651" type="application/x-nzb" />
</item>
<item>
<title>EPL 2011 Bolton Wanderers Vs Arsenal 720p HDTV x264 FAIRPLAY</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914345&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914345&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> EPL 2011 Bolton Wanderers Vs Arsenal 720p HDTV x264 FAIRPLAY<br /><b>Category:</b> TV: Sport/Ent<br /><b>Size:</b> 2.49 GB<br /><b>Added:</b> 2011-04-25 09:13:32<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914345">View NFO</a> ]]></description>
<category>TV: Sport/Ent</category>
<cattext>tv.sport/ent</cattext>
<categoryid>7</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914345&amp;hit=1" length="2675546521" type="application/x-nzb" />
</item>
<item>
<title>Doctor Who Confidential Season 3</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914342&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914342&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Doctor Who Confidential Season 3<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 6.13 GB<br /><b>Added:</b> 2011-04-25 08:26:28<br /><b>Group:</b> alt.binaries.drwho ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914342&amp;hit=1" length="2286440939" type="application/x-nzb" />
</item>
<item>
<title>Doctor Who Confidential Season 2</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914341&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914341&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Doctor Who Confidential Season 2<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 5.85 GB<br /><b>Added:</b> 2011-04-25 08:25:33<br /><b>Group:</b> alt.binaries.drwho ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914341&amp;hit=1" length="1985583513" type="application/x-nzb" />
</item>
<item>
<title>Doctor Who Confidential Season 1</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914340&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914340&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Doctor Who Confidential Season 1<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 4.92 GB<br /><b>Added:</b> 2011-04-25 08:24:33<br /><b>Group:</b> alt.binaries.drwho ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914340&amp;hit=1" length="988261908" type="application/x-nzb" />
</item>
<item>
<title>Wipeout Canada S01E04 WS DSR XviD 2HD</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914337&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914337&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Wipeout Canada S01E04 WS DSR XviD 2HD<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 400.08 MB<br /><b>Added:</b> 2011-04-25 08:11:22<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914337">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914337&amp;hit=1" length="419514286" type="application/x-nzb" />
</item>
<item>
<title>NRL 2011 Round 7 Wests Tigers vs Brisbane Broncos WS PDTV XviD WLT</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914333&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914333&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> NRL 2011 Round 7 Wests Tigers vs Brisbane Broncos WS PDTV XviD WLT<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 1.26 GB<br /><b>Added:</b> 2011-04-25 07:43:40<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914333">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914333&amp;hit=1" length="1351834664" type="application/x-nzb" />
</item>
<item>
<title>Treme S02E01 Accentuate the Positive HDTV XviD FQM</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914332&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914332&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Treme S02E01 Accentuate the Positive HDTV XviD FQM<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 628.20 MB<br /><b>Added:</b> 2011-04-25 07:36:01<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914332">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914332&amp;hit=1" length="658715443" type="application/x-nzb" />
</item>
<item>
<title>Peppa Pig Potato City Vol 14 DVDRip XviD KiDDoS</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914329&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914329&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Peppa Pig Potato City Vol 14 DVDRip XviD KiDDoS<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 729.36 MB<br /><b>Added:</b> 2011-04-25 06:55:06<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914329">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914329&amp;hit=1" length="764789391" type="application/x-nzb" />
</item>
<item>
<title>Degrassi TNG S06 DVDRip XviD</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914328&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914328&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Degrassi TNG S06 DVDRip XviD<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 3.94 GB<br /><b>Added:</b> 2011-04-25 06:49:45<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914328">View NFO</a> <BR /><b>IMDB Link:</b> <a href="http://www.imdb.com/title/tt0288937/">Go To IMDB</a>]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914328&amp;hit=1" length="4230574243" type="application/x-nzb" />
</item>
<item>
<title>Degrassi The Next Generation S05 DVDRip XviD FFNDVD</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914327&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914327&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Degrassi The Next Generation S05 DVDRip XviD FFNDVD<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 3.86 GB<br /><b>Added:</b> 2011-04-25 06:48:50<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914327">View NFO</a> <BR /><b>IMDB Link:</b> <a href="http://www.imdb.com/title/tt0288937/">Go To IMDB</a>]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914327&amp;hit=1" length="4148187627" type="application/x-nzb" />
</item>
<item>
<title>Degrassi TNG S04 DVDRip XviD aAF</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914326&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914326&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Degrassi TNG S04 DVDRip XviD aAF<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 4.51 GB<br /><b>Added:</b> 2011-04-25 06:47:52<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914326">View NFO</a> <BR /><b>IMDB Link:</b> <a href="http://www.imdb.com/title/tt0288937/">Go To IMDB</a>]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914326&amp;hit=1" length="545228062" type="application/x-nzb" />
</item>
<item>
<title>Wipeout Canada S01E03 WS DSR XviD 2HD</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914325&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914325&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Wipeout Canada S01E03 WS DSR XviD 2HD<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 400.08 MB<br /><b>Added:</b> 2011-04-25 06:19:49<br /><b>Group:</b> alt.binaries.teevee <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914325">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914325&amp;hit=1" length="419514286" type="application/x-nzb" />
</item>
<item>
<title>Dichtbij Het Vuur S01E07 DUTCH WS PDTV XviD iFH</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914322&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914322&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Dichtbij Het Vuur S01E07 DUTCH WS PDTV XviD iFH<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 216.09 MB<br /><b>Added:</b> 2011-04-25 06:06:35<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914322">View NFO</a> ]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914322&amp;hit=1" length="226586787" type="application/x-nzb" />
</item>
<item>
<title>Acropolis Now S03 iNTERNAL DVDRip XviD RUNNER</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914321&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914321&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Acropolis Now S03 iNTERNAL DVDRip XviD RUNNER<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 2.56 GB<br /><b>Added:</b> 2011-04-25 06:05:50<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914321">View NFO</a> <BR /><b>IMDB Link:</b> <a href="http://www.imdb.com/title/tt0122333/">Go To IMDB</a>]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914321&amp;hit=1" length="2746723860" type="application/x-nzb" />
</item>
<item>
<title>Acropolis Now S02 iNTERNAL DVDRip XviD RUNNER</title>
<guid>http://nzbmatrix.com/nzb-details.php?id=914320&amp;hit=1</guid>
<link>http://nzbmatrix.com/nzb-details.php?id=914320&amp;hit=1</link>
<description><![CDATA[<b>Name:</b> Acropolis Now S02 iNTERNAL DVDRip XviD RUNNER<br /><b>Category:</b> TV: Divx/Xvid<br /><b>Size:</b> 2.56 GB<br /><b>Added:</b> 2011-04-25 06:03:08<br /><b>Group:</b> alt.binaries.multimedia <BR /><b>NFO:</b> <a href="http://nzbmatrix.com/viewnfo.php?id=914320">View NFO</a> <BR /><b>IMDB Link:</b> <a href="http://www.imdb.com/title/tt0122333/">Go To IMDB</a>]]></description>
<category>TV: Divx/Xvid</category>
<cattext>tv.divx/xvid</cattext>
<categoryid>6</categoryid>
<enclosure url="http://nzbmatrix.com/nzb-details.php?id=914320&amp;hit=1" length="2746619002" type="application/x-nzb" />
</item>
</channel>
</rss>

@ -0,0 +1,275 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0">
<channel>
<title>NZBsRus.com</title>
<description>This is the NZBs'R'US RSS feed.</description>
<link>http://www.nzbsrus.com</link>
<language>en-US</language>
<ttl>5</ttl>
<item>
<title>Portal_2_Update_1_Plus_3_Trainer-RazorDOX</title>
<pubDate>Mon, 25 Apr 2011 16:35:39 pm</pubDate>
<category>Games - PC DOX</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422411&amp;hit=1</link>
<description>
Size 1.25 MiB (10 files)
Files: 2
Par2s: 8
</description>
</item>
<item>
<title>Portal_2_Plus_3_Trainer-RazorDOX</title>
<pubDate>Mon, 25 Apr 2011 16:35:00 pm</pubDate>
<category>Games - PC DOX</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422410&amp;hit=1</link>
<description>
Size 1.17 MiB (11 files)
Files: 3
Par2s: 8
</description>
</item>
<item>
<title>The.New.Inventors.Save.Water.Special.DVDRip.XviD-SPRiNTER</title>
<pubDate>Mon, 25 Apr 2011 16:19:20 pm</pubDate>
<category>TV - XviD</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422409&amp;hit=1</link>
<description>
TV.com Rating: 7.5
Size 1.58 GiB (127 files)
Files: 106
Par2s: 21
</description>
</item>
<item>
<title>Season.25.Oprah.Behind.The.Scenes.E16.WS.DSR.XviD-sHoTV</title>
<pubDate>Mon, 25 Apr 2011 15:42:17 pm</pubDate>
<category>TV - XviD</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422408&amp;hit=1</link>
<description>
Size 398.98 MiB (32 files)
Files: 25
Par2s: 7
</description>
</item>
<item>
<title>[REQ] Hot Rod (2007)</title>
<pubDate>Mon, 25 Apr 2011 15:30:20 pm</pubDate>
<category>Movies - HD [720]</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422407&amp;hit=1</link>
<description>
IMDb Rating: 6.5
Size 5.00 GiB (105 files)
Files: 97
Par2s: 8
</description>
</item>
<item>
<title>Sniper Reloaded (2011) NTSC DVD5</title>
<pubDate>Mon, 25 Apr 2011 15:25:12 pm</pubDate>
<category>Movies - DVDr</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422406&amp;hit=1</link>
<description>
IMDb Rating: NYR
Size 5.54 GiB (119 files)
Files: 104
Par2s: 15
</description>
</item>
<item>
<title>Fable.2.Platinum.Edition.XBOX360-CLANDESTiNE</title>
<pubDate>Mon, 25 Apr 2011 15:11:41 pm</pubDate>
<category>Console - XBOX 360</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422404&amp;hit=1</link>
<description>
Size 7.25 GiB (89 files)
Files: 70
Par2s: 19
</description>
</item>
<item>
<title>BORDERLANDS.GOTY.EDiTiON.PAL.XBOX360-SHiTONLYGERMAN</title>
<pubDate>Mon, 25 Apr 2011 15:07:38 pm</pubDate>
<category>Console - XBOX 360</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422402&amp;hit=1</link>
<description>
Size 7.29 GiB (84 files)
Files: 71
Par2s: 13
</description>
</item>
<item>
<title>Sanctum.Update.1.and.2-SKIDROW</title>
<pubDate>Mon, 25 Apr 2011 15:03:00 pm</pubDate>
<category>Games - PC DOX</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422401&amp;hit=1</link>
<description>
Size 599.88 MiB (49 files)
Files: 41
Par2s: 8
</description>
</item>
<item>
<title>Babysitting.Mama.USA.WII-ProCiSiON</title>
<pubDate>Mon, 25 Apr 2011 14:55:01 pm</pubDate>
<category>Console - Wii</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422399&amp;hit=1</link>
<description>
Size 4.78 GiB (105 files)
Files: 95
Par2s: 10
</description>
</item>
<item>
<title>The_Aston_Shuffle-Seventeen_Past_Midnight-2011-OZM</title>
<pubDate>Mon, 25 Apr 2011 13:54:39 pm</pubDate>
<category>Music - MP3</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422398&amp;hit=1</link>
<description>
Size 104.28 MiB (23 files)
Files: 15
Par2s: 8
</description>
</item>
<item>
<title>[REQ] The.Wild.Life.1984.TVRip.XviD</title>
<pubDate>Mon, 25 Apr 2011 13:42:23 pm</pubDate>
<category>Movies - XviD</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422397&amp;hit=1</link>
<description>
IMDb Rating: 5.5
Size 792.58 MiB (25 files)
Files: 16
Par2s: 9
</description>
</item>
<item>
<title>MIKE TYSON HISTORY THE CAREER OF A LEGEND</title>
<pubDate>Mon, 25 Apr 2011 13:41:23 pm</pubDate>
<category>TV - DVDr</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422396&amp;hit=1</link>
<description>
Size 63.60 GiB (540 files)
Files: 399
Par2s: 141
</description>
</item>
<item>
<title>Car.Warriors.S01E08.HDTV.XviD-CRiMSON</title>
<pubDate>Mon, 25 Apr 2011 13:17:11 pm</pubDate>
<category>TV - XviD</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422395&amp;hit=1</link>
<description>
Size 398.51 MiB (34 files)
Files: 27
Par2s: 7
</description>
</item>
<item>
<title>The.Sunday.Footy.Show.2011.04.24.WS.PDTV.XviD-WLT</title>
<pubDate>Mon, 25 Apr 2011 13:14:30 pm</pubDate>
<category>TV - XviD</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422394&amp;hit=1</link>
<description>
Size 387.34 MiB (36 files)
Files: 27
Par2s: 9
</description>
</item>
<item>
<title>The.Sunday.Roast.2011.04.24.WS.PDTV.XviD-WLT</title>
<pubDate>Mon, 25 Apr 2011 13:14:02 pm</pubDate>
<category>TV - XviD</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422393&amp;hit=1</link>
<description>
Size 387.49 MiB (36 files)
Files: 27
Par2s: 9
</description>
</item>
<item>
<title>River.Monsters.S03E03.HDTV.XviD-CRiMSON</title>
<pubDate>Mon, 25 Apr 2011 13:13:22 pm</pubDate>
<category>TV - XviD</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422392&amp;hit=1</link>
<description>
Size 398.31 MiB (35 files)
Files: 28
Par2s: 7
</description>
</item>
<item>
<title>The.7pm.Project.2011.04.25.Kath.Robinson.WS.PDTV.XviD-FQM</title>
<pubDate>Mon, 25 Apr 2011 13:12:44 pm</pubDate>
<category>TV - XviD</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422391&amp;hit=1</link>
<description>
Size 198.78 MiB (22 files)
Files: 16
Par2s: 6
</description>
</item>
<item>
<title>Punky.Brewster.S02.iNTERNAL.DVDRip.XviD-RUNNER</title>
<pubDate>Mon, 25 Apr 2011 13:12:23 pm</pubDate>
<category>TV - XviD</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422390&amp;hit=1</link>
<description>
Size 4.38 GiB (497 files)
Files: 359
Par2s: 138
</description>
</item>
<item>
<title>Saddle.Ranch.S01E02.Always.Down.to.Party.HDTV.XviD-MOMENTUM</title>
<pubDate>Mon, 25 Apr 2011 13:11:31 pm</pubDate>
<category>TV - XviD</category>
<link>http://www.nzbsrus.com/nzbdetails.php?id=422389&amp;hit=1</link>
<description>
Size 199.83 MiB (22 files)
Files: 16
Par2s: 6
</description>
</item>
</channel>
</rss>

@ -20,22 +20,45 @@ namespace NzbDrone.Core.Test
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
{ {
[Test] [Test]
public void Download_feed_test() [Row("nzbsorg.xml")]
[Row("nzbsrus.xml")]
[Row("newzbin.xml")]
[Row("nzbmatrix.xml")]
public void parse_feed_xml(string fileName)
{ {
var mocker = new AutoMoqer(); var mocker = new AutoMoqer();
var xmlReader = XmlReader.Create(File.OpenRead(".\\Files\\Rss\\nzbsorg.xml"));
mocker.GetMock<HttpProvider>() mocker.GetMock<HttpProvider>()
.Setup(h => h.DownloadXml(It.IsAny<String>())) .Setup(h => h.DownloadStream(It.IsAny<String>()))
.Returns(xmlReader); .Returns(File.OpenRead(".\\Files\\Rss\\" + fileName));
var fakeSettings = Builder<IndexerSetting>.CreateNew().Build(); var fakeSettings = Builder<IndexerSetting>.CreateNew().Build();
mocker.GetMock<IndexerProvider>() mocker.GetMock<IndexerProvider>()
.Setup(c => c.GetSettings(It.IsAny<Type>())) .Setup(c => c.GetSettings(It.IsAny<Type>()))
.Returns(fakeSettings); .Returns(fakeSettings);
mocker.Resolve<MockIndexerProvider>().Fetch(); var exceptions = mocker.Resolve<MockIndexerProvider>().Fetch();
foreach (var exception in exceptions)
{
Console.WriteLine(exception.ToString());
}
Assert.IsEmpty(exceptions);
}
[Test]
public void downloadFeed()
{
var mocker = new AutoMoqer();
mocker.SetConstant(new HttpProvider());
var fakeSettings = Builder<IndexerSetting>.CreateNew().Build();
mocker.GetMock<IndexerProvider>()
.Setup(c => c.GetSettings(It.IsAny<Type>()))
.Returns(fakeSettings);
mocker.Resolve<TestUrlIndexer>().Fetch();
} }
[Test] [Test]
@ -90,4 +113,28 @@ namespace NzbDrone.Core.Test
return item.Links[0].Uri.ToString(); return item.Links[0].Uri.ToString();
} }
} }
public class TestUrlIndexer : IndexerProviderBase
{
public TestUrlIndexer(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider, SabProvider sabProvider)
: base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, indexerProvider, historyProvider, sabProvider)
{
}
public override string Name
{
get { return "All Urls"; }
}
protected override string[] Urls
{
get { return new[] { "http://rss.nzbmatrix.com/rss.php?cat=TV" }; }
}
protected override string NzbDownloadUrl(SyndicationItem item)
{
return "http://google.com";
}
}
} }

@ -7,6 +7,7 @@ using Moq;
using NzbDrone.Core.Instrumentation; using NzbDrone.Core.Instrumentation;
using NzbDrone.Core.Providers.Core; using NzbDrone.Core.Providers.Core;
using NzbDrone.Core.Repository; using NzbDrone.Core.Repository;
using NzbDrone.Core.Repository.Quality;
using SubSonic.DataProviders; using SubSonic.DataProviders;
using SubSonic.Repository; using SubSonic.Repository;
@ -46,7 +47,9 @@ namespace NzbDrone.Core.Test
{ {
provider.Log = new NlogWriter(); provider.Log = new NlogWriter();
} }
return new SimpleRepository(provider, SimpleRepositoryOptions.RunMigrations); var repo = new SimpleRepository(provider, SimpleRepositoryOptions.RunMigrations);
ForceMigration(repo);
return repo;
} }
public static DiskProvider GetStandardDisk(int seasons, int episodes) public static DiskProvider GetStandardDisk(int seasons, int episodes)
@ -91,5 +94,15 @@ namespace NzbDrone.Core.Test
.WhereAll().Have(c => c.EpisodeNumber = epNumber.Generate()) .WhereAll().Have(c => c.EpisodeNumber = epNumber.Generate())
.Build(); .Build();
} }
private static void ForceMigration(IRepository repository)
{
repository.All<Series>().Count();
repository.All<Season>().Count();
repository.All<Episode>().Count();
repository.All<EpisodeFile>().Count();
repository.All<QualityProfile>().Count();
repository.All<History>().Count();
}
} }
} }

@ -125,6 +125,15 @@
<Content Include="Files\Feed.nzbmatrix.com.xml"> <Content Include="Files\Feed.nzbmatrix.com.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content> </Content>
<Content Include="Files\RSS\newzbin.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Files\RSS\nzbmatrix.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Files\RSS\nzbsrus.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Files\RSS\nzbsorg.xml"> <Content Include="Files\RSS\nzbsorg.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content> </Content>

@ -121,7 +121,7 @@ namespace NzbDrone.Core.Test
var logItem = sonicRepo.All<Log>().First(); var logItem = sonicRepo.All<Log>().First();
Assert.AreNotEqual(new DateTime(), logItem.Time); Assert.AreNotEqual(new DateTime(), logItem.Time);
Assert.AreEqual(message, logItem.Message); Assert.AreEqual(message + ": " + ex.Message, logItem.Message);
Assert.AreEqual(Logger.Name, logItem.Logger); Assert.AreEqual(Logger.Name, logItem.Logger);
Assert.AreEqual(LogLevel.Error.Name, logItem.Level); Assert.AreEqual(LogLevel.Error.Name, logItem.Level);
Assert.AreEqual(ex.GetType().ToString(), logItem.ExceptionType); Assert.AreEqual(ex.GetType().ToString(), logItem.ExceptionType);

@ -1,6 +1,6 @@
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true"> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true">
<targets> <targets>
<target name="consoleTarget" xsi:type="ColoredConsole" layout="${logger}: ${message}" /> <target name="consoleTarget" xsi:type="ColoredConsole" layout="${logger}: ${message} ${exception:ToString}" />
<target name="udpTarget" xsi:type="Chainsaw" address="udp://127.0.0.1:20480" <target name="udpTarget" xsi:type="Chainsaw" address="udp://127.0.0.1:20480"
includeCallSite="true" includeSourceInfo="true" includeNLogData="true" includeNDC="true" includeMDC="true"> includeCallSite="true" includeSourceInfo="true" includeNLogData="true" includeNDC="true" includeMDC="true">
<parameter name="exception" layout="${exception:format=ToString}" xsi:type="NLogViewerParameterInfo" /> <parameter name="exception" layout="${exception:format=ToString}" xsi:type="NLogViewerParameterInfo" />

@ -25,14 +25,19 @@ namespace NzbDrone.Core.Instrumentation
log.Method = logEvent.UserStackFrame.GetMethod().Name; log.Method = logEvent.UserStackFrame.GetMethod().Name;
} }
log.Logger = logEvent.LoggerName; log.Logger = logEvent.LoggerName;
if (logEvent.Exception != null) if (logEvent.Exception != null)
{ {
if (String.IsNullOrWhiteSpace(log.Message))
{
log.Message = logEvent.Exception.Message;
}
else
{
log.Message += ": " + logEvent.Exception.Message;
}
log.Message += ": " + logEvent.Exception.Message;
log.Exception = logEvent.Exception.ToString(); log.Exception = logEvent.Exception.ToString();
log.ExceptionType = logEvent.Exception.GetType().ToString(); log.ExceptionType = logEvent.Exception.GetType().ToString();

@ -1,80 +1,54 @@
using System; using System;
using System.IO;
using System.Net; using System.Net;
using System.Xml;
using NLog; using NLog;
namespace NzbDrone.Core.Providers.Core namespace NzbDrone.Core.Providers.Core
{ {
public class HttpProvider public class HttpProvider
{ {
private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public virtual string DownloadString(string request) public virtual string DownloadString(string address)
{
try
{
return new WebClient().DownloadString(request);
}
catch (Exception ex)
{
Logger.Warn("Failed to get response from: {0}", request);
Logger.TraceException(ex.Message, ex);
}
return String.Empty;
}
public virtual string DownloadString(string request, string username, string password)
{
try
{
var webClient = new WebClient();
webClient.Credentials = new NetworkCredential(username, password);
return webClient.DownloadString(request);
}
catch (Exception ex)
{
Logger.Warn("Failed to get response from: {0}", request);
Logger.TraceException(ex.Message, ex);
}
return String.Empty;
}
public virtual void DownloadFile(string request, string filename)
{ {
try try
{ {
var webClient = new WebClient(); return new WebClient().DownloadString(address);
webClient.DownloadFile(request, filename);
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Warn("Failed to get response from: {0}", request); Logger.Warn("Failed to get response from: {0}", address);
Logger.TraceException(ex.Message, ex); Logger.TraceException(ex.Message, ex);
throw; throw;
} }
} }
public virtual void DownloadFile(string request, string filename, string username, string password) public virtual string DownloadString(string address, string username, string password)
{ {
try try
{ {
var webClient = new WebClient(); var webClient = new WebClient();
webClient.Credentials = new NetworkCredential(username, password); webClient.Credentials = new NetworkCredential(username, password);
webClient.DownloadFile(request, filename); return webClient.DownloadString(address);
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Warn("Failed to get response from: {0}", request); Logger.Warn("Failed to get response from: {0}", address);
Logger.TraceException(ex.Message, ex); Logger.TraceException(ex.Message, ex);
throw; throw;
} }
} }
public virtual XmlReader DownloadXml(string url) public virtual Stream DownloadStream(string url)
{ {
return XmlReader.Create(url); var request = WebRequest.Create(url);
var response = request.GetResponse();
return response.GetResponseStream();
} }
} }
} }

@ -12,7 +12,7 @@ namespace NzbDrone.Core.Providers
public class EpisodeProvider public class EpisodeProvider
{ {
private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly QualityProvider _quality; private readonly QualityProvider _qualityProvider;
private readonly SeasonProvider _seasons; private readonly SeasonProvider _seasons;
private readonly SeriesProvider _series; private readonly SeriesProvider _series;
private readonly IRepository _sonicRepo; private readonly IRepository _sonicRepo;
@ -20,13 +20,13 @@ namespace NzbDrone.Core.Providers
public EpisodeProvider(IRepository sonicRepo, SeriesProvider seriesProvider, public EpisodeProvider(IRepository sonicRepo, SeriesProvider seriesProvider,
SeasonProvider seasonProvider, TvDbProvider tvDbProvider, SeasonProvider seasonProvider, TvDbProvider tvDbProvider,
QualityProvider quality) QualityProvider qualityProvider)
{ {
_sonicRepo = sonicRepo; _sonicRepo = sonicRepo;
_series = seriesProvider; _series = seriesProvider;
_tvDb = tvDbProvider; _tvDb = tvDbProvider;
_seasons = seasonProvider; _seasons = seasonProvider;
_quality = quality; _qualityProvider = qualityProvider;
} }
public EpisodeProvider() public EpisodeProvider()
@ -80,7 +80,7 @@ namespace NzbDrone.Core.Providers
if (episodeInfo == null) if (episodeInfo == null)
{ {
Logger.Debug("Episode S{0:00}E{1:00} doesn't exist in db. adding it now.", parsedReport.SeasonNumber, episode);
//Todo: How do we want to handle this really? Episode could be released before information is on TheTvDB //Todo: How do we want to handle this really? Episode could be released before information is on TheTvDB
//(Parks and Rec did this a lot in the first season, from experience) //(Parks and Rec did this a lot in the first season, from experience)
//Keivan: Should automatically add the episode to db with minimal information. then update the description/title when available. //Keivan: Should automatically add the episode to db with minimal information. then update the description/title when available.
@ -103,24 +103,39 @@ namespace NzbDrone.Core.Providers
if (file != null) if (file != null)
{ {
//If not null we need to see if this episode has the quality as the download (or if it is better) Logger.Debug("File is {0} Proper:{1}", file.Quality, file.Proper);
if (file.Quality == parsedReport.Quality && file.Proper) continue;
//There will never be a time when the episode quality is less than what we have and we want it... ever.... I think. //There will never be a time when the episode quality is less than what we have and we want it... ever.... I think.
if (file.Quality > parsedReport.Quality) continue; if (file.Quality > parsedReport.Quality)
{
Logger.Trace("file has better quality. skipping");
continue;
}
//If not null we need to see if this episode has the quality as the download (or if it is better)
if (file.Quality == parsedReport.Quality && file.Proper == parsedReport.Proper)
{
Logger.Trace("Same quality/proper. existing proper. skipping");
continue;
}
//Now we need to handle upgrades and actually pay attention to the Cutoff Value //Now we need to handle upgrades and actually pay attention to the Cut-off Value
if (file.Quality < parsedReport.Quality) if (file.Quality < parsedReport.Quality)
{ {
var quality = _quality.Find(episodeInfo.Series.QualityProfileId); if (episodeInfo.Series.QualityProfile.Cutoff <= file.Quality)
{
Logger.Trace("Quality is past cut-off skipping.");
continue;
}
if (quality.Cutoff <= file.Quality && file.Proper) continue;
} }
} }
Logger.Debug("Episode {0} is needed", parsedReport);
return true; //If we get to this point and the file has not yet been rejected then accept it return true; //If we get to this point and the file has not yet been rejected then accept it
} }
Logger.Debug("Episode {0} is not needed", parsedReport);
return false; return false;
} }

@ -59,16 +59,19 @@ namespace NzbDrone.Core.Providers.Indexer
/// <summary> /// <summary>
/// Fetches RSS feed and process each news item. /// Fetches RSS feed and process each news item.
/// </summary> /// </summary>
public void Fetch() public List<Exception> Fetch()
{ {
_logger.Debug("Fetching feeds from " + Settings.Name); _logger.Debug("Fetching feeds from " + Settings.Name);
var exeptions = new List<Exception>();
foreach (var url in Urls) foreach (var url in Urls)
{ {
try try
{ {
_logger.Trace("Downloading RSS " + url); _logger.Trace("Downloading RSS " + url);
var feed = SyndicationFeed.Load(_httpProvider.DownloadXml(url)).Items;
var reader = new SyndicationFeedXmlReader(_httpProvider.DownloadStream(url));
var feed = SyndicationFeed.Load(reader).Items;
foreach (var item in feed) foreach (var item in feed)
{ {
@ -78,6 +81,7 @@ namespace NzbDrone.Core.Providers.Indexer
} }
catch (Exception itemEx) catch (Exception itemEx)
{ {
exeptions.Add(itemEx);
_logger.ErrorException("An error occurred while processing feed item", itemEx); _logger.ErrorException("An error occurred while processing feed item", itemEx);
} }
@ -85,11 +89,13 @@ namespace NzbDrone.Core.Providers.Indexer
} }
catch (Exception feedEx) catch (Exception feedEx)
{ {
exeptions.Add(feedEx);
_logger.ErrorException("An error occurred while processing feed", feedEx); _logger.ErrorException("An error occurred while processing feed", feedEx);
} }
} }
_logger.Info("Finished processing feeds from " + Settings.Name); _logger.Info("Finished processing feeds from " + Settings.Name);
return exeptions;
} }
internal void ProcessItem(SyndicationItem feedItem) internal void ProcessItem(SyndicationItem feedItem)
@ -131,17 +137,17 @@ namespace NzbDrone.Core.Providers.Indexer
return; return;
} }
var sabTitle = _sabProvider.GetSabTitle(parseResult); //var sabTitle = _sabProvider.GetSabTitle(parseResult);
if (_sabProvider.IsInQueue(sabTitle)) //if (_sabProvider.IsInQueue(sabTitle))
{ //{
return; // return;
} //}
if (!_sabProvider.AddByUrl(NzbDownloadUrl(feedItem), sabTitle)) //if (!_sabProvider.AddByUrl(NzbDownloadUrl(feedItem), sabTitle))
{ //{
return; // return;
} //}
foreach (var episode in episodes) foreach (var episode in episodes)
{ {

@ -0,0 +1,67 @@
//http://stackoverflow.com/questions/210375/problems-reading-rss-with-c-and-net-3-5
//https://connect.microsoft.com/VisualStudio/feedback/details/325421/syndicationfeed-load-fails-to-parse-datetime-against-a-real-world-feeds-ie7-can-read
using System;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.ServiceModel.Syndication;
using System.Xml;
namespace NzbDrone.Core.Providers.Indexer
{
public class SyndicationFeedXmlReader : XmlTextReader
{
readonly string[] Rss20DateTimeHints = { "pubDate" };
readonly string[] Atom10DateTimeHints = { "updated", "published", "lastBuildDate" };
private bool isRss2DateTime = false;
private bool isAtomDateTime = false;
public SyndicationFeedXmlReader(Stream stream) : base(stream) { }
public override bool IsStartElement(string localname, string ns)
{
isRss2DateTime = false;
isAtomDateTime = false;
if (Rss20DateTimeHints.Contains(localname)) isRss2DateTime = true;
if (Atom10DateTimeHints.Contains(localname)) isAtomDateTime = true;
return base.IsStartElement(localname, ns);
}
public override string ReadString()
{
string dateVal = base.ReadString();
try
{
if (isRss2DateTime)
{
MethodInfo objMethod = typeof(Rss20FeedFormatter).GetMethod("DateFromString", BindingFlags.NonPublic | BindingFlags.Static);
Debug.Assert(objMethod != null);
objMethod.Invoke(null, new object[] { dateVal, this });
}
if (isAtomDateTime)
{
MethodInfo objMethod = typeof(Atom10FeedFormatter).GetMethod("DateFromString", BindingFlags.NonPublic | BindingFlags.Instance);
Debug.Assert(objMethod != null);
objMethod.Invoke(new Atom10FeedFormatter(), new object[] { dateVal, this });
}
}
catch (TargetInvocationException)
{
DateTimeFormatInfo dtfi = CultureInfo.CurrentCulture.DateTimeFormat;
return DateTimeOffset.UtcNow.ToString(dtfi.RFC1123Pattern);
}
return dateVal;
}
}
}

@ -16,6 +16,10 @@ namespace NzbDrone.Core.Providers
private readonly ConfigProvider _config; private readonly ConfigProvider _config;
private readonly HttpProvider _http; private readonly HttpProvider _http;
public SabProvider()
{
}
public SabProvider(ConfigProvider config, HttpProvider http) public SabProvider(ConfigProvider config, HttpProvider http)
{ {
_config = config; _config = config;

@ -76,10 +76,6 @@ namespace NzbDrone.Core.Providers
public virtual bool IsIgnored(int seriesId, int seasonNumber) public virtual bool IsIgnored(int seriesId, int seasonNumber)
{ {
var season = _sonicRepo.Single<Season>(s => s.SeriesId == seriesId && s.SeasonNumber == seasonNumber); var season = _sonicRepo.Single<Season>(s => s.SeriesId == seriesId && s.SeasonNumber == seasonNumber);
if (season == null)
return true;
return !season.Monitored; return !season.Monitored;
} }

@ -58,9 +58,8 @@ namespace NzbDrone.Core.Providers
public virtual bool QualityWanted(int seriesId, QualityTypes quality) public virtual bool QualityWanted(int seriesId, QualityTypes quality)
{ {
var series = _sonioRepo.Single<Series>(seriesId); var series = _sonioRepo.Single<Series>(seriesId);
Logger.Trace("Series {0} is using quality profile {1}", seriesId, series.QualityProfile.Name);
var profile = _quality.Find(series.QualityProfileId); return series.QualityProfile.Allowed.Contains(quality);
return profile.Allowed.Contains(quality);
} }
public virtual TvdbSeries MapPathToSeries(string path) public virtual TvdbSeries MapPathToSeries(string path)

@ -45,7 +45,7 @@ namespace NzbDrone.Core.Repository
public DateTime? LastDiskSync { get; set; } public DateTime? LastDiskSync { get; set; }
[SubSonicToOneRelation(ThisClassContainsJoinKey = true, JoinKeyName = "QualityProfileId")] [SubSonicToOneRelation(ThisClassContainsJoinKey = true, JoinKeyName = "QualityProfileId")]
public virtual QualityProfile QualityProfile { get; protected set; } public virtual QualityProfile QualityProfile { get; set; }
[SubSonicToManyRelation] [SubSonicToManyRelation]
public virtual List<Season> Seasons { get; protected set; } public virtual List<Season> Seasons { get; protected set; }

@ -293,8 +293,6 @@ namespace NzbDrone.Web.Controllers
}; };
} }
catch (Exception) catch (Exception)
{ {
return new JsonResult { Data = "failed" }; return new JsonResult { Data = "failed" };

@ -2,6 +2,7 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function () { $(document).ready(function () {
selectDownloadOptionAtStart(); //Load either SAB or Blackhole div
var options = { var options = {
target: '#result', target: '#result',
beforeSubmit: showRequest, beforeSubmit: showRequest,
@ -10,19 +11,26 @@
resetForm: false resetForm: false
}; };
$('#form').ajaxForm(options); $('#form').ajaxForm(options);
selectDownloadOption(); //Load either SAB or Blackhole div
$('#save_button').attr('disabled', ''); $('#save_button').attr('disabled', '');
}); });
function selectDownloadOptionAtStart() {
var checked = $('UseBlackHole').val();
$radios.filter('[value=' + checked + ']').attr('checked', true);
selectDownloadOption();
}
function selectDownloadOption() { function selectDownloadOption() {
var selected = $("input[name='UseBlackHole']:checked").val(); var selected = $("input[name='UseBlackhole']:checked").val();
if (selected == "True") { if (selected == "True") {
$('#UseBlackHole').attr('checked', true);
document.getElementById('blackhole').style.display = 'block'; document.getElementById('blackhole').style.display = 'block';
document.getElementById('sab').style.display = 'none'; document.getElementById('sab').style.display = 'none';
} }
else { else {
$('#UseBlackHole').attr('checked', false);
document.getElementById('sab').style.display = 'block'; document.getElementById('sab').style.display = 'block';
document.getElementById('blackhole').style.display = 'none'; document.getElementById('blackhole').style.display = 'none';
} }
@ -81,12 +89,13 @@
<div> <div>
<div> <div>
<b>@Html.LabelFor(m => m.UseBlackHole)</b> <b>@Html.LabelFor(m => m.UseBlackHole)</b>
@Html.CheckBoxFor(m => m.UseBlackHole, new { style="display:block" })
</div> </div>
<div> <div>
@Html.RadioButtonFor(m => m.UseBlackHole, true, new { @class = "blackhole_radio" })Blackhole @Html.RadioButton("UseBlackhole", true, new { @class="blackhole_radio" })Blackhole
</div> </div>
<div> <div>
@Html.RadioButtonFor(m => m.UseBlackHole, false, new { @class = "blackhole_radio" })SABnzbd @Html.RadioButton("UseBlackhole", false, new { @class="blackhole_radio" })SABnzbd
</div> </div>
</div> </div>

Loading…
Cancel
Save