aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Library/Validators
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/Library/Validators')
-rw-r--r--Emby.Server.Implementations/Library/Validators/ArtistsValidator.cs32
-rw-r--r--Emby.Server.Implementations/Library/Validators/PeopleValidator.cs4
-rw-r--r--Emby.Server.Implementations/Library/Validators/YearsPostScanTask.cs57
3 files changed, 32 insertions, 61 deletions
diff --git a/Emby.Server.Implementations/Library/Validators/ArtistsValidator.cs b/Emby.Server.Implementations/Library/Validators/ArtistsValidator.cs
index d4be2dabe..1a53ad672 100644
--- a/Emby.Server.Implementations/Library/Validators/ArtistsValidator.cs
+++ b/Emby.Server.Implementations/Library/Validators/ArtistsValidator.cs
@@ -2,11 +2,14 @@
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Logging;
using System;
+using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Extensions;
using MediaBrowser.Controller.Persistence;
namespace Emby.Server.Implementations.Library.Validators
@@ -78,6 +81,35 @@ namespace Emby.Server.Implementations.Library.Validators
progress.Report(percent);
}
+ names = names.Select(i => i.RemoveDiacritics()).DistinctNames().ToList();
+
+ var artistEntities = _libraryManager.GetItemList(new InternalItemsQuery
+ {
+ IncludeItemTypes = new[] { typeof(MusicArtist).Name }
+
+ }).Cast<MusicArtist>().ToList();
+
+ foreach (var artist in artistEntities)
+ {
+ if (!artist.IsAccessedByName)
+ {
+ continue;
+ }
+
+ var name = (artist.Name ?? string.Empty).RemoveDiacritics();
+
+ if (!names.Contains(name, StringComparer.OrdinalIgnoreCase))
+ {
+ _logger.Info("Deleting dead artist {0} {1}.", artist.Id.ToString("N"), artist.Name);
+
+ await _libraryManager.DeleteItem(artist, new DeleteOptions
+ {
+ DeleteFileLocation = false
+
+ }).ConfigureAwait(false);
+ }
+ }
+
progress.Report(100);
}
}
diff --git a/Emby.Server.Implementations/Library/Validators/PeopleValidator.cs b/Emby.Server.Implementations/Library/Validators/PeopleValidator.cs
index ef3b86abf..c2eb30ee4 100644
--- a/Emby.Server.Implementations/Library/Validators/PeopleValidator.cs
+++ b/Emby.Server.Implementations/Library/Validators/PeopleValidator.cs
@@ -55,10 +55,6 @@ namespace Emby.Server.Implementations.Library.Validators
/// <returns>Task.</returns>
public async Task ValidatePeople(CancellationToken cancellationToken, IProgress<double> progress)
{
- var innerProgress = new ActionableProgress<double>();
-
- innerProgress.RegisterAction(pct => progress.Report(pct * .15));
-
var people = _libraryManager.GetPeople(new InternalPeopleQuery());
var dict = new Dictionary<string, bool>(StringComparer.OrdinalIgnoreCase);
diff --git a/Emby.Server.Implementations/Library/Validators/YearsPostScanTask.cs b/Emby.Server.Implementations/Library/Validators/YearsPostScanTask.cs
deleted file mode 100644
index 4afb4c04a..000000000
--- a/Emby.Server.Implementations/Library/Validators/YearsPostScanTask.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Model.Logging;
-using System;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace Emby.Server.Implementations.Library.Validators
-{
- public class YearsPostScanTask : ILibraryPostScanTask
- {
- private readonly ILibraryManager _libraryManager;
- private readonly ILogger _logger;
-
- public YearsPostScanTask(ILibraryManager libraryManager, ILogger logger)
- {
- _libraryManager = libraryManager;
- _logger = logger;
- }
-
- public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
- {
- var yearNumber = 1900;
- var maxYear = DateTime.UtcNow.Year + 3;
- var count = maxYear - yearNumber + 1;
- var numComplete = 0;
-
- while (yearNumber < maxYear)
- {
- cancellationToken.ThrowIfCancellationRequested();
-
- try
- {
- var year = _libraryManager.GetYear(yearNumber);
-
- await year.RefreshMetadata(cancellationToken).ConfigureAwait(false);
- }
- catch (OperationCanceledException)
- {
- // Don't clutter the log
- throw;
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error refreshing year {0}", ex, yearNumber);
- }
-
- numComplete++;
- double percent = numComplete;
- percent /= count;
- percent *= 100;
-
- progress.Report(percent);
- yearNumber++;
- }
- }
- }
-}