From 21706ffa52c8dc053206b29931adc0d039ec75f1 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 23 Feb 2014 22:27:13 -0500 Subject: [PATCH] limit ifo's to 300mb+ --- .../Manager/ProviderManager.cs | 8 +- .../MediaInfo/FFProbeVideoInfo.cs | 21 +++-- .../Music/SoundtrackPostScanTask.cs | 82 +------------------ .../Omdb/OmdbItemProvider.cs | 14 ++-- .../LiveTv/RefreshChannelsScheduledTask.cs | 2 +- .../Api/DashboardService.cs | 6 +- 6 files changed, 31 insertions(+), 102 deletions(-) diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs index e95ff9e3d3..c8989529b8 100644 --- a/MediaBrowser.Providers/Manager/ProviderManager.cs +++ b/MediaBrowser.Providers/Manager/ProviderManager.cs @@ -445,11 +445,15 @@ namespace MediaBrowser.Providers.Manager AddMetadataPlugins(summary.Plugins, dummy, options); AddImagePlugins(summary.Plugins, dummy, imageProviders); - summary.SupportedImageTypes = imageProviders.OfType() + var supportedImageTypes = imageProviders.OfType() .SelectMany(i => i.GetSupportedImages(dummy)) - .Distinct() .ToList(); + supportedImageTypes.AddRange(imageProviders.OfType() + .SelectMany(i => i.GetSupportedImages(dummy))); + + summary.SupportedImageTypes = supportedImageTypes.Distinct().ToList(); + return summary; } diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs index 05ea49018c..115ffd444a 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs @@ -585,8 +585,9 @@ namespace MediaBrowser.Providers.MediaInfo // Try to eliminate menus and intros by skipping all files at the front of the list that are less than the minimum size // Once we reach a file that is at least the minimum, return all subsequent ones - var allVobs = Directory.EnumerateFiles(root, "*", SearchOption.AllDirectories) - .Where(file => string.Equals(Path.GetExtension(file), ".vob", StringComparison.OrdinalIgnoreCase)) + var allVobs = new DirectoryInfo(root).EnumerateFiles("*", SearchOption.AllDirectories) + .Where(file => string.Equals(file.Extension, ".vob", StringComparison.OrdinalIgnoreCase)) + .OrderBy(i => i.FullName) .ToList(); // If we didn't find any satisfying the min length, just take them all @@ -599,18 +600,22 @@ namespace MediaBrowser.Providers.MediaInfo if (titleNumber.HasValue) { var prefix = string.Format("VTS_0{0}_", titleNumber.Value.ToString(_usCulture)); - var vobs = allVobs.Where(i => Path.GetFileName(i).StartsWith(prefix, StringComparison.OrdinalIgnoreCase)).ToList(); + var vobs = allVobs.Where(i => i.Name.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)).ToList(); if (vobs.Count > 0) { - return vobs; + var minSizeVobs = allVobs + .SkipWhile(f => f.Length < minPlayableSize) + .ToList(); + + return minSizeVobs.Count == 0 ? vobs.Select(i => i.FullName) : minSizeVobs.Select(i => i.FullName); } _logger.Debug("Could not determine vob file list for {0} using DvdLib. Will scan using file sizes.", video.Path); } var files = allVobs - .SkipWhile(f => new FileInfo(f).Length < minPlayableSize) + .SkipWhile(f => f.Length < minPlayableSize) .ToList(); // If we didn't find any satisfying the min length, just take them all @@ -623,7 +628,7 @@ namespace MediaBrowser.Providers.MediaInfo // Assuming they're named "vts_05_01", take all files whose second part matches that of the first file if (files.Count > 0) { - var parts = Path.GetFileNameWithoutExtension(files[0]).Split('_'); + var parts = Path.GetFileNameWithoutExtension(files[0].FullName).Split('_'); if (parts.Length == 3) { @@ -631,7 +636,7 @@ namespace MediaBrowser.Providers.MediaInfo files = files.TakeWhile(f => { - var fileParts = Path.GetFileNameWithoutExtension(f).Split('_'); + var fileParts = Path.GetFileNameWithoutExtension(f.FullName).Split('_'); return fileParts.Length == 3 && string.Equals(title, fileParts[1], StringComparison.OrdinalIgnoreCase); @@ -646,7 +651,7 @@ namespace MediaBrowser.Providers.MediaInfo } } - return files; + return files.Select(i => i.FullName); } } } diff --git a/MediaBrowser.Providers/Music/SoundtrackPostScanTask.cs b/MediaBrowser.Providers/Music/SoundtrackPostScanTask.cs index 0e5dfdb2b6..dc94460f4e 100644 --- a/MediaBrowser.Providers/Music/SoundtrackPostScanTask.cs +++ b/MediaBrowser.Providers/Music/SoundtrackPostScanTask.cs @@ -1,12 +1,5 @@ -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Library; using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Text; using System.Threading; using System.Threading.Tasks; @@ -31,80 +24,9 @@ namespace MediaBrowser.Providers.Music private void RunInternal(IProgress progress, CancellationToken cancellationToken) { - var allItems = _libraryManager.RootFolder - .RecursiveChildren - .ToList(); - - var musicAlbums = allItems - .OfType() - .ToList(); - - var itemsWithSoundtracks = allItems.OfType().ToList(); - - foreach (var item in itemsWithSoundtracks) - { - cancellationToken.ThrowIfCancellationRequested(); - - item.SoundtrackIds = GetSoundtrackIds(item, musicAlbums).ToList(); - } - - progress.Report(50); - - itemsWithSoundtracks = itemsWithSoundtracks.Where(i => i.SoundtrackIds.Count > 0).ToList(); - - foreach (var album in musicAlbums) - { - cancellationToken.ThrowIfCancellationRequested(); - - album.SoundtrackIds = GetAlbumLinks(album.Id, itemsWithSoundtracks).ToList(); - } + // Reimplement this when more kinds of associations are supported. progress.Report(100); } - - private IEnumerable GetSoundtrackIds(IHasSoundtracks item, IEnumerable albums) - { - var itemName = GetComparableName(item.Name); - - return albums.Where(i => string.Equals(itemName, GetComparableName(i.Name), StringComparison.OrdinalIgnoreCase)).Select(i => i.Id); - } - - private static string GetComparableName(string name) - { - name = " " + name + " "; - - name = name.Replace(".", " ") - .Replace("_", " ") - .Replace("&", " ") - .Replace("!", " ") - .Replace("(", " ") - .Replace(")", " ") - .Replace(",", " ") - .Replace("-", " ") - .Replace(" a ", String.Empty, StringComparison.OrdinalIgnoreCase) - .Replace(" the ", String.Empty, StringComparison.OrdinalIgnoreCase) - .Replace(" ", String.Empty); - - return name.Trim(); - } - - /// - /// Removes the diacritics. - /// - /// The text. - /// System.String. - private static string RemoveDiacritics(string text) - { - return String.Concat( - text.Normalize(NormalizationForm.FormD) - .Where(ch => CharUnicodeInfo.GetUnicodeCategory(ch) != - UnicodeCategory.NonSpacingMark) - ).Normalize(NormalizationForm.FormC); - } - - private IEnumerable GetAlbumLinks(Guid albumId, IEnumerable items) - { - return items.Where(i => i.SoundtrackIds.Contains(albumId)).Select(i => i.Id); - } } } diff --git a/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs b/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs index c9d73fe0c6..76d93d946a 100644 --- a/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs +++ b/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs @@ -59,18 +59,17 @@ namespace MediaBrowser.Providers.Omdb var imdbId = info.GetProviderId(MetadataProviders.Imdb); + var searchResult = await GetSeriesImdbId(info, cancellationToken).ConfigureAwait(false); + result.Item.Name = searchResult.Item3; + if (string.IsNullOrEmpty(imdbId)) { - var searchResult = await GetSeriesImdbId(info, cancellationToken).ConfigureAwait(false); - imdbId = searchResult.Item1; if (!string.IsNullOrEmpty(searchResult.Item2)) { result.Item.SetProviderId(MetadataProviders.Tvdb, searchResult.Item2); } - - result.Item.Name = searchResult.Item3; } if (!string.IsNullOrEmpty(imdbId)) @@ -112,18 +111,17 @@ namespace MediaBrowser.Providers.Omdb var imdbId = info.GetProviderId(MetadataProviders.Imdb); + var searchResult = await GetMovieImdbId(info, cancellationToken).ConfigureAwait(false); + result.Item.Name = searchResult.Item3; + if (string.IsNullOrEmpty(imdbId)) { - var searchResult = await GetMovieImdbId(info, cancellationToken).ConfigureAwait(false); - imdbId = searchResult.Item1; if (!string.IsNullOrEmpty(searchResult.Item2)) { result.Item.SetProviderId(MetadataProviders.Tmdb, searchResult.Item2); } - - result.Item.Name = searchResult.Item3; } if (!string.IsNullOrEmpty(imdbId)) diff --git a/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs b/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs index 1f61d1a4f4..3e17a67a11 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs @@ -46,7 +46,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv new SystemEventTrigger{ SystemEvent = SystemEvent.WakeFromSleep}, - new IntervalTrigger{ Interval = TimeSpan.FromHours(2)} + new IntervalTrigger{ Interval = TimeSpan.FromHours(3)} }; } diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs index d360468637..e5d62a256c 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardService.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs @@ -439,8 +439,8 @@ namespace MediaBrowser.WebDashboard.Api var files = new[] { "scripts/all.js" + versionString, - "thirdparty/jstree1.0/jquery.jstree.min.js", - "https://www.gstatic.com/cv/js/sender/v1/cast_sender.js" + "thirdparty/jstree1.0/jquery.jstree.min.js" + //"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js" }; var tags = files.Select(s => string.Format("", s)).ToArray(); @@ -465,7 +465,7 @@ namespace MediaBrowser.WebDashboard.Api "librarybrowser.js", "editorsidebar.js", "librarymenu.js", - "chromecast.js", + //"chromecast.js", "ratingdialog.js", "aboutpage.js",