forked from Kareadita/Kavita
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
New Scan Loop Fixes (Kareadita#1452)
* Refactored ScanSeries to avoid a lot of extra work and fixed a bug where Scan Series would invoke the processing twice. Refactored the series selection code during process such that we use Localized Name as well, for cases where the original name was changed. Undid an optimization around Last Write time, since Linux file systems match how NTFS works. * Fixed part of the query * Added a NormalizedLocalizedName for quick searching in which a series needs grouping. Reworked scan loop code a bit to ensure we don't do extra work. Tweaked the widget logic to help display better and not show "Nothing going on here". * Fixed a bug where archives with ._ files would be counted as valid files, while they are actually just metadata files on Mac's. * Fixed a broken unit test
- Loading branch information
1 parent
252f31d
commit 7cb547f
Showing
17 changed files
with
1,815 additions
and
65 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file added
BIN
+424 Bytes
API.Tests/Services/Test Data/ArchiveService/Archives/macos_withdotunder_one.zip
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
using System.Linq; | ||
using System.Threading.Tasks; | ||
using Microsoft.EntityFrameworkCore; | ||
using Microsoft.Extensions.Logging; | ||
|
||
namespace API.Data; | ||
|
||
/// <summary> | ||
/// v0.5.6 introduced Normalized Localized Name, which allows for faster lookups and less memory usage. This migration will calculate them once | ||
/// </summary> | ||
public static class MigrateNormalizedLocalizedName | ||
{ | ||
public static async Task Migrate(IUnitOfWork unitOfWork, DataContext dataContext, ILogger<Program> logger) | ||
{ | ||
if (!await dataContext.Series.Where(s => s.NormalizedLocalizedName == null).AnyAsync()) | ||
{ | ||
return; | ||
} | ||
logger.LogInformation("Running MigrateNormalizedLocalizedName migration. Please be patient, this may take some time"); | ||
|
||
|
||
foreach (var series in await dataContext.Series.ToListAsync()) | ||
{ | ||
series.NormalizedLocalizedName = Parser.Parser.Normalize(series.LocalizedName ?? string.Empty); | ||
logger.LogInformation("Updated {SeriesName} normalized localized name: {LocalizedName}", series.Name, series.NormalizedLocalizedName); | ||
unitOfWork.SeriesRepository.Update(series); | ||
} | ||
|
||
if (unitOfWork.HasChanges()) | ||
{ | ||
await unitOfWork.CommitAsync(); | ||
} | ||
|
||
logger.LogInformation("MigrateNormalizedLocalizedName migration finished"); | ||
|
||
} | ||
|
||
} |
Oops, something went wrong.