aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller')
-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
7 files changed, 27 insertions, 79 deletions
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;
- }
- }
- }
- }
-}