using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
using System.Collections.Generic;
using System.Threading;
namespace MediaBrowser.Providers
{
    /// 
    /// Class FanartBaseProvider
    /// 
    public abstract class FanartBaseProvider : BaseMetadataProvider
    {
        internal static readonly SemaphoreSlim FanArtResourcePool = new SemaphoreSlim(3, 3);
        /// 
        /// The LOG o_ FILE
        /// 
        protected const string LogoFile = "logo.png";
        /// 
        /// The AR t_ FILE
        /// 
        protected const string ArtFile = "clearart.png";
        /// 
        /// The THUM b_ FILE
        /// 
        protected const string ThumbFile = "thumb.jpg";
        /// 
        /// The DIS c_ FILE
        /// 
        protected const string DiscFile = "disc.png";
        /// 
        /// The BANNE r_ FILE
        /// 
        protected const string BannerFile = "banner.png";
        /// 
        /// The Backdrop
        /// 
        protected const string BackdropFile = "backdrop.jpg";
        /// 
        /// The Primary image
        /// 
        protected const string PrimaryFile = "folder.jpg";
        /// 
        /// The API key
        /// 
        internal const string ApiKey = "5c6b04c68e904cfed1e6cbc9a9e683d4";
        protected FanartBaseProvider(ILogManager logManager, IServerConfigurationManager configurationManager)
            : base(logManager, configurationManager)
        {
        }
        /// 
        /// Gets a value indicating whether [requires internet].
        /// 
        /// true if [requires internet]; otherwise, false.
        public override bool RequiresInternet
        {
            get { return true; }
        }
        /// 
        /// Gets the priority.
        /// 
        /// The priority.
        public override MetadataProviderPriority Priority
        {
            get { return MetadataProviderPriority.Third; }
        }
        #region Result Objects
        protected class FanArtImageInfo
        {
            public string id { get; set; }
            public string url { get; set; }
            public string likes { get; set; }
        }
        protected class FanArtMusicInfo
        {
            public string mbid_id { get; set; }
            public List musiclogo { get; set; }
            public List artistbackground { get; set; }
            public List artistthumb { get; set; }
            public List hdmusiclogo { get; set; }
            public List musicbanner { get; set; }
        }
        protected class FanArtMusicResult
        {
            public FanArtMusicInfo result { get; set; }
        }
        #endregion
    }
}