mirror of
https://github.com/Sonarr/Sonarr.git
synced 2025-03-03 15:12:13 +02:00
EpisodesWithFiles now returns the full series object, instead of just the SeriesTitle (So we don't need to add junk to the Episode class)
This commit is contained in:
parent
421ba466a8
commit
0a65e85e21
@ -1272,7 +1272,7 @@ namespace NzbDrone.Core.Test
|
|||||||
foreach (var withFile in withFiles)
|
foreach (var withFile in withFiles)
|
||||||
{
|
{
|
||||||
withFile.EpisodeFile.Should().NotBeNull();
|
withFile.EpisodeFile.Should().NotBeNull();
|
||||||
withFile.SeriesTitle.Should().NotBeNullOrEmpty();
|
withFile.Series.Title.Should().NotBeNullOrEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
mocker.VerifyAllMocks();
|
mocker.VerifyAllMocks();
|
||||||
|
@ -22,6 +22,10 @@ namespace NzbDrone.Core.Test
|
|||||||
public void no_misnamed_files()
|
public void no_misnamed_files()
|
||||||
{
|
{
|
||||||
//Setup
|
//Setup
|
||||||
|
var series = Builder<Series>.CreateNew()
|
||||||
|
.With(s => s.Title = "SeriesTitle")
|
||||||
|
.Build();
|
||||||
|
|
||||||
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(2)
|
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(2)
|
||||||
.WhereTheFirst(1)
|
.WhereTheFirst(1)
|
||||||
.Has(f => f.EpisodeFileId = 1)
|
.Has(f => f.EpisodeFileId = 1)
|
||||||
@ -32,14 +36,14 @@ namespace NzbDrone.Core.Test
|
|||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var episodes = Builder<Episode>.CreateListOfSize(2)
|
var episodes = Builder<Episode>.CreateListOfSize(2)
|
||||||
|
.WhereAll()
|
||||||
|
.Have(e => e.Series = series)
|
||||||
.WhereTheFirst(1)
|
.WhereTheFirst(1)
|
||||||
.Has(e => e.EpisodeFileId = 1)
|
.Has(e => e.EpisodeFileId = 1)
|
||||||
.Has(e => e.EpisodeFile = episodeFiles[0])
|
.Has(e => e.EpisodeFile = episodeFiles[0])
|
||||||
.Has(e => e.SeriesTitle = "SeriesTitle1")
|
|
||||||
.AndTheNext(1)
|
.AndTheNext(1)
|
||||||
.Has(e => e.EpisodeFileId = 2)
|
.Has(e => e.EpisodeFileId = 2)
|
||||||
.Has(e => e.EpisodeFile = episodeFiles[1])
|
.Has(e => e.EpisodeFile = episodeFiles[1])
|
||||||
.Has(e => e.SeriesTitle = "SeriesTitle2")
|
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||||
@ -48,11 +52,11 @@ namespace NzbDrone.Core.Test
|
|||||||
.Setup(c => c.EpisodesWithFiles()).Returns(episodes);
|
.Setup(c => c.EpisodesWithFiles()).Returns(episodes);
|
||||||
|
|
||||||
mocker.GetMock<MediaFileProvider>()
|
mocker.GetMock<MediaFileProvider>()
|
||||||
.Setup(c => c.GetNewFilename(new List<Episode> {episodes[0]}, "SeriesTitle1", It.IsAny<QualityTypes>()))
|
.Setup(c => c.GetNewFilename(new List<Episode> {episodes[0]}, "SeriesTitle", It.IsAny<QualityTypes>()))
|
||||||
.Returns("Title1");
|
.Returns("Title1");
|
||||||
|
|
||||||
mocker.GetMock<MediaFileProvider>()
|
mocker.GetMock<MediaFileProvider>()
|
||||||
.Setup(c => c.GetNewFilename(new List<Episode> {episodes[1]}, "SeriesTitle2", It.IsAny<QualityTypes>()))
|
.Setup(c => c.GetNewFilename(new List<Episode> {episodes[1]}, "SeriesTitle", It.IsAny<QualityTypes>()))
|
||||||
.Returns("Title2");
|
.Returns("Title2");
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
@ -67,6 +71,10 @@ namespace NzbDrone.Core.Test
|
|||||||
public void all_misnamed_files()
|
public void all_misnamed_files()
|
||||||
{
|
{
|
||||||
//Setup
|
//Setup
|
||||||
|
var series = Builder<Series>.CreateNew()
|
||||||
|
.With(s => s.Title = "SeriesTitle")
|
||||||
|
.Build();
|
||||||
|
|
||||||
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(2)
|
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(2)
|
||||||
.WhereTheFirst(1)
|
.WhereTheFirst(1)
|
||||||
.Has(f => f.EpisodeFileId = 1)
|
.Has(f => f.EpisodeFileId = 1)
|
||||||
@ -77,14 +85,14 @@ namespace NzbDrone.Core.Test
|
|||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var episodes = Builder<Episode>.CreateListOfSize(2)
|
var episodes = Builder<Episode>.CreateListOfSize(2)
|
||||||
|
.WhereAll()
|
||||||
|
.Have(e => e.Series = series)
|
||||||
.WhereTheFirst(1)
|
.WhereTheFirst(1)
|
||||||
.Has(e => e.EpisodeFileId = 1)
|
.Has(e => e.EpisodeFileId = 1)
|
||||||
.Has(e => e.EpisodeFile = episodeFiles[0])
|
.Has(e => e.EpisodeFile = episodeFiles[0])
|
||||||
.Has(e => e.SeriesTitle = "SeriesTitle1")
|
|
||||||
.AndTheNext(1)
|
.AndTheNext(1)
|
||||||
.Has(e => e.EpisodeFileId = 2)
|
.Has(e => e.EpisodeFileId = 2)
|
||||||
.Has(e => e.EpisodeFile = episodeFiles[1])
|
.Has(e => e.EpisodeFile = episodeFiles[1])
|
||||||
.Has(e => e.SeriesTitle = "SeriesTitle2")
|
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||||
@ -93,11 +101,11 @@ namespace NzbDrone.Core.Test
|
|||||||
.Setup(c => c.EpisodesWithFiles()).Returns(episodes);
|
.Setup(c => c.EpisodesWithFiles()).Returns(episodes);
|
||||||
|
|
||||||
mocker.GetMock<MediaFileProvider>()
|
mocker.GetMock<MediaFileProvider>()
|
||||||
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[0] }, "SeriesTitle1", It.IsAny<QualityTypes>()))
|
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[0] }, "SeriesTitle", It.IsAny<QualityTypes>()))
|
||||||
.Returns("New Title 1");
|
.Returns("New Title 1");
|
||||||
|
|
||||||
mocker.GetMock<MediaFileProvider>()
|
mocker.GetMock<MediaFileProvider>()
|
||||||
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[1] }, "SeriesTitle2", It.IsAny<QualityTypes>()))
|
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[1] }, "SeriesTitle", It.IsAny<QualityTypes>()))
|
||||||
.Returns("New Title 2");
|
.Returns("New Title 2");
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
@ -112,6 +120,10 @@ namespace NzbDrone.Core.Test
|
|||||||
public void one_misnamed_file()
|
public void one_misnamed_file()
|
||||||
{
|
{
|
||||||
//Setup
|
//Setup
|
||||||
|
var series = Builder<Series>.CreateNew()
|
||||||
|
.With(s => s.Title = "SeriesTitle")
|
||||||
|
.Build();
|
||||||
|
|
||||||
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(2)
|
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(2)
|
||||||
.WhereTheFirst(1)
|
.WhereTheFirst(1)
|
||||||
.Has(f => f.EpisodeFileId = 1)
|
.Has(f => f.EpisodeFileId = 1)
|
||||||
@ -122,14 +134,14 @@ namespace NzbDrone.Core.Test
|
|||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var episodes = Builder<Episode>.CreateListOfSize(2)
|
var episodes = Builder<Episode>.CreateListOfSize(2)
|
||||||
|
.WhereAll()
|
||||||
|
.Have(e => e.Series = series)
|
||||||
.WhereTheFirst(1)
|
.WhereTheFirst(1)
|
||||||
.Has(e => e.EpisodeFileId = 1)
|
.Has(e => e.EpisodeFileId = 1)
|
||||||
.Has(e => e.EpisodeFile = episodeFiles[0])
|
.Has(e => e.EpisodeFile = episodeFiles[0])
|
||||||
.Has(e => e.SeriesTitle = "SeriesTitle1")
|
|
||||||
.AndTheNext(1)
|
.AndTheNext(1)
|
||||||
.Has(e => e.EpisodeFileId = 2)
|
.Has(e => e.EpisodeFileId = 2)
|
||||||
.Has(e => e.EpisodeFile = episodeFiles[1])
|
.Has(e => e.EpisodeFile = episodeFiles[1])
|
||||||
.Has(e => e.SeriesTitle = "SeriesTitle2")
|
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||||
@ -138,11 +150,11 @@ namespace NzbDrone.Core.Test
|
|||||||
.Setup(c => c.EpisodesWithFiles()).Returns(episodes);
|
.Setup(c => c.EpisodesWithFiles()).Returns(episodes);
|
||||||
|
|
||||||
mocker.GetMock<MediaFileProvider>()
|
mocker.GetMock<MediaFileProvider>()
|
||||||
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[0] }, "SeriesTitle1", It.IsAny<QualityTypes>()))
|
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[0] }, "SeriesTitle", It.IsAny<QualityTypes>()))
|
||||||
.Returns("New Title 1");
|
.Returns("New Title 1");
|
||||||
|
|
||||||
mocker.GetMock<MediaFileProvider>()
|
mocker.GetMock<MediaFileProvider>()
|
||||||
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[1] }, "SeriesTitle2", It.IsAny<QualityTypes>()))
|
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[1] }, "SeriesTitle", It.IsAny<QualityTypes>()))
|
||||||
.Returns("Title2");
|
.Returns("Title2");
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
@ -159,6 +171,10 @@ namespace NzbDrone.Core.Test
|
|||||||
public void misnamed_multi_episode_file()
|
public void misnamed_multi_episode_file()
|
||||||
{
|
{
|
||||||
//Setup
|
//Setup
|
||||||
|
var series = Builder<Series>.CreateNew()
|
||||||
|
.With(s => s.Title = "SeriesTitle")
|
||||||
|
.Build();
|
||||||
|
|
||||||
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(2)
|
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(2)
|
||||||
.WhereTheFirst(1)
|
.WhereTheFirst(1)
|
||||||
.Has(f => f.EpisodeFileId = 1)
|
.Has(f => f.EpisodeFileId = 1)
|
||||||
@ -169,14 +185,14 @@ namespace NzbDrone.Core.Test
|
|||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var episodes = Builder<Episode>.CreateListOfSize(3)
|
var episodes = Builder<Episode>.CreateListOfSize(3)
|
||||||
|
.WhereAll()
|
||||||
|
.Have(e => e.Series = series)
|
||||||
.WhereTheFirst(2)
|
.WhereTheFirst(2)
|
||||||
.Has(e => e.EpisodeFileId = 1)
|
.Has(e => e.EpisodeFileId = 1)
|
||||||
.Has(e => e.EpisodeFile = episodeFiles[0])
|
.Has(e => e.EpisodeFile = episodeFiles[0])
|
||||||
.Has(e => e.SeriesTitle = "SeriesTitle1")
|
|
||||||
.AndTheNext(1)
|
.AndTheNext(1)
|
||||||
.Has(e => e.EpisodeFileId = 2)
|
.Has(e => e.EpisodeFileId = 2)
|
||||||
.Has(e => e.EpisodeFile = episodeFiles[1])
|
.Has(e => e.EpisodeFile = episodeFiles[1])
|
||||||
.Has(e => e.SeriesTitle = "SeriesTitle2")
|
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||||
@ -185,11 +201,11 @@ namespace NzbDrone.Core.Test
|
|||||||
.Setup(c => c.EpisodesWithFiles()).Returns(episodes);
|
.Setup(c => c.EpisodesWithFiles()).Returns(episodes);
|
||||||
|
|
||||||
mocker.GetMock<MediaFileProvider>()
|
mocker.GetMock<MediaFileProvider>()
|
||||||
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[0], episodes[1] }, "SeriesTitle1", It.IsAny<QualityTypes>()))
|
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[0], episodes[1] }, "SeriesTitle", It.IsAny<QualityTypes>()))
|
||||||
.Returns("New Title 1");
|
.Returns("New Title 1");
|
||||||
|
|
||||||
mocker.GetMock<MediaFileProvider>()
|
mocker.GetMock<MediaFileProvider>()
|
||||||
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[2] }, "SeriesTitle2", It.IsAny<QualityTypes>()))
|
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[2] }, "SeriesTitle", It.IsAny<QualityTypes>()))
|
||||||
.Returns("Title2");
|
.Returns("Title2");
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
@ -206,6 +222,10 @@ namespace NzbDrone.Core.Test
|
|||||||
public void no_misnamed_multi_episode_file()
|
public void no_misnamed_multi_episode_file()
|
||||||
{
|
{
|
||||||
//Setup
|
//Setup
|
||||||
|
var series = Builder<Series>.CreateNew()
|
||||||
|
.With(s => s.Title = "SeriesTitle")
|
||||||
|
.Build();
|
||||||
|
|
||||||
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(2)
|
var episodeFiles = Builder<EpisodeFile>.CreateListOfSize(2)
|
||||||
.WhereTheFirst(1)
|
.WhereTheFirst(1)
|
||||||
.Has(f => f.EpisodeFileId = 1)
|
.Has(f => f.EpisodeFileId = 1)
|
||||||
@ -216,14 +236,14 @@ namespace NzbDrone.Core.Test
|
|||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var episodes = Builder<Episode>.CreateListOfSize(3)
|
var episodes = Builder<Episode>.CreateListOfSize(3)
|
||||||
|
.WhereAll()
|
||||||
|
.Have(e => e.Series = series)
|
||||||
.WhereTheFirst(2)
|
.WhereTheFirst(2)
|
||||||
.Has(e => e.EpisodeFileId = 1)
|
.Has(e => e.EpisodeFileId = 1)
|
||||||
.Has(e => e.EpisodeFile = episodeFiles[0])
|
.Has(e => e.EpisodeFile = episodeFiles[0])
|
||||||
.Has(e => e.SeriesTitle = "SeriesTitle1")
|
|
||||||
.AndTheNext(1)
|
.AndTheNext(1)
|
||||||
.Has(e => e.EpisodeFileId = 2)
|
.Has(e => e.EpisodeFileId = 2)
|
||||||
.Has(e => e.EpisodeFile = episodeFiles[1])
|
.Has(e => e.EpisodeFile = episodeFiles[1])
|
||||||
.Has(e => e.SeriesTitle = "SeriesTitle2")
|
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
var mocker = new AutoMoqer(MockBehavior.Strict);
|
var mocker = new AutoMoqer(MockBehavior.Strict);
|
||||||
@ -232,11 +252,11 @@ namespace NzbDrone.Core.Test
|
|||||||
.Setup(c => c.EpisodesWithFiles()).Returns(episodes);
|
.Setup(c => c.EpisodesWithFiles()).Returns(episodes);
|
||||||
|
|
||||||
mocker.GetMock<MediaFileProvider>()
|
mocker.GetMock<MediaFileProvider>()
|
||||||
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[0], episodes[1] }, "SeriesTitle1", It.IsAny<QualityTypes>()))
|
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[0], episodes[1] }, "SeriesTitle", It.IsAny<QualityTypes>()))
|
||||||
.Returns("Title1");
|
.Returns("Title1");
|
||||||
|
|
||||||
mocker.GetMock<MediaFileProvider>()
|
mocker.GetMock<MediaFileProvider>()
|
||||||
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[2] }, "SeriesTitle2", It.IsAny<QualityTypes>()))
|
.Setup(c => c.GetNewFilename(new List<Episode> { episodes[2] }, "SeriesTitle", It.IsAny<QualityTypes>()))
|
||||||
.Returns("Title2");
|
.Returns("Title2");
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
|
@ -182,7 +182,6 @@
|
|||||||
<Compile Include="Fluent.cs" />
|
<Compile Include="Fluent.cs" />
|
||||||
<Compile Include="Helpers\EpisodeSortingHelper.cs" />
|
<Compile Include="Helpers\EpisodeSortingHelper.cs" />
|
||||||
<Compile Include="Helpers\FileSizeFormatHelpercs.cs" />
|
<Compile Include="Helpers\FileSizeFormatHelpercs.cs" />
|
||||||
<Compile Include="Helpers\LinqPageExtension.cs" />
|
|
||||||
<Compile Include="Instrumentation\LogProvider.cs" />
|
<Compile Include="Instrumentation\LogProvider.cs" />
|
||||||
<Compile Include="Instrumentation\DatabaseTarget.cs" />
|
<Compile Include="Instrumentation\DatabaseTarget.cs" />
|
||||||
<Compile Include="Instrumentation\ExceptioneerTarget.cs" />
|
<Compile Include="Instrumentation\ExceptioneerTarget.cs" />
|
||||||
|
@ -177,7 +177,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
|
|
||||||
public virtual IList<Episode> EpisodesWithFiles()
|
public virtual IList<Episode> EpisodesWithFiles()
|
||||||
{
|
{
|
||||||
var episodes = _database.Fetch<Episode, EpisodeFile>(@"SELECT Episodes.*, Series.Title as SeriesTitle, EpisodeFiles.* FROM Episodes
|
var episodes = _database.Fetch<Episode, Series, EpisodeFile>(@"SELECT Episodes.*, Series.*, EpisodeFiles.* FROM Episodes
|
||||||
INNER JOIN Series ON Episodes.SeriesId = Series.SeriesId
|
INNER JOIN Series ON Episodes.SeriesId = Series.SeriesId
|
||||||
INNER JOIN EpisodeFiles ON Episodes.EpisodeFileId = EpisodeFiles.EpisodeFileId");
|
INNER JOIN EpisodeFiles ON Episodes.EpisodeFileId = EpisodeFiles.EpisodeFileId");
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
var misnamedFilesSelect = episodesWithFiles.AsParallel().Where(
|
var misnamedFilesSelect = episodesWithFiles.AsParallel().Where(
|
||||||
w =>
|
w =>
|
||||||
w.First().EpisodeFile.Path !=
|
w.First().EpisodeFile.Path !=
|
||||||
_mediaFileProvider.GetNewFilename(w.Select(e => e).ToList(), w.First().SeriesTitle,
|
_mediaFileProvider.GetNewFilename(w.Select(e => e).ToList(), w.First().Series.Title,
|
||||||
w.First().EpisodeFile.Quality)).Skip(Math.Max(pageSize * (pageNumber - 1), 0)).Take(pageSize);
|
w.First().EpisodeFile.Quality)).Skip(Math.Max(pageSize * (pageNumber - 1), 0)).Take(pageSize);
|
||||||
|
|
||||||
//Process the episodes
|
//Process the episodes
|
||||||
@ -45,7 +45,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
var episodes = f.Select(e => e).ToList();
|
var episodes = f.Select(e => e).ToList();
|
||||||
var firstEpisode = episodes[0];
|
var firstEpisode = episodes[0];
|
||||||
var properName = _mediaFileProvider.GetNewFilename(episodes,
|
var properName = _mediaFileProvider.GetNewFilename(episodes,
|
||||||
firstEpisode.SeriesTitle,
|
firstEpisode.Series.Title,
|
||||||
firstEpisode.EpisodeFile.Quality);
|
firstEpisode.EpisodeFile.Quality);
|
||||||
|
|
||||||
var currentName = Path.GetFileNameWithoutExtension(firstEpisode.EpisodeFile.Path);
|
var currentName = Path.GetFileNameWithoutExtension(firstEpisode.EpisodeFile.Path);
|
||||||
@ -58,7 +58,7 @@ namespace NzbDrone.Core.Providers
|
|||||||
EpisodeFileId = firstEpisode.EpisodeFileId,
|
EpisodeFileId = firstEpisode.EpisodeFileId,
|
||||||
ProperName = properName,
|
ProperName = properName,
|
||||||
SeriesId = firstEpisode.SeriesId,
|
SeriesId = firstEpisode.SeriesId,
|
||||||
SeriesTitle = firstEpisode.SeriesTitle
|
SeriesTitle = firstEpisode.Series.Title
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -53,15 +53,12 @@ namespace NzbDrone.Core.Repository
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Ignore]
|
[ResultColumn]
|
||||||
public Series Series { get; set; }
|
public Series Series { get; set; }
|
||||||
|
|
||||||
[ResultColumn]
|
[ResultColumn]
|
||||||
public EpisodeFile EpisodeFile { get; set; }
|
public EpisodeFile EpisodeFile { get; set; }
|
||||||
|
|
||||||
[ResultColumn]
|
|
||||||
public string SeriesTitle { get; set; }
|
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
string seriesTitle = Series == null ? "[NULL]" : Series.Title;
|
string seriesTitle = Series == null ? "[NULL]" : Series.Title;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user