aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-07-01 12:00:20 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-07-01 12:00:20 -0400
commitd94c8495b8419f383691fb6d9a97362bb6a8f365 (patch)
tree38203080f05142dfeba69b0fe392a18518528176
parent673bc9d31bec26ebac3951f2493ddd8bc37c434e (diff)
fixes for saving media info xml
-rw-r--r--MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs2
-rw-r--r--MediaBrowser.Providers/Savers/MovieXmlSaver.cs25
-rw-r--r--MediaBrowser.Providers/Savers/XmlSaverHelpers.cs153
3 files changed, 81 insertions, 99 deletions
diff --git a/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs b/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
index 2ed840f580..969732e390 100644
--- a/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
@@ -78,7 +78,7 @@ namespace MediaBrowser.Providers.Savers
}
XmlSaverHelpers.AddCommonNodes(item, builder);
- XmlSaverHelpers.AppendMediaInfo(episode, builder);
+ XmlSaverHelpers.AddMediaInfo(episode, builder);
builder.Append("</Item>");
diff --git a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs b/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
index fec6e4958d..73cb2632f7 100644
--- a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
@@ -1,4 +1,6 @@
-using MediaBrowser.Controller.Configuration;
+using System.Globalization;
+using System.Security;
+using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Library;
@@ -51,6 +53,8 @@ namespace MediaBrowser.Providers.Savers
return false;
}
+ private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
+
/// <summary>
/// Saves the specified item.
/// </summary>
@@ -64,13 +68,28 @@ namespace MediaBrowser.Providers.Savers
builder.Append("<Title>");
XmlSaverHelpers.AddCommonNodes(item, builder);
- XmlSaverHelpers.AppendMediaInfo((Video)item, builder);
+
+ if (item.CommunityRating.HasValue)
+ {
+ builder.Append("<IMDBrating>" + SecurityElement.Escape(item.CommunityRating.Value.ToString(UsCulture)) + "</IMDBrating>");
+ }
+
+ if (!string.IsNullOrEmpty(item.Overview))
+ {
+ builder.Append("<Description><![CDATA[" + item.Overview + "]]></Description>");
+ }
+
+ XmlSaverHelpers.AddMediaInfo((Video)item, builder);
builder.Append("</Title>");
var xmlFilePath = GetSavePath(item);
- XmlSaverHelpers.Save(builder, xmlFilePath, new string[] { });
+ XmlSaverHelpers.Save(builder, xmlFilePath, new[]
+ {
+ "IMDBrating",
+ "Description"
+ });
// Set last refreshed so that the provider doesn't trigger after the file save
MovieProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
diff --git a/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs b/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs
index 5a72fb5bff..40a6db3b20 100644
--- a/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs
+++ b/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs
@@ -57,7 +57,7 @@ namespace MediaBrowser.Providers.Savers
"RunningTime",
"Runtime",
"TagLine",
- "TagLines",
+ "Taglines",
"IMDB_ID",
"IMDB",
"IMDbId",
@@ -71,7 +71,9 @@ namespace MediaBrowser.Providers.Savers
"Tags",
"Added",
"LockData",
- "Trailer"
+ "Trailer",
+ "CriticRating",
+ "CriticRatingSummary"
});
var position = xml.ToString().LastIndexOf("</", StringComparison.OrdinalIgnoreCase);
@@ -299,14 +301,14 @@ namespace MediaBrowser.Providers.Savers
{
builder.Append("<TagLine>" + SecurityElement.Escape(item.Taglines[0]) + "</TagLine>");
- builder.Append("<TagLines>");
+ builder.Append("<Taglines>");
foreach (var tagline in item.Taglines)
{
builder.Append("<Tagline>" + SecurityElement.Escape(tagline) + "</Tagline>");
}
- builder.Append("</TagLines>");
+ builder.Append("</Taglines>");
}
if (item.Genres.Count > 0)
@@ -369,60 +371,73 @@ namespace MediaBrowser.Providers.Savers
/// <typeparam name="T"></typeparam>
/// <param name="item">The item.</param>
/// <param name="builder">The builder.</param>
- public static void AppendMediaInfo<T>(T item, StringBuilder builder)
+ public static void AddMediaInfo<T>(T item, StringBuilder builder)
where T : BaseItem, IHasMediaStreams
{
builder.Append("<MediaInfo>");
foreach (var stream in item.MediaStreams)
{
- if (stream.Type == MediaStreamType.Video)
+ builder.Append("<" + stream.Type + ">");
+
+ if (!string.IsNullOrEmpty(stream.Codec))
{
- builder.Append("<Video>");
+ builder.Append("<Codec>" + SecurityElement.Escape(stream.Codec) + "</Codec>");
+ builder.Append("<FFCodec>" + SecurityElement.Escape(stream.Codec) + "</FFCodec>");
+ }
- if (!string.IsNullOrEmpty(stream.Codec))
- {
- builder.Append("<Codec>" + SecurityElement.Escape(stream.Codec) + "</Codec>");
- builder.Append("<FFCodec>" + SecurityElement.Escape(stream.Codec) + "</FFCodec>");
- }
+ if (stream.BitRate.HasValue)
+ {
+ builder.Append("<BitRate>" + stream.BitRate.Value.ToString(UsCulture) + "</BitRate>");
+ }
- if (stream.BitRate.HasValue)
- {
- builder.Append("<BitRate>" + stream.BitRate.Value.ToString(UsCulture) + "</BitRate>");
- }
+ if (stream.Width.HasValue)
+ {
+ builder.Append("<Width>" + stream.Width.Value.ToString(UsCulture) + "</Width>");
+ }
- if (stream.Width.HasValue)
- {
- builder.Append("<Width>" + stream.Width.Value.ToString(UsCulture) + "</Width>");
- }
+ if (stream.Height.HasValue)
+ {
+ builder.Append("<Height>" + stream.Height.Value.ToString(UsCulture) + "</Height>");
+ }
- if (stream.Height.HasValue)
- {
- builder.Append("<Height>" + stream.Height.Value.ToString(UsCulture) + "</Height>");
- }
+ if (!string.IsNullOrEmpty(stream.AspectRatio))
+ {
+ builder.Append("<AspectRatio>" + SecurityElement.Escape(stream.AspectRatio) + "</AspectRatio>");
+ }
- if (!string.IsNullOrEmpty(stream.AspectRatio))
- {
- builder.Append("<AspectRatio>" + SecurityElement.Escape(stream.AspectRatio) + "</AspectRatio>");
- }
+ var framerate = stream.AverageFrameRate ?? stream.RealFrameRate;
- var framerate = stream.AverageFrameRate ?? stream.RealFrameRate;
+ if (framerate.HasValue)
+ {
+ builder.Append("<FrameRate>" + framerate.Value.ToString(UsCulture) + "</FrameRate>");
+ }
- if (framerate.HasValue)
- {
- builder.Append("<FrameRate>" + framerate.Value.ToString(UsCulture) + "</FrameRate>");
- }
+ if (!string.IsNullOrEmpty(stream.Language))
+ {
+ builder.Append("<Language>" + SecurityElement.Escape(stream.Language) + "</Language>");
+ }
- if (!string.IsNullOrEmpty(stream.Language))
- {
- builder.Append("<Language>" + SecurityElement.Escape(stream.Language) + "</Language>");
- }
+ if (!string.IsNullOrEmpty(stream.ScanType))
+ {
+ builder.Append("<ScanType>" + SecurityElement.Escape(stream.ScanType) + "</ScanType>");
+ }
+
+ if (stream.Channels.HasValue)
+ {
+ builder.Append("<Channels>" + stream.Channels.Value.ToString(UsCulture) + "</Channels>");
+ }
- if (!string.IsNullOrEmpty(stream.ScanType))
- {
- builder.Append("<ScanType>" + SecurityElement.Escape(stream.ScanType) + "</ScanType>");
- }
+ if (stream.SampleRate.HasValue)
+ {
+ builder.Append("<SamplingRate>" + stream.SampleRate.Value.ToString(UsCulture) + "</SamplingRate>");
+ }
+ builder.Append("<Default>" + SecurityElement.Escape(stream.IsDefault.ToString()) + "</Default>");
+ builder.Append("<Forced>" + SecurityElement.Escape(stream.IsForced.ToString()) + "</Forced>");
+
+ if (stream.Type == MediaStreamType.Video)
+ {
if (item.RunTimeTicks.HasValue)
{
var timespan = TimeSpan.FromTicks(item.RunTimeTicks.Value);
@@ -431,9 +446,6 @@ namespace MediaBrowser.Providers.Savers
builder.Append("<DurationSeconds>" + Convert.ToInt32(timespan.TotalSeconds).ToString(UsCulture) + "</DurationSeconds>");
}
- builder.Append("<Default>" + SecurityElement.Escape(stream.IsDefault.ToString()) + "</Default>");
- builder.Append("<Forced>" + SecurityElement.Escape(stream.IsForced.ToString()) + "</Forced>");
-
var video = item as Video;
if (video != null && video.Video3DFormat.HasValue)
@@ -454,58 +466,9 @@ namespace MediaBrowser.Providers.Savers
break;
}
}
-
- builder.Append("</Video>");
- }
- else if (stream.Type == MediaStreamType.Audio)
- {
- builder.Append("<Audio>");
-
- if (!string.IsNullOrEmpty(stream.Codec))
- {
- builder.Append("<Codec>" + SecurityElement.Escape(stream.Codec) + "</Codec>");
- builder.Append("<FFCodec>" + SecurityElement.Escape(stream.Codec) + "</FFCodec>");
- }
-
- if (stream.Channels.HasValue)
- {
- builder.Append("<Channels>" + stream.Channels.Value.ToString(UsCulture) + "</Channels>");
- }
-
- if (stream.BitRate.HasValue)
- {
- builder.Append("<BitRate>" + stream.BitRate.Value.ToString(UsCulture) + "</BitRate>");
- }
-
- if (stream.SampleRate.HasValue)
- {
- builder.Append("<SamplingRate>" + stream.SampleRate.Value.ToString(UsCulture) + "</SamplingRate>");
- }
-
- if (!string.IsNullOrEmpty(stream.Language))
- {
- builder.Append("<Language>" + SecurityElement.Escape(stream.Language) + "</Language>");
- }
-
- builder.Append("<Default>" + SecurityElement.Escape(stream.IsDefault.ToString()) + "</Default>");
- builder.Append("<Forced>" + SecurityElement.Escape(stream.IsForced.ToString()) + "</Forced>");
-
- builder.Append("</Audio>");
- }
- else if (stream.Type == MediaStreamType.Subtitle)
- {
- builder.Append("<Subtitle>");
-
- if (!string.IsNullOrEmpty(stream.Language))
- {
- builder.Append("<Language>" + SecurityElement.Escape(stream.Language) + "</Language>");
- }
-
- builder.Append("<Default>" + SecurityElement.Escape(stream.IsDefault.ToString()) + "</Default>");
- builder.Append("<Forced>" + SecurityElement.Escape(stream.IsForced.ToString()) + "</Forced>");
-
- builder.Append("</Subtitle>");
}
+
+ builder.Append("</" + stream.Type + ">");
}
builder.Append("</MediaInfo>");