Episode file import fixes
Fixed: Import event when file doesn't have a valid scene name Fixed: Filename when file doesn't have a valid scene name
This commit is contained in:
parent
7c01f46cc0
commit
4cbb59d4e8
|
@ -1,4 +1,11 @@
|
||||||
using NUnit.Framework;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using FizzWare.NBuilder;
|
||||||
|
using Moq;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Core.MediaFiles;
|
||||||
|
using NzbDrone.Core.MediaFiles.Events;
|
||||||
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Profiles;
|
using NzbDrone.Core.Profiles;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
using NzbDrone.Core.History;
|
using NzbDrone.Core.History;
|
||||||
|
@ -6,6 +13,7 @@ using NzbDrone.Core.Qualities;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using NzbDrone.Core.Test.Qualities;
|
using NzbDrone.Core.Test.Qualities;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
|
using NzbDrone.Core.Tv;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Test.HistoryTests
|
namespace NzbDrone.Core.Test.HistoryTests
|
||||||
{
|
{
|
||||||
|
@ -56,5 +64,27 @@ namespace NzbDrone.Core.Test.HistoryTests
|
||||||
|
|
||||||
quality.Should().Be(new QualityModel(Quality.DVD));
|
quality.Should().Be(new QualityModel(Quality.DVD));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_use_file_name_for_source_title_if_scene_name_is_null()
|
||||||
|
{
|
||||||
|
var series = Builder<Series>.CreateNew().Build();
|
||||||
|
var episodes = Builder<Episode>.CreateListOfSize(1).Build().ToList();
|
||||||
|
var episodeFile = Builder<EpisodeFile>.CreateNew()
|
||||||
|
.With(f => f.SceneName = null)
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
var localEpisode = new LocalEpisode
|
||||||
|
{
|
||||||
|
Series = series,
|
||||||
|
Episodes = episodes,
|
||||||
|
Path = @"C:\Test\Unsorted\Series.s01e01.mkv"
|
||||||
|
};
|
||||||
|
|
||||||
|
Subject.Handle(new EpisodeImportedEvent(localEpisode, episodeFile, true));
|
||||||
|
|
||||||
|
Mocker.GetMock<IHistoryRepository>()
|
||||||
|
.Verify(v => v.Insert(It.Is<History.History>(h => h.SourceTitle == Path.GetFileNameWithoutExtension(localEpisode.Path))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -314,7 +314,6 @@
|
||||||
<Link>sqlite3.dll</Link>
|
<Link>sqlite3.dll</Link>
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="License.txt" />
|
|
||||||
<None Include="..\NzbDrone.Test.Common\App.config">
|
<None Include="..\NzbDrone.Test.Common\App.config">
|
||||||
<Link>App.config</Link>
|
<Link>App.config</Link>
|
||||||
</None>
|
</None>
|
||||||
|
|
|
@ -233,6 +233,17 @@ namespace NzbDrone.Core.Test.OrganizerTests
|
||||||
.Should().Be(Path.GetFileNameWithoutExtension(_episodeFile.RelativePath));
|
.Should().Be(Path.GetFileNameWithoutExtension(_episodeFile.RelativePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void use_path_when_sceneName_and_relative_path_are_null()
|
||||||
|
{
|
||||||
|
_namingConfig.RenameEpisodes = false;
|
||||||
|
_episodeFile.RelativePath = null;
|
||||||
|
_episodeFile.Path = @"C:\Test\Unsorted\Series - S01E01 - Test";
|
||||||
|
|
||||||
|
Subject.BuildFileName(new List<Episode> { _episode1 }, _series, _episodeFile)
|
||||||
|
.Should().Be(Path.GetFileNameWithoutExtension(_episodeFile.Path));
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void use_file_name_when_sceneName_is_not_null()
|
public void use_file_name_when_sceneName_is_not_null()
|
||||||
{
|
{
|
||||||
|
|
|
@ -167,7 +167,7 @@ namespace NzbDrone.Core.History
|
||||||
EventType = HistoryEventType.DownloadFolderImported,
|
EventType = HistoryEventType.DownloadFolderImported,
|
||||||
Date = DateTime.UtcNow,
|
Date = DateTime.UtcNow,
|
||||||
Quality = message.EpisodeInfo.Quality,
|
Quality = message.EpisodeInfo.Quality,
|
||||||
SourceTitle = message.ImportedEpisode.SceneName,
|
SourceTitle = message.ImportedEpisode.SceneName ?? Path.GetFileNameWithoutExtension(message.EpisodeInfo.Path),
|
||||||
SeriesId = message.ImportedEpisode.SeriesId,
|
SeriesId = message.ImportedEpisode.SeriesId,
|
||||||
EpisodeId = episode.Id
|
EpisodeId = episode.Id
|
||||||
};
|
};
|
||||||
|
|
|
@ -80,6 +80,11 @@ namespace NzbDrone.Core.Organizer
|
||||||
{
|
{
|
||||||
if (episodeFile.SceneName.IsNullOrWhiteSpace())
|
if (episodeFile.SceneName.IsNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
|
if (episodeFile.RelativePath.IsNullOrWhiteSpace())
|
||||||
|
{
|
||||||
|
return Path.GetFileNameWithoutExtension(episodeFile.Path);
|
||||||
|
}
|
||||||
|
|
||||||
return Path.GetFileNameWithoutExtension(episodeFile.RelativePath);
|
return Path.GetFileNameWithoutExtension(episodeFile.RelativePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@
|
||||||
{{/if_eq}}
|
{{/if_eq}}
|
||||||
|
|
||||||
{{#if_eq reason compare="Upgrade"}}
|
{{#if_eq reason compare="Upgrade"}}
|
||||||
File was deleted to imported an upgrade
|
File was deleted to import an upgrade
|
||||||
{{/if_eq}}
|
{{/if_eq}}
|
||||||
</dd>
|
</dd>
|
||||||
{{/with}}
|
{{/with}}
|
||||||
|
|
Loading…
Reference in New Issue