diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-07-10 16:25:47 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-07-10 16:25:47 -0400 |
| commit | 24bb7c393f55901f779c79088b35304cb1cdc855 (patch) | |
| tree | c00e300ccdc54d98905c40e3004f932db80c3809 | |
| parent | cc1f30b9ff760ee5e2de733a6bce928b367127f4 (diff) | |
added xml support for new music video fields
4 files changed, 59 insertions, 1 deletions
diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj index a3f7c2704..7a5875f61 100644 --- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj +++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj @@ -76,6 +76,7 @@ <Compile Include="Music\LastfmArtistProvider.cs" /> <Compile Include="Music\LastfmBaseProvider.cs" /> <Compile Include="Music\LastfmHelper.cs" /> + <Compile Include="Music\MusicVideoXmlParser.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Savers\AlbumXmlSaver.cs" /> <Compile Include="Savers\ArtistXmlSaver.cs" /> diff --git a/MediaBrowser.Providers/Movies/MovieProviderFromXml.cs b/MediaBrowser.Providers/Movies/MovieProviderFromXml.cs index 5cf6805ef..63b1bdb03 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<MusicVideo>(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 000000000..5af203fa7 --- /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<MusicVideo> + { + /// <summary> + /// Initializes a new instance of the <see cref="BaseItemXmlParser{T}" /> class. + /// </summary> + /// <param name="logger">The logger.</param> + public MusicVideoXmlParser(ILogger logger) + : base(logger) + { + } + + /// <summary> + /// Fetches the data from XML node. + /// </summary> + /// <param name="reader">The reader.</param> + /// <param name="item">The item.</param> + 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 0d4a21f8a..335851e28 100644 --- a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs +++ b/MediaBrowser.Providers/Savers/MovieXmlSaver.cs @@ -79,6 +79,20 @@ namespace MediaBrowser.Providers.Savers builder.Append("<Description><![CDATA[" + item.Overview + "]]></Description>"); } + var musicVideo = item as MusicVideo; + + if (musicVideo != null) + { + if (!string.IsNullOrEmpty(musicVideo.Artist)) + { + builder.Append("<Artist>" + SecurityElement.Escape(musicVideo.Artist) + "</Artist>"); + } + if (!string.IsNullOrEmpty(musicVideo.Album)) + { + builder.Append("<Album>" + SecurityElement.Escape(musicVideo.Album) + "</Album>"); + } + } + XmlSaverHelpers.AddMediaInfo((Video)item, builder); builder.Append("</Title>"); |
