|
@@ -710,10 +710,10 @@ namespace Emby.Server.Implementations.Library
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// Creates the root media folder
|
|
|
+ /// Creates the root media folder.
|
|
|
/// </summary>
|
|
|
/// <returns>AggregateFolder.</returns>
|
|
|
- /// <exception cref="InvalidOperationException">Cannot create the root folder until plugins have loaded</exception>
|
|
|
+ /// <exception cref="InvalidOperationException">Cannot create the root folder until plugins have loaded.</exception>
|
|
|
public AggregateFolder CreateRootFolder()
|
|
|
{
|
|
|
var rootFolderPath = ConfigurationManager.ApplicationPaths.RootFolderPath;
|
|
@@ -824,7 +824,6 @@ namespace Emby.Server.Implementations.Library
|
|
|
{
|
|
|
// If this returns multiple items it could be tricky figuring out which one is correct.
|
|
|
// In most cases, the newest one will be and the others obsolete but not yet cleaned up
|
|
|
-
|
|
|
if (string.IsNullOrEmpty(path))
|
|
|
{
|
|
|
throw new ArgumentNullException(nameof(path));
|
|
@@ -844,7 +843,7 @@ namespace Emby.Server.Implementations.Library
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// Gets a Person
|
|
|
+ /// Gets the person.
|
|
|
/// </summary>
|
|
|
/// <param name="name">The name.</param>
|
|
|
/// <returns>Task{Person}.</returns>
|
|
@@ -854,7 +853,7 @@ namespace Emby.Server.Implementations.Library
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// Gets a Studio
|
|
|
+ /// Gets the studio.
|
|
|
/// </summary>
|
|
|
/// <param name="name">The name.</param>
|
|
|
/// <returns>Task{Studio}.</returns>
|
|
@@ -879,7 +878,7 @@ namespace Emby.Server.Implementations.Library
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// Gets a Genre
|
|
|
+ /// Gets the genre.
|
|
|
/// </summary>
|
|
|
/// <param name="name">The name.</param>
|
|
|
/// <returns>Task{Genre}.</returns>
|
|
@@ -889,7 +888,7 @@ namespace Emby.Server.Implementations.Library
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// Gets the genre.
|
|
|
+ /// Gets the music genre.
|
|
|
/// </summary>
|
|
|
/// <param name="name">The name.</param>
|
|
|
/// <returns>Task{MusicGenre}.</returns>
|
|
@@ -899,7 +898,7 @@ namespace Emby.Server.Implementations.Library
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// Gets a Year
|
|
|
+ /// Gets the year.
|
|
|
/// </summary>
|
|
|
/// <param name="value">The value.</param>
|
|
|
/// <returns>Task{Year}.</returns>
|
|
@@ -1076,9 +1075,9 @@ namespace Emby.Server.Implementations.Library
|
|
|
|
|
|
var innerProgress = new ActionableProgress<double>();
|
|
|
|
|
|
- innerProgress.RegisterAction(pct => progress.Report(pct * .96));
|
|
|
+ innerProgress.RegisterAction(pct => progress.Report(pct * pct * 0.96));
|
|
|
|
|
|
- // Now validate the entire media library
|
|
|
+ // Validate the entire media library
|
|
|
await RootFolder.ValidateChildren(innerProgress, cancellationToken, new MetadataRefreshOptions(new DirectoryService(_fileSystem)), recursive: true).ConfigureAwait(false);
|
|
|
|
|
|
progress.Report(96);
|
|
@@ -1087,7 +1086,6 @@ namespace Emby.Server.Implementations.Library
|
|
|
|
|
|
innerProgress.RegisterAction(pct => progress.Report(96 + (pct * .04)));
|
|
|
|
|
|
- // Run post-scan tasks
|
|
|
await RunPostScanTasks(innerProgress, cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
progress.Report(100);
|
|
@@ -1138,7 +1136,7 @@ namespace Emby.Server.Implementations.Library
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- _logger.LogError(ex, "Error running postscan task");
|
|
|
+ _logger.LogError(ex, "Error running post-scan task");
|
|
|
}
|
|
|
|
|
|
numComplete++;
|