Browse Source

add movie prefix feature

Luke Pulverenti 8 years ago
parent
commit
70aebff444

+ 6 - 1
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -2134,7 +2134,7 @@ namespace MediaBrowser.Controller.Entities
             {
                 MetadataCountryCode = GetPreferredMetadataCountryCode(),
                 MetadataLanguage = GetPreferredMetadataLanguage(),
-                Name = Name,
+                Name = GetNameForMetadataLookup(),
                 ProviderIds = ProviderIds,
                 IndexNumber = IndexNumber,
                 ParentIndexNumber = ParentIndexNumber,
@@ -2143,6 +2143,11 @@ namespace MediaBrowser.Controller.Entities
             };
         }
 
+        protected virtual string GetNameForMetadataLookup()
+        {
+            return Name;
+        }
+
         /// <summary>
         /// This is called before any metadata refresh and returns true or false indicating if changes were made
         /// </summary>

+ 37 - 0
MediaBrowser.Controller/LiveTv/LiveTvProgram.cs

@@ -4,9 +4,12 @@ using MediaBrowser.Model.Configuration;
 using MediaBrowser.Model.LiveTv;
 using System;
 using System.Collections.Generic;
+using System.Linq;
+using MediaBrowser.Common.Configuration;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Providers;
 using MediaBrowser.Model.Serialization;
+using MediaBrowser.Model.Extensions;
 
 namespace MediaBrowser.Controller.LiveTv
 {
@@ -236,6 +239,40 @@ namespace MediaBrowser.Controller.LiveTv
             }
         }
 
+        private LiveTvOptions GetConfiguration()
+        {
+            return ConfigurationManager.GetConfiguration<LiveTvOptions>("livetv");
+        }
+
+        private ListingsProviderInfo GetListingsProviderInfo()
+        {
+            if (string.Equals(ServiceName, "Emby", StringComparison.OrdinalIgnoreCase))
+            {
+                var config = GetConfiguration();
+
+                return config.ListingProviders.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i.MoviePrefix));
+            }
+
+            return null;
+        }
+
+        protected override string GetNameForMetadataLookup()
+        {
+            var name = base.GetNameForMetadataLookup();
+
+            var listings = GetListingsProviderInfo();
+
+            if (listings != null)
+            {
+                if (!string.IsNullOrWhiteSpace(listings.MoviePrefix))
+                {
+                    name = name.Replace(listings.MoviePrefix, string.Empty, StringComparison.OrdinalIgnoreCase).Trim();
+                }
+            }
+
+            return name;
+        }
+
         public override List<ExternalUrl> GetRelatedUrls()
         {
             var list = base.GetRelatedUrls();

+ 1 - 0
MediaBrowser.Model/LiveTv/LiveTvOptions.cs

@@ -83,6 +83,7 @@ namespace MediaBrowser.Model.LiveTv
         public string[] KidsCategories { get; set; }
         public string[] MovieCategories { get; set; }
         public NameValuePair[] ChannelMappings { get; set; }
+        public string MoviePrefix { get; set; }
 
         public ListingsProviderInfo()
         {