using System; using System.ComponentModel.Composition; using System.IO; using MediaBrowser.Controller.Events; using MediaBrowser.Controller.Resolvers; using MediaBrowser.TV.Entities; namespace MediaBrowser.TV.Resolvers { [Export(typeof(IBaseItemResolver))] public class SeriesResolver : BaseFolderResolver { protected override Series Resolve(ItemResolveEventArgs args) { if (args.IsDirectory && (args.VirtualFolderCollectionType ?? string.Empty).Equals("TV", StringComparison.OrdinalIgnoreCase)) { // Optimization to avoid running these tests against Seasons if (args.Parent is Series) { return null; } // It's a Series if any of the following conditions are met: // series.xml exists // [tvdbid= is present in the path // TVUtils.IsSeriesFolder returns true if (args.ContainsFile("series.xml") || Path.GetFileName(args.Path).IndexOf("[tvdbid=", StringComparison.OrdinalIgnoreCase) != -1 || TVUtils.IsSeriesFolder(args.Path, args.FileSystemChildren)) { return new Series(); } } return null; } } }