Scanner Performance Improvements (#1774)
* Refactored the Genre code to be faster and used a dictonary to avoid some lookups. May fix the rare foreign constraint issue. * Refactored tag to the same implementation as Genre. Ensure when grabbing tags from ComicInfo, we normalize and throw out duplicates. * Removed an internal "external" field that was planned for Genres and Tags, but now with new plugin architecture, not needed.
This commit is contained in:
parent
48aebfc3c2
commit
8a0a2f0961
18 changed files with 1925 additions and 152 deletions
|
|
@ -13,13 +13,13 @@ public class GenreHelperTests
|
|||
{
|
||||
var allGenres = new List<Genre>
|
||||
{
|
||||
DbFactory.Genre("Action", false),
|
||||
DbFactory.Genre("action", false),
|
||||
DbFactory.Genre("Sci-fi", false),
|
||||
DbFactory.Genre("Action"),
|
||||
DbFactory.Genre("action"),
|
||||
DbFactory.Genre("Sci-fi"),
|
||||
};
|
||||
var genreAdded = new List<Genre>();
|
||||
|
||||
GenreHelper.UpdateGenre(allGenres, new[] {"Action", "Adventure"}, false, genre =>
|
||||
GenreHelper.UpdateGenre(allGenres, new[] {"Action", "Adventure"}, genre =>
|
||||
{
|
||||
genreAdded.Add(genre);
|
||||
});
|
||||
|
|
@ -33,19 +33,20 @@ public class GenreHelperTests
|
|||
{
|
||||
var allGenres = new List<Genre>
|
||||
{
|
||||
DbFactory.Genre("Action", false),
|
||||
DbFactory.Genre("action", false),
|
||||
DbFactory.Genre("Sci-fi", false),
|
||||
DbFactory.Genre("Action"),
|
||||
DbFactory.Genre("action"),
|
||||
DbFactory.Genre("Sci-fi"),
|
||||
|
||||
};
|
||||
var genreAdded = new List<Genre>();
|
||||
|
||||
GenreHelper.UpdateGenre(allGenres, new[] {"Action", "Scifi"}, false, genre =>
|
||||
GenreHelper.UpdateGenre(allGenres, new[] {"Action", "Scifi"}, genre =>
|
||||
{
|
||||
genreAdded.Add(genre);
|
||||
});
|
||||
|
||||
Assert.Equal(3, allGenres.Count);
|
||||
Assert.Equal(2, genreAdded.Count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -53,49 +54,34 @@ public class GenreHelperTests
|
|||
{
|
||||
var existingGenres = new List<Genre>
|
||||
{
|
||||
DbFactory.Genre("Action", false),
|
||||
DbFactory.Genre("action", false),
|
||||
DbFactory.Genre("Sci-fi", false),
|
||||
DbFactory.Genre("Action"),
|
||||
DbFactory.Genre("action"),
|
||||
DbFactory.Genre("Sci-fi"),
|
||||
};
|
||||
|
||||
|
||||
GenreHelper.AddGenreIfNotExists(existingGenres, DbFactory.Genre("Action", false));
|
||||
GenreHelper.AddGenreIfNotExists(existingGenres, DbFactory.Genre("Action"));
|
||||
Assert.Equal(3, existingGenres.Count);
|
||||
|
||||
GenreHelper.AddGenreIfNotExists(existingGenres, DbFactory.Genre("action", false));
|
||||
GenreHelper.AddGenreIfNotExists(existingGenres, DbFactory.Genre("action"));
|
||||
Assert.Equal(3, existingGenres.Count);
|
||||
|
||||
GenreHelper.AddGenreIfNotExists(existingGenres, DbFactory.Genre("Shonen", false));
|
||||
GenreHelper.AddGenreIfNotExists(existingGenres, DbFactory.Genre("Shonen"));
|
||||
Assert.Equal(4, existingGenres.Count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AddGenre_ShouldNotAddSameNameAndExternal()
|
||||
{
|
||||
var existingGenres = new List<Genre>
|
||||
{
|
||||
DbFactory.Genre("Action", false),
|
||||
DbFactory.Genre("action", false),
|
||||
DbFactory.Genre("Sci-fi", false),
|
||||
};
|
||||
|
||||
|
||||
GenreHelper.AddGenreIfNotExists(existingGenres, DbFactory.Genre("Action", true));
|
||||
Assert.Equal(3, existingGenres.Count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void KeepOnlySamePeopleBetweenLists()
|
||||
{
|
||||
var existingGenres = new List<Genre>
|
||||
{
|
||||
DbFactory.Genre("Action", false),
|
||||
DbFactory.Genre("Sci-fi", false),
|
||||
DbFactory.Genre("Action"),
|
||||
DbFactory.Genre("Sci-fi"),
|
||||
};
|
||||
|
||||
var peopleFromChapters = new List<Genre>
|
||||
{
|
||||
DbFactory.Genre("Action", false),
|
||||
DbFactory.Genre("Action"),
|
||||
};
|
||||
|
||||
var genreRemoved = new List<Genre>();
|
||||
|
|
@ -113,8 +99,8 @@ public class GenreHelperTests
|
|||
{
|
||||
var existingGenres = new List<Genre>
|
||||
{
|
||||
DbFactory.Genre("Action", false),
|
||||
DbFactory.Genre("Sci-fi", false),
|
||||
DbFactory.Genre("Action"),
|
||||
DbFactory.Genre("Sci-fi"),
|
||||
};
|
||||
|
||||
var peopleFromChapters = new List<Genre>();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue