mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-01 03:42:51 +01:00
handle year in name when searching
This commit is contained in:
@@ -195,7 +195,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
var currentItem = item;
|
||||
|
||||
var providersWithChanges = providers.OfType<IHasChangeMonitor>()
|
||||
.Where(i => i.HasChanged(currentItem, options.DirectoryService, currentItem.DateLastSaved))
|
||||
.Where(i => HasChanged(currentItem, i, currentItem.DateLastSaved, options.DirectoryService))
|
||||
.Cast<IMetadataProvider<TItemType>>()
|
||||
.ToList();
|
||||
|
||||
@@ -242,11 +242,8 @@ namespace MediaBrowser.Providers.Manager
|
||||
|
||||
if (!runAllProviders)
|
||||
{
|
||||
// Avoid implicitly captured closure
|
||||
var currentItem = item;
|
||||
|
||||
providers = providers.OfType<IHasChangeMonitor>()
|
||||
.Where(i => i.HasChanged(currentItem, options.DirectoryService, dateLastImageRefresh.Value))
|
||||
.Where(i => HasChanged(item, i, dateLastImageRefresh.Value, options.DirectoryService))
|
||||
.Cast<IImageProvider>()
|
||||
.ToList();
|
||||
}
|
||||
@@ -438,6 +435,19 @@ namespace MediaBrowser.Providers.Manager
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
private bool HasChanged(IHasMetadata item, IHasChangeMonitor changeMonitor, DateTime date, IDirectoryService directoryService)
|
||||
{
|
||||
try
|
||||
{
|
||||
return changeMonitor.HasChanged(item, directoryService, date);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.ErrorException("Error in {0}.HasChanged", ex, changeMonitor.GetType().Name);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class RefreshResult
|
||||
|
||||
@@ -572,11 +572,6 @@ namespace MediaBrowser.Providers.Manager
|
||||
{
|
||||
var type = item.GetType().Name;
|
||||
|
||||
if (item is Trailer)
|
||||
{
|
||||
type = typeof(Movie).Name;
|
||||
}
|
||||
|
||||
return ConfigurationManager.Configuration.MetadataOptions
|
||||
.FirstOrDefault(i => string.Equals(i.ItemType, type, StringComparison.OrdinalIgnoreCase)) ??
|
||||
new MetadataOptions();
|
||||
|
||||
@@ -48,6 +48,11 @@ namespace MediaBrowser.Providers.Movies
|
||||
{
|
||||
var name = idInfo.Name;
|
||||
var year = idInfo.Year;
|
||||
int? yearInName = null;
|
||||
|
||||
NameParser.ParseName(name, out name, out yearInName);
|
||||
|
||||
year = year ?? yearInName;
|
||||
|
||||
_logger.Info("MovieDbProvider: Finding id for item: " + name);
|
||||
var language = idInfo.MetadataLanguage.ToLower();
|
||||
|
||||
@@ -56,6 +56,18 @@ namespace MediaBrowser.Providers.TV
|
||||
if (string.IsNullOrEmpty(seriesId))
|
||||
{
|
||||
seriesId = await FindSeries(itemId.Name, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
if (string.IsNullOrEmpty(seriesId))
|
||||
{
|
||||
int? yearInName = null;
|
||||
string nameWithoutYear;
|
||||
NameParser.ParseName(itemId.Name, out nameWithoutYear, out yearInName);
|
||||
|
||||
if (!string.IsNullOrEmpty(nameWithoutYear) && !string.Equals(nameWithoutYear, itemId.Name, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
seriesId = await FindSeries(nameWithoutYear, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
@@ -248,16 +260,6 @@ namespace MediaBrowser.Providers.TV
|
||||
}
|
||||
}
|
||||
|
||||
// Try stripping off the year if it was supplied
|
||||
var parenthIndex = name.LastIndexOf('(');
|
||||
|
||||
if (parenthIndex != -1)
|
||||
{
|
||||
var newName = name.Substring(0, parenthIndex);
|
||||
|
||||
return await FindSeries(newName, cancellationToken);
|
||||
}
|
||||
|
||||
_logger.Info("TVDb Provider - Could not find " + name + ". Check name on Thetvdb.org.");
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user