From 70aebff444b30e98365d5d4ff477e88e77430a5c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 15 Nov 2016 12:55:26 -0500 Subject: [PATCH] add movie prefix feature --- MediaBrowser.Controller/Entities/BaseItem.cs | 7 +++- .../LiveTv/LiveTvProgram.cs | 37 +++++++++++++++++++ MediaBrowser.Model/LiveTv/LiveTvOptions.cs | 1 + 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 10cac79922..cd61d2cce4 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/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; + } + /// /// This is called before any metadata refresh and returns true or false indicating if changes were made /// diff --git a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs index fd9507afa0..08fcc00353 100644 --- a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs +++ b/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("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 GetRelatedUrls() { var list = base.GetRelatedUrls(); diff --git a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs index fbd61ea97b..cc5148ba95 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs +++ b/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() {