diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-04 00:55:34 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-04 00:55:34 -0500 |
| commit | e27040f61b1fb80593a5ed99757b1ebdd69cf5d4 (patch) | |
| tree | ff95e1c1eb588af00bb0424251b6615c94d9dc88 | |
| parent | 36295aa833bf5d152613500a4546aa76314150a8 (diff) | |
don't save metadata when video content type is unset
16 files changed, 81 insertions, 30 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 90427de75..ee562d8b4 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -1577,6 +1577,11 @@ namespace MediaBrowser.Controller.Entities foreach (var newImage in images) { + if (newImage == null) + { + throw new ArgumentException("null image found in list"); + } + var existing = existingImages .FirstOrDefault(i => string.Equals(i.Path, newImage.FullName, StringComparison.OrdinalIgnoreCase)); diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs index 4c1aac700..b3774cfe0 100644 --- a/MediaBrowser.Controller/Entities/Movies/Movie.cs +++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs @@ -1,6 +1,7 @@ using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Users; using System; using System.Collections.Generic; using System.IO; @@ -8,7 +9,6 @@ using System.Linq; using System.Runtime.Serialization; using System.Threading; using System.Threading.Tasks; -using MediaBrowser.Model.Users; namespace MediaBrowser.Controller.Entities.Movies { diff --git a/MediaBrowser.LocalMetadata/Savers/MovieXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/MovieXmlSaver.cs index 6fe9f88f0..cad08e638 100644 --- a/MediaBrowser.LocalMetadata/Savers/MovieXmlSaver.cs +++ b/MediaBrowser.LocalMetadata/Savers/MovieXmlSaver.cs @@ -19,11 +19,13 @@ namespace MediaBrowser.LocalMetadata.Savers { private readonly IItemRepository _itemRepository; private readonly IServerConfigurationManager _config; + private readonly ILibraryManager _libraryManager; - public MovieXmlSaver(IItemRepository itemRepository, IServerConfigurationManager config) + public MovieXmlSaver(IItemRepository itemRepository, IServerConfigurationManager config, ILibraryManager libraryManager) { _itemRepository = itemRepository; _config = config; + _libraryManager = libraryManager; } public string Name @@ -52,6 +54,15 @@ namespace MediaBrowser.LocalMetadata.Savers // Check parent for null to avoid running this against things like video backdrops if (video != null && !(item is Episode) && !video.IsOwnedItem) { + // If it's a plain video, skip if content type is unset (unless editing) + if (video.GetType() == typeof(Video)) + { + if (updateType < ItemUpdateType.MetadataEdit && string.IsNullOrEmpty(_libraryManager.GetContentType(video))) + { + return false; + } + } + return updateType >= ItemUpdateType.MetadataDownload; } diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs index ba5b6a122..6c941e804 100644 --- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs +++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs @@ -33,6 +33,12 @@ namespace MediaBrowser.Model.Configuration public bool EnableInternetProviders { get; set; } /// <summary> + /// Gets or sets a value indicating whether this instance is port authorized. + /// </summary> + /// <value><c>true</c> if this instance is port authorized; otherwise, <c>false</c>.</value> + public bool IsPortAuthorized { get; set; } + + /// <summary> /// Gets or sets the item by name path. /// </summary> /// <value>The item by name path.</value> diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs index d88625396..c12a1161b 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs +++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs @@ -1,6 +1,4 @@ -using System.Net; -using System.Text; -using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Extensions; using MediaBrowser.Common.IO; using MediaBrowser.Common.Net; using MediaBrowser.Controller.Channels; @@ -10,7 +8,6 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Localization; using MediaBrowser.Controller.Providers; -using MediaBrowser.Controller.Resolvers; using MediaBrowser.Model.Channels; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; @@ -24,9 +21,10 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Net; +using System.Text; using System.Threading; using System.Threading.Tasks; -using MediaBrowser.Server.Implementations.Library; namespace MediaBrowser.Server.Implementations.Channels { @@ -1293,16 +1291,16 @@ namespace MediaBrowser.Server.Implementations.Channels } } - private async Task RefreshIfNeeded(BaseItem program, CancellationToken cancellationToken) + private readonly Task _cachedTask = Task.FromResult(true); + private Task RefreshIfNeeded(BaseItem program, CancellationToken cancellationToken) { - if (_refreshedItems.ContainsKey(program.Id)) + if (!_refreshedItems.ContainsKey(program.Id)) { - return; + _refreshedItems.TryAdd(program.Id, true); + return program.RefreshMetadata(cancellationToken); } - await program.RefreshMetadata(cancellationToken).ConfigureAwait(false); - - _refreshedItems.TryAdd(program.Id, true); + return _cachedTask; } internal IChannel GetChannelProvider(Channel channel) diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index ac742f04a..96498563e 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -309,16 +309,16 @@ namespace MediaBrowser.Server.Implementations.LiveTv return Task.FromResult(true); } - private async Task RefreshIfNeeded(LiveTvProgram program, CancellationToken cancellationToken) + private readonly Task _cachedTask = Task.FromResult(true); + private Task RefreshIfNeeded(LiveTvProgram program, CancellationToken cancellationToken) { - if (_refreshedPrograms.ContainsKey(program.Id)) + if (!_refreshedPrograms.ContainsKey(program.Id)) { - return; + _refreshedPrograms.TryAdd(program.Id, true); + return program.RefreshMetadata(cancellationToken); } - _refreshedPrograms.TryAdd(program.Id, true); - - await program.RefreshMetadata(cancellationToken).ConfigureAwait(false); + return _cachedTask; } public async Task<ILiveTvRecording> GetInternalRecording(string id, CancellationToken cancellationToken) diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json index 02fdf9b93..aff630846 100644 --- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json +++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json @@ -294,7 +294,7 @@ "LabelNewProgram": "NEW", "LabelPremiereProgram": "PREMIERE", "LabelHDProgram": "HD", - "HeaderChangeFolderType": "Change Folder Type", + "HeaderChangeFolderType": "Change Content Type", "HeaderChangeFolderTypeHelp": "To change the type, please remove and rebuild the folder with the new type.", "HeaderAlert": "Alert", "MessagePleaseRestart": "Please restart to finish updating.", @@ -627,7 +627,7 @@ "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.", "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Media Browser.", "HeaderConnectionFailure": "Connection Failure", - "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please try again later.", + "MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.", "ButtonSelectServer": "Select server", "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.", "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.", diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json index e07c9adb7..2d00f3c76 100644 --- a/MediaBrowser.Server.Implementations/Localization/Server/server.json +++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json @@ -241,10 +241,12 @@ "VisitMediaBrowserWebsite": "Visit the Media Browser Web Site", "VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.", "OptionHideUser": "Hide this user from login screens", + "OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.", "OptionDisableUser": "Disable this user", "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.", "HeaderAdvancedControl": "Advanced Control", "LabelName": "Name:", + "ButtonHelp": "Help", "OptionAllowUserToManageServer": "Allow this user to manage the server", "HeaderFeatureAccess": "Feature Access", "OptionAllowMediaPlayback": "Allow media playback", diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs index 41f0a2806..bbdb89ac3 100644 --- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs +++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs @@ -750,7 +750,14 @@ namespace MediaBrowser.Server.Startup.Common /// </summary> protected override void FindParts() { - if (IsFirstRun) + // TODO: Remove after next release + if (!IsFirstRun && !ServerConfigurationManager.Configuration.IsPortAuthorized) + { + ServerConfigurationManager.Configuration.IsPortAuthorized = true; + ConfigurationManager.SaveConfiguration(); + } + + if (!ServerConfigurationManager.Configuration.IsPortAuthorized) { RegisterServerWithAdministratorAccess(); } @@ -824,6 +831,9 @@ namespace MediaBrowser.Server.Startup.Common if (!HttpServer.UrlPrefixes.SequenceEqual(HttpServerUrlPrefixes, StringComparer.OrdinalIgnoreCase)) { + ServerConfigurationManager.Configuration.IsPortAuthorized = false; + ServerConfigurationManager.SaveConfiguration(); + NotifyPendingRestart(); } } diff --git a/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs index 583255891..9bd9ac65e 100644 --- a/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs +++ b/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs @@ -36,7 +36,7 @@ namespace MediaBrowser.XbmcMetadata.Savers return false; } - return item is MusicAlbum && updateType >= ItemUpdateType.ImageUpdate; + return item is MusicAlbum && updateType >= MinimumUpdateType; } protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer) diff --git a/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs index 1ef0304fe..c592ec4b7 100644 --- a/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs +++ b/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs @@ -36,7 +36,7 @@ namespace MediaBrowser.XbmcMetadata.Savers return false; } - return item is MusicArtist && updateType >= ItemUpdateType.ImageUpdate; + return item is MusicArtist && updateType >= MinimumUpdateType; } protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer) diff --git a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs index 0f1d53ea6..da5126676 100644 --- a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs +++ b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs @@ -119,6 +119,19 @@ namespace MediaBrowser.XbmcMetadata.Savers protected IUserDataManager UserDataManager { get; private set; } protected ILogger Logger { get; private set; } + protected ItemUpdateType MinimumUpdateType + { + get + { + if (ConfigurationManager.GetNfoConfiguration().SaveImagePathsInNfo) + { + return ItemUpdateType.ImageUpdate; + } + + return ItemUpdateType.MetadataDownload; + } + } + public string Name { get diff --git a/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs index 090d41015..6fd396e40 100644 --- a/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs +++ b/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs @@ -35,7 +35,7 @@ namespace MediaBrowser.XbmcMetadata.Savers return false; } - return item is Episode && updateType >= ItemUpdateType.ImageUpdate; + return item is Episode && updateType >= MinimumUpdateType; } protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer) diff --git a/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs index bfb2b916e..d049843f3 100644 --- a/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs +++ b/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs @@ -55,7 +55,15 @@ namespace MediaBrowser.XbmcMetadata.Savers // Check parent for null to avoid running this against things like video backdrops if (video != null && !(item is Episode) && !video.IsOwnedItem) { - return updateType >= ItemUpdateType.ImageUpdate; + // If it's a plain video, skip if content type is unset (unless editing) + if (video.GetType() == typeof (Video)) + { + if (updateType < ItemUpdateType.MetadataEdit && string.IsNullOrEmpty(LibraryManager.GetContentType(video))) + { + return false; + } + } + return updateType >= MinimumUpdateType; } return false; @@ -95,8 +103,6 @@ namespace MediaBrowser.XbmcMetadata.Savers } } - private static readonly CultureInfo UsCulture = new CultureInfo("en-US"); - protected override List<string> GetTagsUsed() { var list = new List<string> diff --git a/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs index 99a53fd9e..49ace7702 100644 --- a/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs +++ b/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs @@ -39,7 +39,7 @@ namespace MediaBrowser.XbmcMetadata.Savers return false; } - return updateType >= ItemUpdateType.ImageUpdate || (updateType >= ItemUpdateType.MetadataImport && File.Exists(GetSavePath(item))); + return updateType >= MinimumUpdateType || (updateType >= ItemUpdateType.MetadataImport && File.Exists(GetSavePath(item))); } protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer) diff --git a/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs index 0498919ae..099e8dbd7 100644 --- a/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs +++ b/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs @@ -35,7 +35,7 @@ namespace MediaBrowser.XbmcMetadata.Savers return false; } - return item is Series && updateType >= ItemUpdateType.ImageUpdate; + return item is Series && updateType >= MinimumUpdateType; } protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer) |
