diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-07-01 12:00:20 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-07-01 12:00:20 -0400 |
| commit | d94c8495b8419f383691fb6d9a97362bb6a8f365 (patch) | |
| tree | 38203080f05142dfeba69b0fe392a18518528176 | |
| parent | 673bc9d31bec26ebac3951f2493ddd8bc37c434e (diff) | |
fixes for saving media info xml
| -rw-r--r-- | MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Savers/MovieXmlSaver.cs | 25 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Savers/XmlSaverHelpers.cs | 153 |
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>"); |
