From 41dfa2650102c43e5b010ef1f5cad3d159857b57 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 28 Oct 2016 14:45:56 -0400 Subject: update FolderXmlSaver --- MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs | 189 +++++++++++---------- .../Savers/FolderXmlSaver.cs | 57 ++----- 2 files changed, 111 insertions(+), 135 deletions(-) (limited to 'MediaBrowser.LocalMetadata') diff --git a/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs index eed846b7f..23cdf00b6 100644 --- a/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs +++ b/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs @@ -23,97 +23,116 @@ using MediaBrowser.Model.Xml; namespace MediaBrowser.LocalMetadata.Savers { - public abstract class BaseNfoSaver : IMetadataFileSaver + public abstract class BaseXmlSaver : IMetadataFileSaver { private static readonly CultureInfo UsCulture = new CultureInfo("en-US"); private static readonly Dictionary CommonTags = new[] { - "plot", - "customrating", - "lockdata", - "type", - "dateadded", - "title", - "rating", - "year", - "sorttitle", - "mpaa", - "mpaadescription", - "aspectratio", - "website", - "collectionnumber", - "tmdbid", - "rottentomatoesid", - "language", - "tvcomid", - "budget", - "revenue", - "tagline", - "studio", - "genre", - "tag", - "runtime", - "actor", - "criticratingsummary", - "criticrating", - "fileinfo", - "director", - "writer", - "trailer", - "premiered", - "releasedate", - "outline", - "id", - "votes", - "credits", - "originaltitle", - "watched", - "playcount", - "lastplayed", - "art", - "resume", - "biography", - "formed", - "review", - "style", - "imdbid", - "imdb_id", - "plotkeyword", - "country", - "audiodbalbumid", - "audiodbartistid", - "awardsummary", - "enddate", - "lockedfields", - "metascore", - "zap2itid", - "tvrageid", - "gamesdbid", - - "musicbrainzartistid", - "musicbrainzalbumartistid", - "musicbrainzalbumid", - "musicbrainzreleasegroupid", - "tvdbid", - "collectionitem", - - "isuserfavorite", - "userrating", - - "countrycode" + "Added", + "AspectRatio", + "AudioDbAlbumId", + "AudioDbArtistId", + "AwardSummary", + "BirthDate", + "Budget", + + // Deprecated. No longer saving in this field. + "certification", + + "Chapters", + "ContentRating", + "Countries", + "CustomRating", + "CriticRating", + "CriticRatingSummary", + "DeathDate", + "DisplayOrder", + "EndDate", + "Genres", + "Genre", + "GamesDbId", + + // Deprecated. No longer saving in this field. + "IMDB_ID", + + "IMDB", + + // Deprecated. No longer saving in this field. + "IMDbId", + + "Language", + "LocalTitle", + "OriginalTitle", + "LockData", + "LockedFields", + "Format3D", + "Metascore", + + // Deprecated. No longer saving in this field. + "MPAARating", + + "MPAADescription", + + "MusicBrainzArtistId", + "MusicBrainzAlbumArtistId", + "MusicBrainzAlbumId", + "MusicBrainzReleaseGroupId", + + // Deprecated. No longer saving in this field. + "MusicbrainzId", + + "Overview", + "ShortOverview", + "Persons", + "PlotKeywords", + "PremiereDate", + "ProductionYear", + "Rating", + "Revenue", + "RottenTomatoesId", + "RunningTime", + + // Deprecated. No longer saving in this field. + "Runtime", + + "SortTitle", + "Studios", + "Tags", + + // Deprecated. No longer saving in this field. + "TagLine", + + "Taglines", + "TMDbCollectionId", + "TMDbId", + + // Deprecated. No longer saving in this field. + "Trailer", + + "Trailers", + "TVcomId", + "TvDbId", + "Type", + "TVRageId", + "VoteCount", + "Website", + "Zap2ItId", + "CollectionItems", + "PlaylistItems", + "Shares" }.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase); - protected BaseNfoSaver(IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataManager, ILogger logger, IXmlReaderSettingsFactory xmlReaderSettingsFactory) + public BaseXmlSaver(IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataManager, ILogger logger, IXmlReaderSettingsFactory xmlReaderSettingsFactory) { + FileSystem = fileSystem; + ConfigurationManager = configurationManager; + LibraryManager = libraryManager; + UserManager = userManager; + UserDataManager = userDataManager; Logger = logger; XmlReaderSettingsFactory = xmlReaderSettingsFactory; - UserDataManager = userDataManager; - UserManager = userManager; - LibraryManager = libraryManager; - ConfigurationManager = configurationManager; - FileSystem = fileSystem; } protected IFileSystem FileSystem { get; private set; } @@ -136,15 +155,7 @@ namespace MediaBrowser.LocalMetadata.Savers { get { - return SaverName; - } - } - - public static string SaverName - { - get - { - return "Emby Xml"; + return XmlProviderUtils.Name; } } diff --git a/MediaBrowser.LocalMetadata/Savers/FolderXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/FolderXmlSaver.cs index 2d8576aa3..b51bd5b91 100644 --- a/MediaBrowser.LocalMetadata/Savers/FolderXmlSaver.cs +++ b/MediaBrowser.LocalMetadata/Savers/FolderXmlSaver.cs @@ -9,40 +9,28 @@ using System.Collections.Generic; using System.IO; using System.Text; using System.Threading; +using System.Xml; using MediaBrowser.Common.IO; using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; +using MediaBrowser.Model.Logging; +using MediaBrowser.Model.Xml; namespace MediaBrowser.LocalMetadata.Savers { - public class FolderXmlSaver : IMetadataFileSaver + public class FolderXmlSaver : BaseXmlSaver { - public string Name + protected override string GetLocalSavePath(IHasMetadata item) { - get - { - return XmlProviderUtils.Name; - } + return Path.Combine(item.Path, "folder.xml"); } - private readonly IServerConfigurationManager _config; - private readonly ILibraryManager _libraryManager; - private readonly IFileSystem _fileSystem; - - public FolderXmlSaver(IServerConfigurationManager config, ILibraryManager libraryManager, IFileSystem fileSystem) + protected override string GetRootElementName(IHasMetadata item) { - _config = config; - _libraryManager = libraryManager; - _fileSystem = fileSystem; + return "Item"; } - /// - /// Determines whether [is enabled for] [the specified item]. - /// - /// The item. - /// Type of the update. - /// true if [is enabled for] [the specified item]; otherwise, false. - public bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType) + public override bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType) { if (!item.SupportsLocalMetadata) { @@ -63,35 +51,12 @@ namespace MediaBrowser.LocalMetadata.Savers return false; } - /// - /// Saves the specified item. - /// - /// The item. - /// The cancellation token. - /// Task. - public void Save(IHasMetadata item, CancellationToken cancellationToken) + protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer) { - var builder = new StringBuilder(); - - builder.Append(""); - - XmlSaverHelpers.AddCommonNodes((Folder)item, _libraryManager, builder); - - builder.Append(""); - - var xmlFilePath = GetSavePath(item); - - XmlSaverHelpers.Save(builder, xmlFilePath, new List(), _config, _fileSystem); } - /// - /// Gets the save path. - /// - /// The item. - /// System.String. - public string GetSavePath(IHasMetadata item) + public FolderXmlSaver(IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataManager, ILogger logger, IXmlReaderSettingsFactory xmlReaderSettingsFactory) : base(fileSystem, configurationManager, libraryManager, userManager, userDataManager, logger, xmlReaderSettingsFactory) { - return Path.Combine(item.Path, "folder.xml"); } } } -- cgit v1.2.3 From 9c6da95d6a5dce333fb66a58d73f7655f3a4d6ce Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 28 Oct 2016 15:56:54 -0400 Subject: update xml saver --- .../Savers/GameSystemXmlSaver.cs | 77 +++++++--------------- MediaBrowser.Model/LiveTv/LiveTvOptions.cs | 2 +- .../LiveTv/EmbyTV/EncodedRecorder.cs | 4 +- 3 files changed, 26 insertions(+), 57 deletions(-) (limited to 'MediaBrowser.LocalMetadata') diff --git a/MediaBrowser.LocalMetadata/Savers/GameSystemXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/GameSystemXmlSaver.cs index e72cd392c..59b69746a 100644 --- a/MediaBrowser.LocalMetadata/Savers/GameSystemXmlSaver.cs +++ b/MediaBrowser.LocalMetadata/Savers/GameSystemXmlSaver.cs @@ -3,43 +3,20 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using System.Collections.Generic; using System.IO; -using System.Security; -using System.Text; -using System.Threading; -using MediaBrowser.Common.IO; -using MediaBrowser.Controller.IO; +using System.Xml; using MediaBrowser.Model.IO; +using MediaBrowser.Model.Logging; +using MediaBrowser.Model.Xml; namespace MediaBrowser.LocalMetadata.Savers { - public class GameSystemXmlSaver : IMetadataFileSaver + public class GameSystemXmlSaver : BaseXmlSaver { - public string Name + public GameSystemXmlSaver(IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataManager, ILogger logger, IXmlReaderSettingsFactory xmlReaderSettingsFactory) : base(fileSystem, configurationManager, libraryManager, userManager, userDataManager, logger, xmlReaderSettingsFactory) { - get - { - return XmlProviderUtils.Name; - } } - private readonly IServerConfigurationManager _config; - private readonly ILibraryManager _libraryManager; - private readonly IFileSystem _fileSystem; - - public GameSystemXmlSaver(IServerConfigurationManager config, ILibraryManager libraryManager, IFileSystem fileSystem) - { - _config = config; - _libraryManager = libraryManager; - _fileSystem = fileSystem; - } - - /// - /// Determines whether [is enabled for] [the specified item]. - /// - /// The item. - /// Type of the update. - /// true if [is enabled for] [the specified item]; otherwise, false. - public bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType) + public override bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType) { if (!item.SupportsLocalMetadata) { @@ -49,42 +26,34 @@ namespace MediaBrowser.LocalMetadata.Savers return item is GameSystem && updateType >= ItemUpdateType.MetadataDownload; } - /// - /// Saves the specified item. - /// - /// The item. - /// The cancellation token. - /// Task. - public void Save(IHasMetadata item, CancellationToken cancellationToken) + protected override List GetTagsUsed() { - var gameSystem = (GameSystem)item; + var list = new List + { + "GameSystem" + }; - var builder = new StringBuilder(); + return list; + } - builder.Append(""); + protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer) + { + var gameSystem = (GameSystem)item; if (!string.IsNullOrEmpty(gameSystem.GameSystemName)) { - builder.Append("" + SecurityElement.Escape(gameSystem.GameSystemName) + ""); + writer.WriteElementString("GameSystem", gameSystem.GameSystemName); } - - XmlSaverHelpers.AddCommonNodes(gameSystem, _libraryManager, builder); - - builder.Append(""); - - var xmlFilePath = GetSavePath(item); - - XmlSaverHelpers.Save(builder, xmlFilePath, new List(), _config, _fileSystem); } - /// - /// Gets the save path. - /// - /// The item. - /// System.String. - public string GetSavePath(IHasMetadata item) + protected override string GetLocalSavePath(IHasMetadata item) { return Path.Combine(item.Path, "gamesystem.xml"); } + + protected override string GetRootElementName(IHasMetadata item) + { + return "Item"; + } } } diff --git a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs index e19bddeee..fbd61ea97 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs +++ b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs @@ -16,7 +16,7 @@ namespace MediaBrowser.Model.LiveTv public string RecordingEncodingFormat { get; set; } public bool EnableRecordingSubfolders { get; set; } public bool EnableOriginalAudioWithEncodedRecordings { get; set; } - public bool EnableOriginalVideoWithEncodedRecordings { get; set; } + public string RecordedVideoCodec { get; set; } public List TunerHosts { get; set; } public List ListingProviders { get; set; } diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs index 20b643911..95c2b5ebb 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs @@ -53,7 +53,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV { var format = _liveTvOptions.RecordingEncodingFormat; - if (string.Equals(format, "mkv", StringComparison.OrdinalIgnoreCase) || _liveTvOptions.EnableOriginalVideoWithEncodedRecordings) + if (string.Equals(format, "mkv", StringComparison.OrdinalIgnoreCase) || string.Equals(_liveTvOptions.RecordedVideoCodec, "copy", StringComparison.OrdinalIgnoreCase)) { return "mkv"; } @@ -205,7 +205,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV private bool EncodeVideo(MediaSourceInfo mediaSource) { - if (_liveTvOptions.EnableOriginalVideoWithEncodedRecordings) + if (string.Equals(_liveTvOptions.RecordedVideoCodec, "copy", StringComparison.OrdinalIgnoreCase)) { return false; } -- cgit v1.2.3