aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-07-10 16:25:47 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-07-10 16:25:47 -0400
commit24bb7c393f55901f779c79088b35304cb1cdc855 (patch)
treec00e300ccdc54d98905c40e3004f932db80c3809
parentcc1f30b9ff760ee5e2de733a6bce928b367127f4 (diff)
added xml support for new music video fields
-rw-r--r--MediaBrowser.Providers/MediaBrowser.Providers.csproj1
-rw-r--r--MediaBrowser.Providers/Movies/MovieProviderFromXml.cs3
-rw-r--r--MediaBrowser.Providers/Music/MusicVideoXmlParser.cs42
-rw-r--r--MediaBrowser.Providers/Savers/MovieXmlSaver.cs14
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>");