aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs8
-rw-r--r--MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs7
-rw-r--r--MediaBrowser.Controller/Entities/AdultVideo.cs24
-rw-r--r--MediaBrowser.Controller/Entities/Movies/Movie.cs5
-rw-r--r--MediaBrowser.Controller/Entities/TV/Series.cs5
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs20
-rw-r--r--MediaBrowser.Controller/Library/ILibraryManager.cs12
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj1
-rw-r--r--MediaBrowser.Controller/Providers/NameParser.cs39
-rw-r--r--MediaBrowser.Providers/MediaBrowser.Providers.csproj2
-rw-r--r--MediaBrowser.Providers/Movies/MovieDbSearch.cs9
-rw-r--r--MediaBrowser.Providers/TV/TvdbSeriesProvider.cs9
-rw-r--r--MediaBrowser.Providers/packages.config2
-rw-r--r--MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs7
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs22
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs8
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs4
-rw-r--r--MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj2
-rw-r--r--MediaBrowser.Server.Implementations/packages.config2
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs3
20 files changed, 83 insertions, 108 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index 18996e0d9..b87ee895a 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -333,7 +333,7 @@ namespace MediaBrowser.Api.UserLibrary
};
}
- var items = result.Item1.Items.Where(i => ApplyAdditionalFilters(request, i, user, false));
+ var items = result.Item1.Items.Where(i => ApplyAdditionalFilters(request, i, user, false, _libraryManager));
// Apply filters
// Run them starting with the ones that are likely to reduce the list the most
@@ -467,7 +467,7 @@ namespace MediaBrowser.Api.UserLibrary
SortBy = request.GetOrderBy(),
SortOrder = request.SortOrder ?? SortOrder.Ascending,
- Filter = (i, u) => ApplyAdditionalFilters(request, i, u, true),
+ Filter = (i, u) => ApplyAdditionalFilters(request, i, u, true, _libraryManager),
Limit = request.Limit,
StartIndex = request.StartIndex,
@@ -635,7 +635,7 @@ namespace MediaBrowser.Api.UserLibrary
return items;
}
- private bool ApplyAdditionalFilters(GetItems request, BaseItem i, User user, bool isPreFiltered)
+ private bool ApplyAdditionalFilters(GetItems request, BaseItem i, User user, bool isPreFiltered, ILibraryManager libraryManager)
{
if (!isPreFiltered)
{
@@ -773,7 +773,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var filterValue = request.IsYearMismatched.Value;
- if (UserViewBuilder.IsYearMismatched(i) != filterValue)
+ if (UserViewBuilder.IsYearMismatched(i, libraryManager) != filterValue)
{
return false;
}
diff --git a/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs b/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
index 778b2cbb0..5ebc1e4c5 100644
--- a/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
+++ b/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
@@ -186,15 +186,18 @@ namespace MediaBrowser.Common.Implementations.Security
string mb2Equivalent = null,
string version = null)
{
+ var lastChecked = LicenseFile.LastChecked(feature);
+
//check the reg file first to alleviate strain on the MB admin server - must actually check in every 30 days tho
var reg = new RegRecord
{
- registered = LicenseFile.LastChecked(feature) > DateTime.UtcNow.AddDays(-3)
+ // Cache the result for up to a week
+ registered = lastChecked > DateTime.UtcNow.AddDays(-7)
};
var success = reg.registered;
- if (!reg.registered)
+ if (!(lastChecked > DateTime.UtcNow.AddDays(-1)))
{
var mac = _networkManager.GetMacAddress();
var data = new Dictionary<string, string>
diff --git a/MediaBrowser.Controller/Entities/AdultVideo.cs b/MediaBrowser.Controller/Entities/AdultVideo.cs
index ec2913ab4..6c3f7851e 100644
--- a/MediaBrowser.Controller/Entities/AdultVideo.cs
+++ b/MediaBrowser.Controller/Entities/AdultVideo.cs
@@ -1,5 +1,4 @@
-using MediaBrowser.Controller.Providers;
-using System;
+using System;
using System.Collections.Generic;
namespace MediaBrowser.Controller.Entities
@@ -16,26 +15,5 @@ namespace MediaBrowser.Controller.Entities
Taglines = new List<string>();
ProductionLocations = new List<string>();
}
-
- public override bool BeforeMetadataRefresh()
- {
- var hasChanges = base.BeforeMetadataRefresh();
-
- if (!ProductionYear.HasValue)
- {
- int? yearInName = null;
- string name;
-
- NameParser.ParseName(Name, out name, out yearInName);
-
- if (yearInName.HasValue)
- {
- ProductionYear = yearInName;
- hasChanges = true;
- }
- }
-
- return hasChanges;
- }
}
}
diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs
index c0afe3df9..686abdaf5 100644
--- a/MediaBrowser.Controller/Entities/Movies/Movie.cs
+++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs
@@ -149,10 +149,9 @@ namespace MediaBrowser.Controller.Entities.Movies
if (!ProductionYear.HasValue)
{
- int? yearInName = null;
- string name;
+ var info = LibraryManager.ParseName(Name);
- NameParser.ParseName(Name, out name, out yearInName);
+ var yearInName = info.Year;
if (yearInName.HasValue)
{
diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs
index 7f6591287..3d1051b18 100644
--- a/MediaBrowser.Controller/Entities/TV/Series.cs
+++ b/MediaBrowser.Controller/Entities/TV/Series.cs
@@ -255,10 +255,9 @@ namespace MediaBrowser.Controller.Entities.TV
if (!ProductionYear.HasValue)
{
- int? yearInName = null;
- string name;
+ var info = LibraryManager.ParseName(Name);
- NameParser.ParseName(Name, out name, out yearInName);
+ var yearInName = info.Year;
if (yearInName.HasValue)
{
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index 71e26b23c..aff4af468 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -740,7 +740,7 @@ namespace MediaBrowser.Controller.Entities
{
var user = query.User;
- items = items.Where(i => Filter(i, user, query, userDataManager));
+ items = items.Where(i => Filter(i, user, query, userDataManager, libraryManager));
items = FilterVirtualEpisodes(items,
query.IsMissing,
@@ -1140,7 +1140,7 @@ namespace MediaBrowser.Controller.Entities
};
}
- private static bool Filter(BaseItem item, User user, InternalItemsQuery query, IUserDataManager userDataManager)
+ private static bool Filter(BaseItem item, User user, InternalItemsQuery query, IUserDataManager userDataManager, ILibraryManager libraryManager)
{
if (query.MediaTypes.Length > 0 && !query.MediaTypes.Contains(item.MediaType ?? string.Empty, StringComparer.OrdinalIgnoreCase))
{
@@ -1321,7 +1321,7 @@ namespace MediaBrowser.Controller.Entities
{
var filterValue = query.IsYearMismatched.Value;
- if (IsYearMismatched(item) != filterValue)
+ if (IsYearMismatched(item, libraryManager) != filterValue)
{
return false;
}
@@ -1551,8 +1551,8 @@ namespace MediaBrowser.Controller.Entities
return false;
}
}
- }
-
+ }
+
// Apply tag filter
var tags = query.Tags;
if (tags.Length > 0)
@@ -1641,7 +1641,7 @@ namespace MediaBrowser.Controller.Entities
return view;
}
- public static bool IsYearMismatched(BaseItem item)
+ public static bool IsYearMismatched(BaseItem item, ILibraryManager libraryManager)
{
if (item.ProductionYear.HasValue)
{
@@ -1649,14 +1649,14 @@ namespace MediaBrowser.Controller.Entities
if (!string.IsNullOrEmpty(path))
{
- int? yearInName;
- string name;
- NameParser.ParseName(Path.GetFileName(path), out name, out yearInName);
+ var info = libraryManager.ParseName(Path.GetFileName(path));
+ var yearInName = info.Year;
// Go up a level if we didn't get a year
if (!yearInName.HasValue)
{
- NameParser.ParseName(Path.GetFileName(Path.GetDirectoryName(path)), out name, out yearInName);
+ info = libraryManager.ParseName(Path.GetFileName(Path.GetDirectoryName(path)));
+ yearInName = info.Year;
}
if (yearInName.HasValue)
diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs
index 68b99e472..615ddd90f 100644
--- a/MediaBrowser.Controller/Library/ILibraryManager.cs
+++ b/MediaBrowser.Controller/Library/ILibraryManager.cs
@@ -361,6 +361,11 @@ namespace MediaBrowser.Controller.Library
/// <returns><c>true</c> if [is video file] [the specified path]; otherwise, <c>false</c>.</returns>
bool IsVideoFile(string path);
+ /// <summary>
+ /// Determines whether [is audio file] [the specified path].
+ /// </summary>
+ /// <param name="path">The path.</param>
+ /// <returns><c>true</c> if [is audio file] [the specified path]; otherwise, <c>false</c>.</returns>
bool IsAudioFile(string path);
/// <summary>
@@ -405,5 +410,12 @@ namespace MediaBrowser.Controller.Library
/// <param name="considerSeasonless">if set to <c>true</c> [consider seasonless].</param>
/// <returns>System.Nullable&lt;System.Int32&gt;.</returns>
int? GetEpisodeNumberFromFile(string path, bool considerSeasonless);
+
+ /// <summary>
+ /// Parses the name.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <returns>ItemInfo.</returns>
+ ItemLookupInfo ParseName(string name);
}
} \ No newline at end of file
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 0457ea72e..420da131e 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -266,7 +266,6 @@
<Compile Include="Providers\ItemIdentities.cs" />
<Compile Include="Providers\ItemLookupInfo.cs" />
<Compile Include="Providers\MetadataRefreshOptions.cs" />
- <Compile Include="Providers\NameParser.cs" />
<Compile Include="Providers\MetadataStatus.cs" />
<Compile Include="Providers\ISeriesOrderManager.cs" />
<Compile Include="Session\ISessionManager.cs" />
diff --git a/MediaBrowser.Controller/Providers/NameParser.cs b/MediaBrowser.Controller/Providers/NameParser.cs
deleted file mode 100644
index cdd0974ea..000000000
--- a/MediaBrowser.Controller/Providers/NameParser.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using System;
-using System.Text.RegularExpressions;
-
-namespace MediaBrowser.Controller.Providers
-{
- public static class NameParser
- {
- static readonly Regex[] NameMatches =
- {
- new Regex(@"(?<name>.*)\((?<year>\d{4})\)"), // matches "My Movie (2001)" and gives us the name and the year
- new Regex(@"(?<name>.*)(\.(?<year>\d{4})(\.|$)).*$"),
- new Regex(@"(?<name>.*)") // last resort matches the whole string as the name
- };
-
- /// <summary>
- /// Parses the name.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <param name="justName">Name of the just.</param>
- /// <param name="year">The year.</param>
- public static void ParseName(string name, out string justName, out int? year)
- {
- justName = null;
- year = null;
- foreach (var re in NameMatches)
- {
- Match m = re.Match(name);
- if (m.Success)
- {
- justName = m.Groups["name"].Value.Trim();
- string y = m.Groups["year"] != null ? m.Groups["year"].Value : null;
- int temp;
- year = Int32.TryParse(y, out temp) ? temp : (int?)null;
- break;
- }
- }
- }
- }
-}
diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
index a9bca3922..e09d70fc5 100644
--- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj
+++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
@@ -55,7 +55,7 @@
</Reference>
<Reference Include="MediaBrowser.Naming, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\MediaBrowser.Naming.1.0.0.1\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll</HintPath>
+ <HintPath>..\packages\MediaBrowser.Naming.1.0.0.2\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll</HintPath>
</Reference>
<Reference Include="MoreLinq, Version=1.1.17511.0, Culture=neutral, PublicKeyToken=384d532d7e88985d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
diff --git a/MediaBrowser.Providers/Movies/MovieDbSearch.cs b/MediaBrowser.Providers/Movies/MovieDbSearch.cs
index 85a0d5fa1..ba7693043 100644
--- a/MediaBrowser.Providers/Movies/MovieDbSearch.cs
+++ b/MediaBrowser.Providers/Movies/MovieDbSearch.cs
@@ -1,4 +1,5 @@
using MediaBrowser.Common.Net;
+using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
@@ -24,6 +25,7 @@ namespace MediaBrowser.Providers.Movies
private readonly ILogger _logger;
private readonly IJsonSerializer _json;
+ private ILibraryManager _libraryManager;
public MovieDbSearch(ILogger logger, IJsonSerializer json)
{
@@ -50,13 +52,14 @@ namespace MediaBrowser.Providers.Movies
{
var name = idInfo.Name;
var year = idInfo.Year;
- int? yearInName = null;
var tmdbSettings = await MovieDbProvider.Current.GetTmdbSettings(cancellationToken).ConfigureAwait(false);
var tmdbImageUrl = tmdbSettings.images.base_url + "original";
-
- NameParser.ParseName(name, out name, out yearInName);
+
+ var parsedName = _libraryManager.ParseName(name);
+ var yearInName = parsedName.Year;
+ name = parsedName.Name;
year = year ?? yearInName;
diff --git a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs
index 97eabcfa9..69f1123d0 100644
--- a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs
+++ b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs
@@ -37,8 +37,9 @@ namespace MediaBrowser.Providers.TV
private readonly CultureInfo _usCulture = new CultureInfo("en-US");
private readonly ILogger _logger;
private readonly ISeriesOrderManager _seriesOrder;
+ private readonly ILibraryManager _libraryManager;
- public TvdbSeriesProvider(IZipClient zipClient, IHttpClient httpClient, IFileSystem fileSystem, IServerConfigurationManager config, ILogger logger, ISeriesOrderManager seriesOrder)
+ public TvdbSeriesProvider(IZipClient zipClient, IHttpClient httpClient, IFileSystem fileSystem, IServerConfigurationManager config, ILogger logger, ISeriesOrderManager seriesOrder, ILibraryManager libraryManager)
{
_zipClient = zipClient;
_httpClient = httpClient;
@@ -46,6 +47,7 @@ namespace MediaBrowser.Providers.TV
_config = config;
_logger = logger;
_seriesOrder = seriesOrder;
+ _libraryManager = libraryManager;
Current = this;
}
@@ -282,9 +284,8 @@ namespace MediaBrowser.Providers.TV
if (results.Count == 0)
{
- int? yearInName = null;
- string nameWithoutYear;
- NameParser.ParseName(name, out nameWithoutYear, out yearInName);
+ var parsedName = _libraryManager.ParseName(name);
+ var nameWithoutYear = parsedName.Name;
if (!string.IsNullOrEmpty(nameWithoutYear) && !string.Equals(nameWithoutYear, name, StringComparison.OrdinalIgnoreCase))
{
diff --git a/MediaBrowser.Providers/packages.config b/MediaBrowser.Providers/packages.config
index 17c6f08ba..48906c583 100644
--- a/MediaBrowser.Providers/packages.config
+++ b/MediaBrowser.Providers/packages.config
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MediaBrowser.BdInfo" version="1.0.0.10" targetFramework="net45" />
- <package id="MediaBrowser.Naming" version="1.0.0.1" targetFramework="net45" />
+ <package id="MediaBrowser.Naming" version="1.0.0.2" targetFramework="net45" />
<package id="morelinq" version="1.1.0" targetFramework="net45" />
<package id="taglib" version="2.1.0.0" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs b/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs
index bc6c6edff..d4625d402 100644
--- a/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs
+++ b/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs
@@ -321,9 +321,10 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
private Series GetMatchingSeries(string seriesName, FileOrganizationResult result)
{
- int? yearInName;
- var nameWithoutYear = seriesName;
- NameParser.ParseName(nameWithoutYear, out nameWithoutYear, out yearInName);
+ var parsedName = _libraryManager.ParseName(seriesName);
+
+ var yearInName = parsedName.Year;
+ var nameWithoutYear = parsedName.Name;
result.ExtractedName = nameWithoutYear;
result.ExtractedYear = yearInName;
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index 3ed682002..e2a2ce0a4 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -21,7 +21,6 @@ using MediaBrowser.Naming.Video;
using MediaBrowser.Server.Implementations.Library.Resolvers.TV;
using MediaBrowser.Server.Implementations.Library.Validators;
using MediaBrowser.Server.Implementations.ScheduledTasks;
-using MoreLinq;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
@@ -1635,8 +1634,8 @@ namespace MediaBrowser.Server.Implementations.Library
public bool IsVideoFile(string path)
{
- var parser = new VideoFileParser(new ExpandedVideoOptions(), new Naming.Logging.NullLogger());
- return parser.IsVideoFile(path);
+ var resolver = new VideoResolver(new ExpandedVideoOptions(), new AudioOptions(), new Naming.Logging.NullLogger());
+ return resolver.IsVideoFile(path);
}
public bool IsAudioFile(string path)
@@ -1647,13 +1646,13 @@ namespace MediaBrowser.Server.Implementations.Library
public bool IsMultiPartFile(string path)
{
- var parser = new MultiPartParser(new ExpandedVideoOptions(), new Naming.Logging.NullLogger());
+ var parser = new MultiPartParser(new ExpandedVideoOptions(), new AudioOptions(), new Naming.Logging.NullLogger());
return parser.Parse(path, FileInfoType.File).IsMultiPart;
}
public bool IsMultiPartFolder(string path)
{
- var parser = new MultiPartParser(new ExpandedVideoOptions(), new Naming.Logging.NullLogger());
+ var parser = new MultiPartParser(new ExpandedVideoOptions(), new AudioOptions(), new Naming.Logging.NullLogger());
return parser.Parse(path, FileInfoType.Directory).IsMultiPart;
}
@@ -1676,5 +1675,18 @@ namespace MediaBrowser.Server.Implementations.Library
{
return SeriesResolver.GetEpisodeNumberFromFile(path, considerSeasonless);
}
+
+ public ItemLookupInfo ParseName(string name)
+ {
+ var resolver = new VideoResolver(new ExpandedVideoOptions(), new AudioOptions(), new Naming.Logging.NullLogger());
+
+ var result = resolver.CleanDateTime(name);
+
+ return new ItemLookupInfo
+ {
+ Name = result.Name,
+ Year = result.Year
+ };
+ }
}
}
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs
index 9ff1223b0..ba2a32c13 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs
@@ -1,6 +1,7 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Entities;
+using MediaBrowser.Naming.Audio;
using MediaBrowser.Naming.Video;
using System;
@@ -42,8 +43,8 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers
// If the path is a file check for a matching extensions
if (!args.IsDirectory)
{
- var parser = new VideoFileParser(new ExpandedVideoOptions(), new Naming.Logging.NullLogger());
- var videoInfo = parser.ParseFile(args.Path);
+ var parser = new Naming.Video.VideoResolver(new ExpandedVideoOptions(), new AudioOptions(), new Naming.Logging.NullLogger());
+ var videoInfo = parser.ResolveFile(args.Path);
if (videoInfo == null)
{
@@ -67,7 +68,8 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers
IsInMixedFolder = true,
IsPlaceHolder = videoInfo.IsStub,
IsShortcut = isShortcut,
- Name = videoInfo.Name
+ Name = videoInfo.Name,
+ ProductionYear = videoInfo.Year
};
if (videoInfo.IsStub)
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs
index 3082872fd..839b14a9e 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs
@@ -70,6 +70,10 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
if (episode != null)
{
+ // The base video resolver is going to fill these in, so null them out
+ episode.ProductionYear = null;
+ episode.Name = null;
+
if (season != null)
{
episode.ParentIndexNumber = season.IndexNumber;
diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
index 87cffa44c..36fc04fca 100644
--- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
+++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
@@ -51,7 +51,7 @@
</Reference>
<Reference Include="MediaBrowser.Naming, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\MediaBrowser.Naming.1.0.0.1\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll</HintPath>
+ <HintPath>..\packages\MediaBrowser.Naming.1.0.0.2\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll</HintPath>
</Reference>
<Reference Include="Mono.Nat, Version=1.2.21.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
diff --git a/MediaBrowser.Server.Implementations/packages.config b/MediaBrowser.Server.Implementations/packages.config
index 2dc1af97a..ae52e1616 100644
--- a/MediaBrowser.Server.Implementations/packages.config
+++ b/MediaBrowser.Server.Implementations/packages.config
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
- <package id="MediaBrowser.Naming" version="1.0.0.1" targetFramework="net45" />
+ <package id="MediaBrowser.Naming" version="1.0.0.2" targetFramework="net45" />
<package id="Mono.Nat" version="1.2.21.0" targetFramework="net45" />
<package id="morelinq" version="1.1.0" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs
index 4c3408e0e..1ea0053b3 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs
@@ -3,6 +3,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Model.Logging;
using System.Collections.Generic;
+using System.Globalization;
using System.Xml;
namespace MediaBrowser.XbmcMetadata.Parsers
@@ -31,7 +32,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
int num;
- if (int.TryParse(number, out num))
+ if (int.TryParse(number, NumberStyles.Integer, CultureInfo.InvariantCulture, out num))
{
item.IndexNumber = num;
}