diff options
Diffstat (limited to 'MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs')
| -rw-r--r-- | MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs | 92 |
1 files changed, 30 insertions, 62 deletions
diff --git a/MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs index 4e6703677..26c4b4a93 100644 --- a/MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs +++ b/MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs @@ -4,46 +4,21 @@ using MediaBrowser.Controller.Library; using System.Collections.Generic; using System.Globalization; 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 { /// <summary> /// Saves game.xml for games /// </summary> - public class GameXmlSaver : IMetadataFileSaver + public class GameXmlSaver : BaseXmlSaver { - public string Name - { - get - { - return XmlProviderUtils.Name; - } - } - - private readonly IServerConfigurationManager _config; - private readonly ILibraryManager _libraryManager; - private readonly IFileSystem _fileSystem; - - public GameXmlSaver(IServerConfigurationManager config, ILibraryManager libraryManager, IFileSystem fileSystem) - { - _config = config; - _libraryManager = libraryManager; - _fileSystem = fileSystem; - } + private static readonly CultureInfo UsCulture = new CultureInfo("en-US"); - /// <summary> - /// Determines whether [is enabled for] [the specified item]. - /// </summary> - /// <param name="item">The item.</param> - /// <param name="updateType">Type of the update.</param> - /// <returns><c>true</c> if [is enabled for] [the specified item]; otherwise, <c>false</c>.</returns> - public bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType) + public override bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType) { if (!item.SupportsLocalMetadata) { @@ -53,52 +28,41 @@ namespace MediaBrowser.LocalMetadata.Savers return item is Game && updateType >= ItemUpdateType.MetadataDownload; } - private static readonly CultureInfo UsCulture = new CultureInfo("en-US"); - - /// <summary> - /// Saves the specified item. - /// </summary> - /// <param name="item">The item.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task.</returns> - public void Save(IHasMetadata item, CancellationToken cancellationToken) + protected override List<string> GetTagsUsed() { - var builder = new StringBuilder(); + var list = new List<string> + { + "GameSystem", + "Players" + }; - builder.Append("<Item>"); + return list; + } + protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer) + { var game = (Game)item; - if (game.PlayersSupported.HasValue) + if (!string.IsNullOrEmpty(game.GameSystem)) { - builder.Append("<Players>" + SecurityElement.Escape(game.PlayersSupported.Value.ToString(UsCulture)) + "</Players>"); + writer.WriteElementString("GameSystem", game.GameSystem); } - - if (!string.IsNullOrEmpty(game.GameSystem)) + if (game.PlayersSupported.HasValue) { - builder.Append("<GameSystem>" + SecurityElement.Escape(game.GameSystem) + "</GameSystem>"); + writer.WriteElementString("Players", game.PlayersSupported.Value.ToString(UsCulture)); } - - XmlSaverHelpers.AddCommonNodes(game, _libraryManager, builder); - - builder.Append("</Item>"); - - var xmlFilePath = GetSavePath(item); - - XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> - { - "Players", - "GameSystem", - "NesBox", - "NesBoxRom" - }, _config, _fileSystem); } - public string GetSavePath(IHasMetadata item) + protected override string GetLocalSavePath(IHasMetadata item) { return GetGameSavePath((Game)item); } + protected override string GetRootElementName(IHasMetadata item) + { + return "Item"; + } + public static string GetGameSavePath(Game item) { if (item.DetectIsInMixedFolder()) @@ -108,5 +72,9 @@ namespace MediaBrowser.LocalMetadata.Savers return Path.Combine(item.ContainingFolderPath, "game.xml"); } + + public GameXmlSaver(IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataManager, ILogger logger, IXmlReaderSettingsFactory xmlReaderSettingsFactory) : base(fileSystem, configurationManager, libraryManager, userManager, userDataManager, logger, xmlReaderSettingsFactory) + { + } } } |
