| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 | 
							- using MediaBrowser.Common.Extensions;
 
- using System.Collections.Generic;
 
- using System.IO;
 
- using System.Linq;
 
- using MediaBrowser.Common.Logging;
 
- namespace MediaBrowser.Controller.Localization
 
- {
 
-     /// <summary>
 
-     /// Class Ratings
 
-     /// </summary>
 
-     public static class Ratings
 
-     {
 
-         /// <summary>
 
-         /// The ratings def
 
-         /// </summary>
 
-         private static RatingsDefinition ratingsDef;
 
-         /// <summary>
 
-         /// The _ratings dict
 
-         /// </summary>
 
-         private static Dictionary<string, int> _ratingsDict;
 
-         /// <summary>
 
-         /// Gets the ratings dict.
 
-         /// </summary>
 
-         /// <value>The ratings dict.</value>
 
-         public static Dictionary<string, int> RatingsDict
 
-         {
 
-             get { return _ratingsDict ?? (_ratingsDict = Initialize(false)); }
 
-         }
 
-         /// <summary>
 
-         /// The ratings strings
 
-         /// </summary>
 
-         private static readonly Dictionary<int, string> ratingsStrings = new Dictionary<int, string>();
 
-         /// <summary>
 
-         /// Initializes the specified block unrated.
 
-         /// </summary>
 
-         /// <param name="blockUnrated">if set to <c>true</c> [block unrated].</param>
 
-         /// <returns>Dictionary{System.StringSystem.Int32}.</returns>
 
-         public static Dictionary<string, int> Initialize(bool blockUnrated)
 
-         {
 
-             //build our ratings dictionary from the combined local one and us one
 
-             ratingsDef = new RatingsDefinition(Path.Combine(Kernel.Instance.ApplicationPaths.LocalizationPath, "Ratings-" + Kernel.Instance.Configuration.MetadataCountryCode + ".txt"), LogManager.GetLogger("RatingsDefinition"));
 
-             //global value of None
 
-             var dict = new Dictionary<string, int> {{"None", -1}};
 
-             foreach (var pair in ratingsDef.RatingsDict)
 
-             {
 
-                 dict.TryAdd(pair.Key, pair.Value);
 
-             }
 
-             if (Kernel.Instance.Configuration.MetadataCountryCode.ToUpper() != "US")
 
-             {
 
-                 foreach (var pair in new USRatingsDictionary())
 
-                 {
 
-                     dict.TryAdd(pair.Key, pair.Value);
 
-                 }
 
-             }
 
-             //global values of CS
 
-             dict.TryAdd("CS", 1000);
 
-             dict.TryAdd("", blockUnrated ? 1000 : 0);
 
-             //and rating reverse lookup dictionary (non-redundant ones)
 
-             ratingsStrings.Clear();
 
-             var lastLevel = -10;
 
-             ratingsStrings.Add(-1,LocalizedStrings.Instance.GetString("Any"));
 
-             foreach (var pair in ratingsDef.RatingsDict.OrderBy(p => p.Value))
 
-             {
 
-                 if (pair.Value > lastLevel)
 
-                 {
 
-                     lastLevel = pair.Value;
 
-                     ratingsStrings.TryAdd(pair.Value, pair.Key);
 
-                 }
 
-             }
 
-             ratingsStrings.TryAdd(999, "CS");
 
-             return dict;
 
-         }
 
-         /// <summary>
 
-         /// Switches the unrated.
 
-         /// </summary>
 
-         /// <param name="block">if set to <c>true</c> [block].</param>
 
-         public static void SwitchUnrated(bool block)
 
-         {
 
-             RatingsDict.Remove("");
 
-             RatingsDict.Add("", block ? 1000 : 0);
 
-         }
 
-         /// <summary>
 
-         /// Levels the specified rating STR.
 
-         /// </summary>
 
-         /// <param name="ratingStr">The rating STR.</param>
 
-         /// <returns>System.Int32.</returns>
 
-         public static int Level(string ratingStr)
 
-         {
 
-             if (ratingStr == null) ratingStr = "";
 
-             if (RatingsDict.ContainsKey(ratingStr))
 
-                 return RatingsDict[ratingStr];
 
-             string stripped = StripCountry(ratingStr);
 
-             if (RatingsDict.ContainsKey(stripped))
 
-                 return RatingsDict[stripped];
 
-             return RatingsDict[""]; //return "unknown" level
 
-         }
 
-         /// <summary>
 
-         /// Strips the country.
 
-         /// </summary>
 
-         /// <param name="rating">The rating.</param>
 
-         /// <returns>System.String.</returns>
 
-         private static string StripCountry(string rating)
 
-         {
 
-             int start = rating.IndexOf('-');
 
-             return start > 0 ? rating.Substring(start + 1) : rating;
 
-         }
 
-         /// <summary>
 
-         /// Returns a <see cref="System.String" /> that represents this instance.
 
-         /// </summary>
 
-         /// <param name="level">The level.</param>
 
-         /// <returns>A <see cref="System.String" /> that represents this instance.</returns>
 
-         public static string ToString(int level)
 
-         {
 
-             //return the closest one
 
-             while (level > 0) 
 
-             {
 
-                 if (ratingsStrings.ContainsKey(level))
 
-                     return ratingsStrings[level];
 
-                 level--;
 
-             }
 
-             return ratingsStrings.Values.FirstOrDefault(); //default to first one
 
-         }
 
-         /// <summary>
 
-         /// To the strings.
 
-         /// </summary>
 
-         /// <returns>List{System.String}.</returns>
 
-         public static List<string> ToStrings()
 
-         {
 
-             //return the whole list of ratings strings
 
-             return ratingsStrings.Values.ToList();
 
-         }
 
-         /// <summary>
 
-         /// To the values.
 
-         /// </summary>
 
-         /// <returns>List{System.Int32}.</returns>
 
-         public static List<int> ToValues()
 
-         {
 
-             //return the whole list of ratings values
 
-             return ratingsStrings.Keys.ToList();
 
-         }
 
-         //public Microsoft.MediaCenter.UI.Image RatingImage(string rating)
 
-         //{
 
-         //    return Helper.GetMediaInfoImage("Rated_" + rating);
 
-         //}
 
-     }
 
- }
 
 
  |