New provider system. Only for people right now

This commit is contained in:
Luke Pulverenti
2014-01-28 13:37:01 -05:00
parent d748967c5d
commit ad82c9f5e9
83 changed files with 3094 additions and 1746 deletions

View File

@@ -46,7 +46,7 @@ namespace MediaBrowser.Server.Implementations.Library
}
// Make sure the item has a name
EnsureName(item);
EnsureName(item, args);
item.DontFetchMeta = item.Path.IndexOf("[dontfetchmeta]", StringComparison.OrdinalIgnoreCase) != -1 ||
item.Parents.Any(i => i.DontFetchMeta);
@@ -59,13 +59,13 @@ namespace MediaBrowser.Server.Implementations.Library
/// Ensures the name.
/// </summary>
/// <param name="item">The item.</param>
private static void EnsureName(BaseItem item)
private static void EnsureName(BaseItem item, ItemResolveArgs args)
{
// If the subclass didn't supply a name, add it here
if (string.IsNullOrEmpty(item.Name) && !string.IsNullOrEmpty(item.Path))
{
//we use our resolve args name here to get the name of the containg folder, not actual video file
item.Name = GetMBName(item.ResolveArgs.FileInfo.Name, (item.ResolveArgs.FileInfo.Attributes & FileAttributes.Directory) == FileAttributes.Directory);
item.Name = GetMBName(args.FileInfo.Name, (args.FileInfo.Attributes & FileAttributes.Directory) == FileAttributes.Directory);
}
}

View File

@@ -4,6 +4,7 @@ using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
@@ -192,7 +193,11 @@ namespace MediaBrowser.Server.Implementations.Library
/// <returns>Task.</returns>
public Task RefreshUsersMetadata(CancellationToken cancellationToken, bool force = false)
{
var tasks = Users.Select(user => user.RefreshMetadata(cancellationToken, forceRefresh: force)).ToList();
var tasks = Users.Select(user => user.RefreshMetadata(new MetadataRefreshOptions
{
ReplaceAllMetadata = force
}, cancellationToken)).ToList();
return Task.WhenAll(tasks);
}

View File

@@ -16,7 +16,6 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
/// Initializes a new instance of the <see cref="ArtistsPostScanTask" /> class.
/// </summary>
/// <param name="libraryManager">The library manager.</param>
/// <param name="userManager">The user manager.</param>
public GenresPostScanTask(ILibraryManager libraryManager)
{
_libraryManager = libraryManager;

View File

@@ -1,5 +1,6 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
@@ -88,7 +89,14 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
var itemByName = _libraryManager.GetPerson(name);
await itemByName.RefreshMetadata(cancellationToken, allowSlowProviders: false).ConfigureAwait(false);
// The only purpose here is to be able to react to image changes without running the people task.
// All other metadata can wait for that.
await itemByName.RefreshMetadata(new MetadataRefreshOptions
{
ImageRefreshMode = MetadataRefreshMode.None,
MetadataRefreshMode = MetadataRefreshMode.None
}, cancellationToken).ConfigureAwait(false);
foreach (var libraryId in counts.Keys)
{