From 24bb7c393f55901f779c79088b35304cb1cdc855 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 10 Jul 2013 16:25:47 -0400 Subject: [PATCH] added xml support for new music video fields --- .../MediaBrowser.Providers.csproj | 1 + .../Movies/MovieProviderFromXml.cs | 3 +- .../Music/MusicVideoXmlParser.cs | 42 +++++++++++++++++++ .../Savers/MovieXmlSaver.cs | 14 +++++++ 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 MediaBrowser.Providers/Music/MusicVideoXmlParser.cs diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj index a3f7c2704d..7a5875f618 100644 --- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj +++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj @@ -76,6 +76,7 @@ + diff --git a/MediaBrowser.Providers/Movies/MovieProviderFromXml.cs b/MediaBrowser.Providers/Movies/MovieProviderFromXml.cs index 5cf6805efc..63b1bdb039 100644 --- a/MediaBrowser.Providers/Movies/MovieProviderFromXml.cs +++ b/MediaBrowser.Providers/Movies/MovieProviderFromXml.cs @@ -3,6 +3,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Logging; +using MediaBrowser.Providers.Music; using System; using System.IO; using System.Threading; @@ -105,7 +106,7 @@ namespace MediaBrowser.Providers.Movies if (musicVideo != null) { - new BaseItemXmlParser(Logger).Fetch(musicVideo, path, cancellationToken); + new MusicVideoXmlParser(Logger).Fetch(musicVideo, path, cancellationToken); } else { diff --git a/MediaBrowser.Providers/Music/MusicVideoXmlParser.cs b/MediaBrowser.Providers/Music/MusicVideoXmlParser.cs new file mode 100644 index 0000000000..5af203fa74 --- /dev/null +++ b/MediaBrowser.Providers/Music/MusicVideoXmlParser.cs @@ -0,0 +1,42 @@ +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Logging; +using System.Xml; + +namespace MediaBrowser.Providers.Music +{ + public class MusicVideoXmlParser : BaseItemXmlParser + { + /// + /// Initializes a new instance of the class. + /// + /// The logger. + public MusicVideoXmlParser(ILogger logger) + : base(logger) + { + } + + /// + /// Fetches the data from XML node. + /// + /// The reader. + /// The item. + protected override void FetchDataFromXmlNode(XmlReader reader, MusicVideo item) + { + switch (reader.Name) + { + case "Artist": + item.Artist = reader.ReadElementContentAsString(); + break; + + case "Album": + item.Album = reader.ReadElementContentAsString(); + break; + + default: + base.FetchDataFromXmlNode(reader, item); + break; + } + } + } +} diff --git a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs b/MediaBrowser.Providers/Savers/MovieXmlSaver.cs index 0d4a21f8a3..335851e28b 100644 --- a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs +++ b/MediaBrowser.Providers/Savers/MovieXmlSaver.cs @@ -79,6 +79,20 @@ namespace MediaBrowser.Providers.Savers builder.Append(""); } + var musicVideo = item as MusicVideo; + + if (musicVideo != null) + { + if (!string.IsNullOrEmpty(musicVideo.Artist)) + { + builder.Append("" + SecurityElement.Escape(musicVideo.Artist) + ""); + } + if (!string.IsNullOrEmpty(musicVideo.Album)) + { + builder.Append("" + SecurityElement.Escape(musicVideo.Album) + ""); + } + } + XmlSaverHelpers.AddMediaInfo((Video)item, builder); builder.Append("");