From 5b6356e7795cfeadcb86ba731658733b494a9e8b Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 4 Jun 2017 14:31:40 -0400 Subject: [PATCH 1/7] remove ImageMagick from Windows --- .../Emby.Common.Implementations.csproj | 5 +- Emby.Common.Implementations/packages.config | 2 +- Emby.Dlna/Profiles/DefaultProfile.cs | 2 +- Emby.Drawing.Skia/SkiaEncoder.cs | 15 +- Emby.Server.Core/Emby.Server.Core.csproj | 5 +- Emby.Server.Core/packages.config | 2 +- .../Library/UserManager.cs | 3 +- .../MediaBrowser.Server.Mono.csproj | 5 +- MediaBrowser.Server.Mono/packages.config | 2 +- .../ImageEncoderHelper.cs | 9 - .../MediaBrowser.ServerApplication.csproj | 878 +----------------- .../packages.config | 2 +- 12 files changed, 18 insertions(+), 912 deletions(-) diff --git a/Emby.Common.Implementations/Emby.Common.Implementations.csproj b/Emby.Common.Implementations/Emby.Common.Implementations.csproj index 567f29526..50d0d05ec 100644 --- a/Emby.Common.Implementations/Emby.Common.Implementations.csproj +++ b/Emby.Common.Implementations/Emby.Common.Implementations.csproj @@ -42,9 +42,8 @@ ..\packages\SharpCompress.0.14.0\lib\net45\SharpCompress.dll True - - ..\packages\SimpleInjector.4.0.7\lib\net45\SimpleInjector.dll - True + + ..\packages\SimpleInjector.4.0.8\lib\net45\SimpleInjector.dll diff --git a/Emby.Common.Implementations/packages.config b/Emby.Common.Implementations/packages.config index 9cc054db0..1e6b10c01 100644 --- a/Emby.Common.Implementations/packages.config +++ b/Emby.Common.Implementations/packages.config @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/Emby.Dlna/Profiles/DefaultProfile.cs b/Emby.Dlna/Profiles/DefaultProfile.cs index 70d08f9a9..06ce93640 100644 --- a/Emby.Dlna/Profiles/DefaultProfile.cs +++ b/Emby.Dlna/Profiles/DefaultProfile.cs @@ -70,7 +70,7 @@ namespace Emby.Dlna.Profiles new DirectPlayProfile { - Container = "aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac", + Container = "aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a", Type = DlnaProfileType.Audio } }; diff --git a/Emby.Drawing.Skia/SkiaEncoder.cs b/Emby.Drawing.Skia/SkiaEncoder.cs index 222ecf733..8a38b9248 100644 --- a/Emby.Drawing.Skia/SkiaEncoder.cs +++ b/Emby.Drawing.Skia/SkiaEncoder.cs @@ -126,11 +126,11 @@ namespace Emby.Drawing.Skia for (int row = 0; row < bitmap.Height; ++row) { if (IsAllWhiteRow(bitmap, row)) - topmost = row; + topmost = row + 1; else break; } - int bottommost = 0; + int bottommost = bitmap.Height; for (int row = bitmap.Height - 1; row >= 0; --row) { if (IsAllWhiteRow(bitmap, row)) @@ -138,11 +138,11 @@ namespace Emby.Drawing.Skia else break; } - int leftmost = 0, rightmost = 0; + int leftmost = 0, rightmost = bitmap.Width; for (int col = 0; col < bitmap.Width; ++col) { if (IsAllWhiteColumn(bitmap, col)) - leftmost = col; + leftmost = col + 1; else break; } @@ -162,13 +162,6 @@ namespace Emby.Drawing.Skia using (var subset = image.Subset(newRect)) { return SKBitmap.FromImage(subset); - //using (var data = subset.Encode(StripCollageBuilder.GetEncodedFormat(outputPath), 90)) - //{ - // using (var fileStream = _fileSystem.GetFileStream(outputPath, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read)) - // { - // data.AsStream().CopyTo(fileStream); - // } - //} } } } diff --git a/Emby.Server.Core/Emby.Server.Core.csproj b/Emby.Server.Core/Emby.Server.Core.csproj index 01193bb6c..063ef6eb9 100644 --- a/Emby.Server.Core/Emby.Server.Core.csproj +++ b/Emby.Server.Core/Emby.Server.Core.csproj @@ -41,9 +41,8 @@ ..\packages\ServiceStack.Text.4.5.8\lib\net45\ServiceStack.Text.dll True - - ..\packages\SimpleInjector.4.0.7\lib\net45\SimpleInjector.dll - True + + ..\packages\SimpleInjector.4.0.8\lib\net45\SimpleInjector.dll diff --git a/Emby.Server.Core/packages.config b/Emby.Server.Core/packages.config index 24e8a26b6..6311b55eb 100644 --- a/Emby.Server.Core/packages.config +++ b/Emby.Server.Core/packages.config @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/Emby.Server.Implementations/Library/UserManager.cs b/Emby.Server.Implementations/Library/UserManager.cs index 0b9027291..8e8f8c4dc 100644 --- a/Emby.Server.Implementations/Library/UserManager.cs +++ b/Emby.Server.Implementations/Library/UserManager.cs @@ -202,8 +202,7 @@ namespace Emby.Server.Implementations.Library private bool IsValidUsernameCharacter(char i) { - return char.IsLetterOrDigit(i) || char.Equals(i, '-') || char.Equals(i, '_') || char.Equals(i, '\'') || - char.Equals(i, '.'); + return !char.Equals(i, '<') && !char.Equals(i, '>'); } public string MakeValidUsername(string username) diff --git a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj index f515f5a68..ed5e4d96e 100644 --- a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj +++ b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj @@ -60,9 +60,8 @@ ..\packages\SharpCompress.0.14.0\lib\net45\SharpCompress.dll True - - ..\packages\SimpleInjector.4.0.7\lib\net45\SimpleInjector.dll - True + + ..\packages\SimpleInjector.4.0.8\lib\net45\SimpleInjector.dll ..\packages\SQLitePCLRaw.core.1.1.5\lib\net45\SQLitePCLRaw.core.dll diff --git a/MediaBrowser.Server.Mono/packages.config b/MediaBrowser.Server.Mono/packages.config index 4f1b09ac8..85f3d58b0 100644 --- a/MediaBrowser.Server.Mono/packages.config +++ b/MediaBrowser.Server.Mono/packages.config @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/MediaBrowser.ServerApplication/ImageEncoderHelper.cs b/MediaBrowser.ServerApplication/ImageEncoderHelper.cs index a6651ea40..56729e74c 100644 --- a/MediaBrowser.ServerApplication/ImageEncoderHelper.cs +++ b/MediaBrowser.ServerApplication/ImageEncoderHelper.cs @@ -30,15 +30,6 @@ namespace MediaBrowser.Server.Startup.Common logger.Error("Error loading Skia. Will revert to ImageMagick."); } - try - { - return new ImageMagickEncoder(logManager.GetLogger("ImageMagick"), appPaths, httpClient, fileSystem); - } - catch - { - logger.Error("Error loading ImageMagick. Will revert to GDI."); - } - return new NullImageEncoder(); } } diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj index 32b93db00..14b186b72 100644 --- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj +++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj @@ -88,9 +88,8 @@ ..\packages\SharpCompress.0.14.0\lib\net45\SharpCompress.dll True - - ..\packages\SimpleInjector.4.0.7\lib\net45\SimpleInjector.dll - True + + ..\packages\SimpleInjector.4.0.8\lib\net45\SimpleInjector.dll ..\packages\SkiaSharp.1.58.0\lib\net45\SkiaSharp.dll @@ -191,886 +190,13 @@ MediaBrowser.Updater.exe PreserveNewest - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - PreserveNewest PreserveNewest - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - PreserveNewest diff --git a/MediaBrowser.ServerApplication/packages.config b/MediaBrowser.ServerApplication/packages.config index db675a901..9abd370f3 100644 --- a/MediaBrowser.ServerApplication/packages.config +++ b/MediaBrowser.ServerApplication/packages.config @@ -4,7 +4,7 @@ - + From a39d7e888bf7c0da814427d2db107b8c3eaa9d95 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 4 Jun 2017 16:24:45 -0400 Subject: [PATCH 2/7] move xml providers to plugin --- .../Images/EpisodeLocalImageProvider.cs | 17 +- .../MediaBrowser.LocalMetadata.csproj | 9 - .../Parsers/EpisodeXmlParser.cs | 271 ------------------ .../Parsers/MovieXmlParser.cs | 65 ----- .../Parsers/MusicVideoXmlParser.cs | 51 ---- .../Parsers/SeriesXmlParser.cs | 102 ------- .../Providers/EpisodeXmlProvider.cs | 50 ---- .../Providers/MovieXmlProvider.cs | 62 ---- .../Providers/MusicVideoXmlProvider.cs | 37 --- .../Providers/SeriesXmlProvider.cs | 50 ---- .../Providers/VideoXmlProvider.cs | 37 --- 11 files changed, 1 insertion(+), 750 deletions(-) delete mode 100644 MediaBrowser.LocalMetadata/Parsers/EpisodeXmlParser.cs delete mode 100644 MediaBrowser.LocalMetadata/Parsers/MovieXmlParser.cs delete mode 100644 MediaBrowser.LocalMetadata/Parsers/MusicVideoXmlParser.cs delete mode 100644 MediaBrowser.LocalMetadata/Parsers/SeriesXmlParser.cs delete mode 100644 MediaBrowser.LocalMetadata/Providers/EpisodeXmlProvider.cs delete mode 100644 MediaBrowser.LocalMetadata/Providers/MovieXmlProvider.cs delete mode 100644 MediaBrowser.LocalMetadata/Providers/MusicVideoXmlProvider.cs delete mode 100644 MediaBrowser.LocalMetadata/Providers/SeriesXmlProvider.cs delete mode 100644 MediaBrowser.LocalMetadata/Providers/VideoXmlProvider.cs diff --git a/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs index fbb6b20f1..033c38420 100644 --- a/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs @@ -45,22 +45,7 @@ namespace MediaBrowser.LocalMetadata.Images var nameWithoutExtension = _fileSystem.GetFileNameWithoutExtension(item.Path); - var files = GetFilesFromParentFolder(nameWithoutExtension, parentPathFiles); - - if (files.Count > 0) - { - return files; - } - - var metadataPath = Path.Combine(parentPath, "metadata"); - - if (parentPathFiles.Any(i => string.Equals(i.FullName, metadataPath, StringComparison.OrdinalIgnoreCase))) - { - var filesInMetadataFolder = _fileSystem.GetFiles(metadataPath, BaseItem.SupportedImageExtensions, false, false); - return GetFilesFromParentFolder(nameWithoutExtension, filesInMetadataFolder); - } - - return new List(); + return GetFilesFromParentFolder(nameWithoutExtension, parentPathFiles); } private List GetFilesFromParentFolder(string filenameWithoutExtension, IEnumerable parentPathFiles) diff --git a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj index f7b7fa5f2..9a7371a66 100644 --- a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj +++ b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj @@ -44,24 +44,15 @@ - - - - - - - - - diff --git a/MediaBrowser.LocalMetadata/Parsers/EpisodeXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/EpisodeXmlParser.cs deleted file mode 100644 index 6aba137eb..000000000 --- a/MediaBrowser.LocalMetadata/Parsers/EpisodeXmlParser.cs +++ /dev/null @@ -1,271 +0,0 @@ -using MediaBrowser.Controller.Entities.TV; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Logging; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Threading; -using System.Xml; - -using MediaBrowser.Controller.IO; -using MediaBrowser.Model.IO; -using MediaBrowser.Model.Xml; - -namespace MediaBrowser.LocalMetadata.Parsers -{ - /// - /// Class EpisodeXmlParser - /// - public class EpisodeXmlParser : BaseItemXmlParser - { - private List _imagesFound; - private readonly IFileSystem _fileSystem; - - public EpisodeXmlParser(ILogger logger, IFileSystem fileSystem, IProviderManager providerManager, IXmlReaderSettingsFactory xmlSettings) - : base(logger, providerManager, xmlSettings, fileSystem) - { - _fileSystem = fileSystem; - } - - private string _xmlPath; - - public void Fetch(MetadataResult item, - List images, - string metadataFile, - CancellationToken cancellationToken) - { - _imagesFound = images; - _xmlPath = metadataFile; - - Fetch(item, metadataFile, cancellationToken); - } - - private static readonly CultureInfo UsCulture = new CultureInfo("en-US"); - - /// - /// Fetches the data from XML node. - /// - /// The reader. - /// The result. - protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult result) - { - var item = result.Item; - - switch (reader.Name) - { - case "Episode": - - //MB generated metadata is within an "Episode" node - using (var subTree = reader.ReadSubtree()) - { - subTree.MoveToContent(); - - // Loop through each element - while (subTree.Read()) - { - if (subTree.NodeType == XmlNodeType.Element) - { - FetchDataFromXmlNode(subTree, result); - } - } - - } - break; - - case "filename": - { - var filename = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(filename)) - { - // Strip off everything but the filename. Some metadata tools like MetaBrowser v1.0 will have an 'episodes' prefix - // even though it's actually using the metadata folder. - filename = Path.GetFileName(filename); - - var parentFolder = _fileSystem.GetDirectoryName(_xmlPath); - filename = Path.Combine(parentFolder, filename); - var file = _fileSystem.GetFileInfo(filename); - - if (file.Exists) - { - _imagesFound.Add(new LocalImageInfo - { - Type = ImageType.Primary, - FileInfo = file - }); - } - } - break; - } - case "SeasonNumber": - { - var number = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(number)) - { - int num; - - if (int.TryParse(number, out num)) - { - item.ParentIndexNumber = num; - } - } - break; - } - - case "EpisodeNumber": - { - var number = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(number)) - { - int num; - - if (int.TryParse(number, out num)) - { - item.IndexNumber = num; - } - } - break; - } - - case "EpisodeNumberEnd": - { - var number = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(number)) - { - int num; - - if (int.TryParse(number, out num)) - { - item.IndexNumberEnd = num; - } - } - break; - } - - case "absolute_number": - { - var val = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(val)) - { - int rval; - - // int.TryParse is local aware, so it can be probamatic, force us culture - if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval)) - { - item.AbsoluteEpisodeNumber = rval; - } - } - - break; - } - case "DVD_episodenumber": - { - var number = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(number)) - { - float num; - - if (float.TryParse(number, NumberStyles.Any, UsCulture, out num)) - { - item.DvdEpisodeNumber = num; - } - } - break; - } - - case "DVD_season": - { - var number = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(number)) - { - float num; - - if (float.TryParse(number, NumberStyles.Any, UsCulture, out num)) - { - item.DvdSeasonNumber = Convert.ToInt32(num); - } - } - break; - } - - case "airsbefore_episode": - { - var val = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(val)) - { - int rval; - - // int.TryParse is local aware, so it can be probamatic, force us culture - if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval)) - { - item.AirsBeforeEpisodeNumber = rval; - } - } - - break; - } - - case "airsafter_season": - { - var val = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(val)) - { - int rval; - - // int.TryParse is local aware, so it can be probamatic, force us culture - if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval)) - { - item.AirsAfterSeasonNumber = rval; - } - } - - break; - } - - case "airsbefore_season": - { - var val = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(val)) - { - int rval; - - // int.TryParse is local aware, so it can be probamatic, force us culture - if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval)) - { - item.AirsBeforeSeasonNumber = rval; - } - } - - break; - } - - case "EpisodeName": - { - var name = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(name)) - { - item.Name = name; - } - break; - } - - - default: - base.FetchDataFromXmlNode(reader, result); - break; - } - } - } -} diff --git a/MediaBrowser.LocalMetadata/Parsers/MovieXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/MovieXmlParser.cs deleted file mode 100644 index 08c895c43..000000000 --- a/MediaBrowser.LocalMetadata/Parsers/MovieXmlParser.cs +++ /dev/null @@ -1,65 +0,0 @@ -using MediaBrowser.Controller.Entities; -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 -{ - /// - /// Class EpisodeXmlParser - /// - public class BaseVideoXmlParser : BaseItemXmlParser - where T : Video - { - /// - /// Fetches the data from XML node. - /// - /// The reader. - /// The result. - protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult result) - { - var item = result.Item; - - switch (reader.Name) - { - case "TmdbCollectionName": - { - var val = reader.ReadElementContentAsString(); - var movie = item as Movie; - - if (!string.IsNullOrWhiteSpace(val) && movie != null) - { - movie.CollectionName = val; - } - - break; - } - - default: - base.FetchDataFromXmlNode(reader, result); - break; - } - } - - public BaseVideoXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem) - { - } - } - - public class MovieXmlParser : BaseVideoXmlParser - { - public MovieXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem) - { - } - } - - public class VideoXmlParser : BaseVideoXmlParser