From f9c00a6145ae6492ae68509887bcae382255c12b Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 19 May 2013 13:05:33 -0400 Subject: parse episode index number at resolve time --- .../Library/Resolvers/TV/EpisodeResolver.cs | 31 +++++++++++++++------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Library') diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs index 717370590..84f7a8522 100644 --- a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs +++ b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs @@ -18,30 +18,41 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV /// Episode. protected override Episode Resolve(ItemResolveArgs args) { + var isInSeason = args.Parent is Season; + // If the parent is a Season or Series, then this is an Episode if the VideoResolver returns something - if (args.Parent is Season || args.Parent is Series) + if (isInSeason || args.Parent is Series) { if (args.IsDirectory) { if (args.ContainsFileSystemEntryByName("video_ts")) { return new Episode - { - Path = args.Path, - VideoType = VideoType.Dvd - }; + { + IndexNumber = TVUtils.GetEpisodeNumberFromFile(args.Path, isInSeason), + Path = args.Path, + VideoType = VideoType.Dvd + }; } if (args.ContainsFileSystemEntryByName("bdmv")) { return new Episode - { - Path = args.Path, - VideoType = VideoType.BluRay - }; + { + IndexNumber = TVUtils.GetEpisodeNumberFromFile(args.Path, isInSeason), + Path = args.Path, + VideoType = VideoType.BluRay + }; } } - return base.Resolve(args); + var episide = base.Resolve(args); + + if (episide != null) + { + episide.IndexNumber = TVUtils.GetEpisodeNumberFromFile(args.Path, isInSeason); + } + + return episide; } return null; -- cgit v1.2.3