improve artist cleanup

This commit is contained in:
Luke Pulverenti 2017-06-26 13:23:03 -04:00
parent eece9d77a5
commit 02889f751d

View File

@ -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);
}
}