fixes #887 - Support ttml subtitle output

This commit is contained in:
Luke Pulverenti
2014-08-05 19:59:24 -04:00
parent 7e25c857a5
commit 3ba6364f25
35 changed files with 333 additions and 96 deletions

View File

@@ -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())

View File

@@ -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>

View File

@@ -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 + ">");
}