aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-05 19:59:24 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-05 19:59:24 -0400
commit3ba6364f259ea43979a88b2a83d64292119057dc (patch)
tree5663fb9c54387e92a09d219488ad1af9276232aa /MediaBrowser.LocalMetadata
parent7e25c857a551ce06025b3b85996aef7ed3c6571e (diff)
fixes #887 - Support ttml subtitle output
Diffstat (limited to 'MediaBrowser.LocalMetadata')
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs14
-rw-r--r--MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs24
-rw-r--r--MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs12
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 + ">");
}