diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-02-23 11:28:59 -0500 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2016-02-23 11:28:59 -0500 |
| commit | 4b1bfe3f8d2dd46d88b9b8cb2cae024dfbc945eb (patch) | |
| tree | f6e66f56c1f8a29d5d342e20abc74d9bc89ac5f5 /MediaBrowser.Server.Implementations | |
| parent | 5945a0c3be02ac7f3fe81f0f31b76f0fd3134264 (diff) | |
| parent | 7393570c4baee987963c1baa9e785a36183e9855 (diff) | |
Merge pull request #1492 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations')
3 files changed, 90 insertions, 30 deletions
diff --git a/MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs b/MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs index 51a104241..703096a2b 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs +++ b/MediaBrowser.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs @@ -213,8 +213,18 @@ namespace MediaBrowser.Server.Implementations.EntryPoints if (userSessions.Count > 0) { - var info = GetLibraryUpdateInfo(itemsAdded, itemsUpdated, itemsRemoved, foldersAddedTo, - foldersRemovedFrom, id); + LibraryUpdateInfo info; + + try + { + info = GetLibraryUpdateInfo(itemsAdded, itemsUpdated, itemsRemoved, foldersAddedTo, + foldersRemovedFrom, id); + } + catch (Exception ex) + { + _logger.ErrorException("Error in GetLibraryUpdateInfo", ex); + return; + } foreach (var userSession in userSessions) { diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs index 9ec5809a9..51c35caf4 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs @@ -48,12 +48,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts private List<M3UChannel> GetChannels(StreamReader reader, string urlHash, string channelIdPrefix) { var channels = new List<M3UChannel>(); - - string channnelName = null; - string channelNumber = null; string line; - string imageUrl = null; - while ((line = reader.ReadLine()) != null) + string extInf = ""; + while ((line = reader.ReadLine()) != null) { line = line.Trim(); if (string.IsNullOrWhiteSpace(line)) @@ -68,30 +65,49 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts if (line.StartsWith("#EXTINF:", StringComparison.OrdinalIgnoreCase)) { - line = line.Substring(8); - _logger.Info("Found m3u channel: {0}", line); - var parts = line.Split(new[] { ',' }, 2); - channelNumber = parts[0].Trim().Split(' ')[0] ?? "0"; - channnelName = FindProperty("tvg-name", line, parts[1]); - imageUrl = FindProperty("tvg-logo", line, null); + extInf = line.Substring(8).Trim(); + _logger.Info("Found m3u channel: {0}", extInf); } - else if (!string.IsNullOrWhiteSpace(channelNumber)) - { - channels.Add(new M3UChannel - { - Name = channnelName, - Number = channelNumber, - Id = channelIdPrefix + urlHash + line.GetMD5().ToString("N"), - ImageUrl = imageUrl - }); - - imageUrl = null; - channelNumber = null; - channnelName = null; + else if (!string.IsNullOrWhiteSpace(extInf)) + { + var channel = GetChannelnfo(extInf); + channel.Id = channelIdPrefix + urlHash + line.GetMD5().ToString("N"); + channel.Path = line; + channels.Add(channel); + extInf = ""; } } return channels; } + public M3UChannel GetChannelnfo(string extInf) + { + var titleIndex = extInf.LastIndexOf(','); + var channel = new M3UChannel(); + + channel.Number = extInf.Trim().Split(' ')[0] ?? "0"; + channel.Name = extInf.Substring(titleIndex + 1); + + if(channel.Number == "-1") { channel.Number = "0"; } + + //Check for channel number with the format from SatIp + int number; + var numberIndex = channel.Name.IndexOf('.'); + if (numberIndex > 0) + { + if (int.TryParse(channel.Name.Substring(0, numberIndex), out number)) + { + channel.Number = number.ToString(); + channel.Name = channel.Name.Substring(numberIndex + 1); + } + } + channel.ImageUrl = FindProperty("tvg-logo", extInf, null); + channel.Number = FindProperty("tvg-id", extInf, channel.Number); + channel.Number = FindProperty("channel-id", extInf, channel.Number); + channel.Name = FindProperty("tvg-name", extInf, channel.Name); + channel.Name = FindProperty("tvg-id", extInf, channel.Name); + return channel; + + } public string FindProperty(string property, string properties, string defaultResult = "") { var reg = new Regex(@"([a-z0-9\-_]+)=\""([^""]+)\""", RegexOptions.IgnoreCase); diff --git a/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs b/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs index c30d35ed2..4a69646f8 100644 --- a/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs +++ b/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs @@ -1,6 +1,5 @@ using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Extensions; -using MediaBrowser.Common.IO; using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; @@ -14,6 +13,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using CommonIO; +using MediaBrowser.Model.Configuration; namespace MediaBrowser.Server.Implementations.Photos { @@ -47,6 +47,41 @@ namespace MediaBrowser.Server.Implementations.Photos }; } + private IEnumerable<ImageType> GetEnabledImages(IHasImages item) + { + //var options = ProviderManager.GetMetadataOptions(item); + + return GetSupportedImages(item); + //return GetSupportedImages(item).Where(i => IsEnabled(options, i, item)).ToList(); + } + + private bool IsEnabled(MetadataOptions options, ImageType type, IHasImages item) + { + if (type == ImageType.Backdrop) + { + if (item.LockedFields.Contains(MetadataFields.Backdrops)) + { + return false; + } + } + else if (type == ImageType.Screenshot) + { + if (item.LockedFields.Contains(MetadataFields.Screenshots)) + { + return false; + } + } + else + { + if (item.LockedFields.Contains(MetadataFields.Images)) + { + return false; + } + } + + return options.IsEnabled(type); + } + public async Task<ItemUpdateType> FetchAsync(T item, MetadataRefreshOptions options, CancellationToken cancellationToken) { if (!Supports(item)) @@ -55,7 +90,7 @@ namespace MediaBrowser.Server.Implementations.Photos } var updateType = ItemUpdateType.None; - var supportedImages = GetSupportedImages(item).ToList(); + var supportedImages = GetEnabledImages(item).ToList(); if (supportedImages.Contains(ImageType.Primary)) { @@ -69,7 +104,6 @@ namespace MediaBrowser.Server.Implementations.Photos updateType = updateType | thumbResult; } - return updateType; } @@ -220,7 +254,7 @@ namespace MediaBrowser.Server.Implementations.Photos return false; } - var supportedImages = GetSupportedImages(item).ToList(); + var supportedImages = GetEnabledImages(item).ToList(); if (supportedImages.Contains(ImageType.Primary) && HasChanged(item, ImageType.Primary)) { |
