From 3ba6364f259ea43979a88b2a83d64292119057dc Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 5 Aug 2014 19:59:24 -0400 Subject: fixes #887 - Support ttml subtitle output --- .../Parsers/PlaylistXmlParser.cs | 14 +++++++++++++ .../Savers/PlaylistXmlSaver.cs | 24 +++++++++++++++++++--- .../Savers/XmlSaverHelpers.cs | 12 ++++++++--- 3 files changed, 44 insertions(+), 6 deletions(-) (limited to 'MediaBrowser.LocalMetadata') 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 /// Task. public void Save(IHasMetadata item, CancellationToken cancellationToken) { + var playlist = (Playlist)item; + var builder = new StringBuilder(); builder.Append(""); - XmlSaverHelpers.AddCommonNodes((Playlist)item, builder); + if (!string.IsNullOrEmpty(playlist.OwnerUserId)) + { + builder.Append("" + SecurityElement.Escape(playlist.OwnerUserId) + ""); + } + + if (!string.IsNullOrEmpty(playlist.PlaylistMediaType)) + { + builder.Append("" + SecurityElement.Escape(playlist.PlaylistMediaType) + ""); + } + + XmlSaverHelpers.AddCommonNodes(playlist, builder); builder.Append(""); var xmlFilePath = GetSavePath(item); - XmlSaverHelpers.Save(builder, xmlFilePath, new List { }); + XmlSaverHelpers.Save(builder, xmlFilePath, new List + { + "OwnerUserId", + "PlaylistMediaType" + + }); } /// 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("" + SecurityElement.Escape(link.ItemType) + ""); + if (!string.IsNullOrWhiteSpace(link.ItemType)) + { + builder.Append("" + SecurityElement.Escape(link.ItemType) + ""); + } if (link.ItemYear.HasValue) { builder.Append("" + SecurityElement.Escape(link.ItemYear.Value.ToString(UsCulture)) + ""); } - builder.Append("" + SecurityElement.Escape((link.Path ?? string.Empty)) + ""); + if (!string.IsNullOrWhiteSpace(link.Path)) + { + builder.Append("" + SecurityElement.Escape((link.Path)) + ""); + } builder.Append(""); } -- cgit v1.2.3