using MediaBrowser.Controller.Library;
using System;
using System.Collections.Generic;
using System.Linq;
using MediaBrowser.Controller.Resolvers;
namespace MediaBrowser.Server.Implementations.Library
{
    /// 
    /// Provides the core resolver ignore rules
    /// 
    public class CoreResolutionIgnoreRule : IResolverIgnoreRule
    {
        /// 
        /// Any folder named in this list will be ignored - can be added to at runtime for extensibility
        /// 
        private static readonly List IgnoreFolders = new List
        {
            "trailers",
            "metadata",
            "certificate",
            "backup",
            "ps3_update",
            "ps3_vprm",
            "adv_obj",
            "extrafanart"
        };
        /// 
        /// Shoulds the ignore.
        /// 
        /// The args.
        /// true if XXXX, false otherwise
        public bool ShouldIgnore(ItemResolveArgs args)
        {
            // Ignore hidden files and folders
            if (args.IsHidden)
            {
                return true;
            }
            if (args.IsDirectory)
            {
                var filename = args.FileInfo.cFileName;
                // Ignore any folders in our list
                if (IgnoreFolders.Contains(filename, StringComparer.OrdinalIgnoreCase))
                {
                    return true;
                }
            }
            return false;
        }
    }
}