protected override Series Resolve(ItemResolveArgs args) { if (args.IsDirectory) { if (args.HasParent <Series>() || args.HasParent <Season>()) { return(null); } var seriesInfo = Naming.TV.SeriesResolver.Resolve(_namingOptions, args.Path); var collectionType = args.GetCollectionType(); if (string.Equals(collectionType, CollectionType.TvShows, StringComparison.OrdinalIgnoreCase)) { // TODO refactor into separate class or something, this is copied from LibraryManager.GetConfiguredContentType var configuredContentType = args.GetConfiguredContentType(); if (!string.Equals(configuredContentType, CollectionType.TvShows, StringComparison.OrdinalIgnoreCase)) { return(new Series { Path = args.Path, Name = seriesInfo.Name }); } } else if (string.IsNullOrEmpty(collectionType)) { if (args.ContainsFileSystemEntryByName("tvshow.nfo")) { if (args.Parent != null && args.Parent.IsRoot) { // For now, return null, but if we want to allow this in the future then add some additional checks to guard against a misplaced tvshow.nfo return(null); } return(new Series { Path = args.Path, Name = seriesInfo.Name }); } if (args.Parent != null && args.Parent.IsRoot) { return(null); } if (IsSeriesFolder(args.Path, args.FileSystemChildren, false)) { return(new Series { Path = args.Path, Name = seriesInfo.Name }); } } } return(null); }