mirror of https://github.com/jellyfin/jellyfin.git
Fix case when series name ends in special character
Add unit test
This commit is contained in:
parent
180e720d17
commit
d53a61cc48
|
@ -2664,10 +2664,24 @@ namespace Emby.Server.Implementations.Library
|
||||||
seriesName = season.SeriesName;
|
seriesName = season.SeriesName;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (seriesName is not null && seriesName.Equals(episodeInfo?.SeriesName, StringComparison.OrdinalIgnoreCase))
|
if (seriesName is not null && episodeInfo?.SeriesName is not null)
|
||||||
{
|
{
|
||||||
// don't attach episode extras to series or season
|
// trim series names like episodepathparser does
|
||||||
continue;
|
seriesName = seriesName
|
||||||
|
.Trim()
|
||||||
|
.Trim('_', '.', '-')
|
||||||
|
.Trim();
|
||||||
|
|
||||||
|
var episodeInfoSeriesName = episodeInfo.SeriesName
|
||||||
|
.Trim()
|
||||||
|
.Trim('_', '.', '-')
|
||||||
|
.Trim();
|
||||||
|
|
||||||
|
if (seriesName.Equals(episodeInfoSeriesName, StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
// don't attach episode extras to series or season
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -381,6 +381,40 @@ public class FindExtrasTests
|
||||||
Assert.Equal("/series/Dexter/Season 1/interviews/The Cast.mkv", extras[1].Path);
|
Assert.Equal("/series/Dexter/Season 1/interviews/The Cast.mkv", extras[1].Path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void FindExtras_SeasonWithExtras_FindsCorrectExtras2()
|
||||||
|
{
|
||||||
|
// Series name directory has special characters stripped that episodes do not
|
||||||
|
var owner = new Season { Name = "Season 1", SeriesName = "The Venture Bros.", Path = "/series/The Venture Bros/Season 1" };
|
||||||
|
var paths = new List<string>
|
||||||
|
{
|
||||||
|
"/series/The Venture Bros/Season 1/The Venture Bros. S01E01.mkv",
|
||||||
|
"/series/The Venture Bros/Season 1/The Venture Bros. S01E01-deleted.mkv",
|
||||||
|
"/series/The Venture Bros/Season 1/The Venture Bros. - S01E02 - Second Epi.mkv",
|
||||||
|
"/series/The Venture Bros/Season 1/The Venture Bros. - S01E02 - Second Epi-interview.mkv",
|
||||||
|
"/series/The Venture Bros/Season 1/The Venture Bros. - S01E02 - Second Epi-scene.mkv",
|
||||||
|
"/series/The Venture Bros/Season 1/It's a begining-behindthescenes.mkv",
|
||||||
|
"/series/The Venture Bros/Season 1/interviews/The Cast.mkv",
|
||||||
|
};
|
||||||
|
|
||||||
|
var files = paths.Select(p => new FileSystemMetadata
|
||||||
|
{
|
||||||
|
FullName = p,
|
||||||
|
Name = Path.GetFileName(p),
|
||||||
|
Extension = Path.GetExtension(p),
|
||||||
|
IsDirectory = string.IsNullOrEmpty(Path.GetExtension(p))
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
var extras = _libraryManager.FindExtras(owner, files, new DirectoryService(_fileSystemMock.Object)).OrderBy(e => e.ExtraType).ToList();
|
||||||
|
|
||||||
|
Assert.Equal(2, extras.Count);
|
||||||
|
Assert.Equal(ExtraType.BehindTheScenes, extras[0].ExtraType);
|
||||||
|
Assert.Equal(typeof(Video), extras[0].GetType());
|
||||||
|
Assert.Equal("It's a begining-behindthescenes", extras[0].FileNameWithoutExtension);
|
||||||
|
Assert.Equal("/series/The Venture Bros/Season 1/It's a begining-behindthescenes.mkv", extras[0].Path);
|
||||||
|
Assert.Equal("/series/The Venture Bros/Season 1/interviews/The Cast.mkv", extras[1].Path);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void FindExtras_EpisodeWithExtras_FindsCorrectExtras()
|
public void FindExtras_EpisodeWithExtras_FindsCorrectExtras()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue