diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-08-05 19:59:24 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-08-05 19:59:24 -0400 |
| commit | 3ba6364f259ea43979a88b2a83d64292119057dc (patch) | |
| tree | 5663fb9c54387e92a09d219488ad1af9276232aa /MediaBrowser.LocalMetadata | |
| parent | 7e25c857a551ce06025b3b85996aef7ed3c6571e (diff) | |
fixes #887 - Support ttml subtitle output
Diffstat (limited to 'MediaBrowser.LocalMetadata')
| -rw-r--r-- | MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs | 24 | ||||
| -rw-r--r-- | MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs | 12 |
3 files changed, 44 insertions, 6 deletions
diff --git a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs index 83bc6a49e..c7f974200 100644 --- a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs @@ -18,6 +18,20 @@ namespace MediaBrowser.LocalMetadata.Parsers { switch (reader.Name) { + case "OwnerUserId": + { + item.OwnerUserId = reader.ReadElementContentAsString(); + + break; + } + + case "PlaylistMediaType": + { + item.PlaylistMediaType = reader.ReadElementContentAsString(); + + break; + } + case "PlaylistItems": using (var subReader = reader.ReadSubtree()) diff --git a/MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs index abc7e3b3f..1541c2176 100644 --- a/MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs +++ b/MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Entities; +using System.Security; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Playlists; using System.Collections.Generic; @@ -42,17 +43,34 @@ namespace MediaBrowser.LocalMetadata.Savers /// <returns>Task.</returns> public void Save(IHasMetadata item, CancellationToken cancellationToken) { + var playlist = (Playlist)item; + var builder = new StringBuilder(); builder.Append("<Item>"); - XmlSaverHelpers.AddCommonNodes((Playlist)item, builder); + if (!string.IsNullOrEmpty(playlist.OwnerUserId)) + { + builder.Append("<OwnerUserId>" + SecurityElement.Escape(playlist.OwnerUserId) + "</OwnerUserId>"); + } + + if (!string.IsNullOrEmpty(playlist.PlaylistMediaType)) + { + builder.Append("<PlaylistMediaType>" + SecurityElement.Escape(playlist.PlaylistMediaType) + "</PlaylistMediaType>"); + } + + XmlSaverHelpers.AddCommonNodes(playlist, builder); builder.Append("</Item>"); var xmlFilePath = GetSavePath(item); - XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { }); + XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> + { + "OwnerUserId", + "PlaylistMediaType" + + }); } /// <summary> diff --git a/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs b/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs index a007a95cf..0801b7358 100644 --- a/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs +++ b/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs @@ -704,7 +704,7 @@ namespace MediaBrowser.LocalMetadata.Savers public static void AddLinkedChildren(Folder item, StringBuilder builder, string pluralNodeName, string singularNodeName) { var items = item.LinkedChildren - .Where(i => i.Type == LinkedChildType.Manual && !string.IsNullOrWhiteSpace(i.ItemName)) + .Where(i => i.Type == LinkedChildType.Manual) .ToList(); if (items.Count == 0) @@ -717,14 +717,20 @@ namespace MediaBrowser.LocalMetadata.Savers { builder.Append("<" + singularNodeName + ">"); - builder.Append("<Type>" + SecurityElement.Escape(link.ItemType) + "</Type>"); + if (!string.IsNullOrWhiteSpace(link.ItemType)) + { + builder.Append("<Type>" + SecurityElement.Escape(link.ItemType) + "</Type>"); + } if (link.ItemYear.HasValue) { builder.Append("<Year>" + SecurityElement.Escape(link.ItemYear.Value.ToString(UsCulture)) + "</Year>"); } - builder.Append("<Path>" + SecurityElement.Escape((link.Path ?? string.Empty)) + "</Path>"); + if (!string.IsNullOrWhiteSpace(link.Path)) + { + builder.Append("<Path>" + SecurityElement.Escape((link.Path)) + "</Path>"); + } builder.Append("</" + singularNodeName + ">"); } |
