aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata/Parsers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-10-30 03:02:23 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-10-30 03:02:23 -0400
commitf676ea63156f959d08eb4d324274ef2fef853933 (patch)
tree65d53b2a41d0805f73fa8c4cab5d1b52c6a545c0 /MediaBrowser.LocalMetadata/Parsers
parent3c305512c054527fb8fe1629d6aabb7e0009bc38 (diff)
make local metadata project portable
Diffstat (limited to 'MediaBrowser.LocalMetadata/Parsers')
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs48
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs11
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/EpisodeXmlParser.cs5
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs11
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/GameXmlParser.cs11
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/MovieXmlParser.cs16
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/MusicVideoXmlParser.cs15
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs11
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/SeriesXmlParser.cs15
9 files changed, 75 insertions, 68 deletions
diff --git a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
index a5d9947f45..d54e41308d 100644
--- a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
@@ -9,7 +9,9 @@ using System.Xml;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
+using MediaBrowser.Model.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
@@ -28,14 +30,19 @@ namespace MediaBrowser.LocalMetadata.Parsers
private Dictionary<string, string> _validProviderIds;
+ protected IXmlReaderSettingsFactory XmlReaderSettingsFactory { get; private set; }
+ protected IFileSystem FileSystem { get; private set; }
+
/// <summary>
/// Initializes a new instance of the <see cref="BaseItemXmlParser{T}" /> class.
/// </summary>
/// <param name="logger">The logger.</param>
- public BaseItemXmlParser(ILogger logger, IProviderManager providerManager)
+ public BaseItemXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem)
{
Logger = logger;
ProviderManager = providerManager;
+ XmlReaderSettingsFactory = xmlReaderSettingsFactory;
+ FileSystem = fileSystem;
}
/// <summary>
@@ -57,15 +64,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
throw new ArgumentNullException();
}
- var settings = new XmlReaderSettings
- {
- CheckCharacters = false,
- IgnoreProcessingInstructions = true,
- IgnoreComments = true,
- ValidationType = ValidationType.None
- };
+ var settings = XmlReaderSettingsFactory.Create(false);
+
+ settings.CheckCharacters = false;
+ settings.IgnoreProcessingInstructions = true;
+ settings.IgnoreComments = true;
- _validProviderIds = _validProviderIds = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
+ _validProviderIds = _validProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
var idInfos = ProviderManager.GetExternalIdInfos(item.Item);
@@ -97,21 +102,24 @@ namespace MediaBrowser.LocalMetadata.Parsers
{
item.ResetPeople();
- using (var streamReader = new StreamReader(metadataFile, encoding))
+ using (Stream fileStream = FileSystem.OpenRead(metadataFile))
{
- // Use XmlReader for best performance
- using (var reader = XmlReader.Create(streamReader, settings))
+ using (var streamReader = new StreamReader(fileStream, encoding))
{
- reader.MoveToContent();
-
- // Loop through each element
- while (reader.Read())
+ // Use XmlReader for best performance
+ using (var reader = XmlReader.Create(streamReader, settings))
{
- cancellationToken.ThrowIfCancellationRequested();
+ reader.MoveToContent();
- if (reader.NodeType == XmlNodeType.Element)
+ // Loop through each element
+ while (reader.Read())
{
- FetchDataFromXmlNode(reader, item);
+ cancellationToken.ThrowIfCancellationRequested();
+
+ if (reader.NodeType == XmlNodeType.Element)
+ {
+ FetchDataFromXmlNode(reader, item);
+ }
}
}
}
@@ -521,7 +529,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
{
// This is one of the mis-named "Actors" full nodes created by MB2
// Create a reader and pass it to the persons node processor
- FetchDataFromPersonsNode(new XmlTextReader(new StringReader("<Persons>" + actors + "</Persons>")), itemResult);
+ FetchDataFromPersonsNode(XmlReader.Create(new StringReader("<Persons>" + actors + "</Persons>")), itemResult);
}
else
{
diff --git a/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs
index 9ebb357c6c..d792373bf1 100644
--- a/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs
@@ -4,16 +4,13 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
using System.Collections.Generic;
using System.Xml;
+using MediaBrowser.Model.IO;
+using MediaBrowser.Model.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
public class BoxSetXmlParser : BaseItemXmlParser<BoxSet>
{
- public BoxSetXmlParser(ILogger logger, IProviderManager providerManager)
- : base(logger, providerManager)
- {
- }
-
protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<BoxSet> item)
{
switch (reader.Name)
@@ -68,5 +65,9 @@ namespace MediaBrowser.LocalMetadata.Parsers
item.Item.LinkedChildren = list;
}
+
+ public BoxSetXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
+ {
+ }
}
}
diff --git a/MediaBrowser.LocalMetadata/Parsers/EpisodeXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/EpisodeXmlParser.cs
index 698f71e3c5..9adc4e5a9e 100644
--- a/MediaBrowser.LocalMetadata/Parsers/EpisodeXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/EpisodeXmlParser.cs
@@ -11,6 +11,7 @@ using System.Xml;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
+using MediaBrowser.Model.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
@@ -22,8 +23,8 @@ namespace MediaBrowser.LocalMetadata.Parsers
private List<LocalImageInfo> _imagesFound;
private readonly IFileSystem _fileSystem;
- public EpisodeXmlParser(ILogger logger, IFileSystem fileSystem, IProviderManager providerManager)
- : base(logger, providerManager)
+ public EpisodeXmlParser(ILogger logger, IFileSystem fileSystem, IProviderManager providerManager, IXmlReaderSettingsFactory xmlSettings)
+ : base(logger, providerManager, xmlSettings, fileSystem)
{
_fileSystem = fileSystem;
}
diff --git a/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs
index 75df539587..8bf09e5463 100644
--- a/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs
@@ -5,16 +5,13 @@ using MediaBrowser.Model.Logging;
using System.Threading;
using System.Threading.Tasks;
using System.Xml;
+using MediaBrowser.Model.IO;
+using MediaBrowser.Model.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
public class GameSystemXmlParser : BaseItemXmlParser<GameSystem>
{
- public GameSystemXmlParser(ILogger logger, IProviderManager providerManager)
- : base(logger, providerManager)
- {
- }
-
private readonly Task _cachedTask = Task.FromResult(true);
public Task FetchAsync(MetadataResult<GameSystem> item, string metadataFile, CancellationToken cancellationToken)
{
@@ -62,5 +59,9 @@ namespace MediaBrowser.LocalMetadata.Parsers
break;
}
}
+
+ public GameSystemXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
+ {
+ }
}
}
diff --git a/MediaBrowser.LocalMetadata/Parsers/GameXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/GameXmlParser.cs
index 956b8baef9..abce0582c6 100644
--- a/MediaBrowser.LocalMetadata/Parsers/GameXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/GameXmlParser.cs
@@ -5,7 +5,9 @@ using System.Xml;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
+using MediaBrowser.Model.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
@@ -16,11 +18,6 @@ namespace MediaBrowser.LocalMetadata.Parsers
{
private readonly CultureInfo _usCulture = new CultureInfo("en-US");
- public GameXmlParser(ILogger logger, IProviderManager providerManager)
- : base(logger, providerManager)
- {
- }
-
private readonly Task _cachedTask = Task.FromResult(true);
public Task FetchAsync(MetadataResult<Game> item, string metadataFile, CancellationToken cancellationToken)
{
@@ -83,5 +80,9 @@ namespace MediaBrowser.LocalMetadata.Parsers
break;
}
}
+
+ public GameXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
+ {
+ }
}
}
diff --git a/MediaBrowser.LocalMetadata/Parsers/MovieXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/MovieXmlParser.cs
index 6e78d365ed..08c895c43f 100644
--- a/MediaBrowser.LocalMetadata/Parsers/MovieXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/MovieXmlParser.cs
@@ -3,6 +3,8 @@ using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
using System.Xml;
+using MediaBrowser.Model.IO;
+using MediaBrowser.Model.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
@@ -12,11 +14,6 @@ namespace MediaBrowser.LocalMetadata.Parsers
public class BaseVideoXmlParser<T> : BaseItemXmlParser<T>
where T : Video
{
- public BaseVideoXmlParser(ILogger logger, IProviderManager providerManager)
- : base(logger, providerManager)
- {
- }
-
/// <summary>
/// Fetches the data from XML node.
/// </summary>
@@ -46,19 +43,22 @@ namespace MediaBrowser.LocalMetadata.Parsers
break;
}
}
+
+ public BaseVideoXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
+ {
+ }
}
public class MovieXmlParser : BaseVideoXmlParser<Movie>
{
- public MovieXmlParser(ILogger logger, IProviderManager providerManager) : base(logger, providerManager)
+ public MovieXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
{
}
}
public class VideoXmlParser : BaseVideoXmlParser<Video>
{
- public VideoXmlParser(ILogger logger, IProviderManager providerManager)
- : base(logger, providerManager)
+ public VideoXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
{
}
}
diff --git a/MediaBrowser.LocalMetadata/Parsers/MusicVideoXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/MusicVideoXmlParser.cs
index 5f0b447e87..f612d1108a 100644
--- a/MediaBrowser.LocalMetadata/Parsers/MusicVideoXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/MusicVideoXmlParser.cs
@@ -3,21 +3,14 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
using System;
using System.Xml;
+using MediaBrowser.Model.IO;
+using MediaBrowser.Model.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
public class MusicVideoXmlParser : BaseVideoXmlParser<MusicVideo>
{
/// <summary>
- /// Initializes a new instance of the <see cref="BaseItemXmlParser{T}" /> class.
- /// </summary>
- /// <param name="logger">The logger.</param>
- public MusicVideoXmlParser(ILogger logger, IProviderManager providerManager)
- : base(logger, providerManager)
- {
- }
-
- /// <summary>
/// Fetches the data from XML node.
/// </summary>
/// <param name="reader">The reader.</param>
@@ -50,5 +43,9 @@ namespace MediaBrowser.LocalMetadata.Parsers
break;
}
}
+
+ public MusicVideoXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
+ {
+ }
}
}
diff --git a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
index de46c0a86d..4c45545fce 100644
--- a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
@@ -6,16 +6,13 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
+using MediaBrowser.Model.IO;
+using MediaBrowser.Model.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
public class PlaylistXmlParser : BaseItemXmlParser<Playlist>
{
- public PlaylistXmlParser(ILogger logger, IProviderManager providerManager)
- : base(logger, providerManager)
- {
- }
-
protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Playlist> result)
{
var item = result.Item;
@@ -139,5 +136,9 @@ namespace MediaBrowser.LocalMetadata.Parsers
item.Shares = list;
}
+
+ public PlaylistXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
+ {
+ }
}
}
diff --git a/MediaBrowser.LocalMetadata/Parsers/SeriesXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/SeriesXmlParser.cs
index 7b7fb4751b..2ddd843789 100644
--- a/MediaBrowser.LocalMetadata/Parsers/SeriesXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/SeriesXmlParser.cs
@@ -4,7 +4,9 @@ using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
+using MediaBrowser.Model.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
@@ -14,15 +16,6 @@ namespace MediaBrowser.LocalMetadata.Parsers
public class SeriesXmlParser : BaseItemXmlParser<Series>
{
/// <summary>
- /// Initializes a new instance of the <see cref="BaseItemXmlParser{T}" /> class.
- /// </summary>
- /// <param name="logger">The logger.</param>
- public SeriesXmlParser(ILogger logger, IProviderManager providerManager)
- : base(logger, providerManager)
- {
- }
-
- /// <summary>
/// Fetches the data from XML node.
/// </summary>
/// <param name="reader">The reader.</param>
@@ -116,5 +109,9 @@ namespace MediaBrowser.LocalMetadata.Parsers
break;
}
}
+
+ public SeriesXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
+ {
+ }
}
}