diff --git a/API.Tests/Services/ParseScannedFilesTests.cs b/API.Tests/Services/ParseScannedFilesTests.cs
index c286a9c25..26065f151 100644
--- a/API.Tests/Services/ParseScannedFilesTests.cs
+++ b/API.Tests/Services/ParseScannedFilesTests.cs
@@ -358,7 +358,8 @@ public class ParseScannedFilesTests : AbstractDbTest
#endregion
- [Fact]
+ // TODO: Add back in (removed for Hotfix v0.8.5.x)
+ //[Fact]
public async Task HasSeriesFolderNotChangedSinceLastScan_AllSeriesFoldersHaveChanges()
{
const string testcase = "Subfolders always scanning all series changes - Manga.json";
@@ -452,7 +453,8 @@ public class ParseScannedFilesTests : AbstractDbTest
Assert.Equal(1, changes);
}
- [Fact]
+ // TODO: Add back in (removed for Hotfix v0.8.5.x)
+ //[Fact]
public async Task SubFoldersNoSubFolders_SkipAll()
{
const string testcase = "Subfolders and files at root - Manga.json";
diff --git a/API/Services/Tasks/Scanner/ParseScannedFiles.cs b/API/Services/Tasks/Scanner/ParseScannedFiles.cs
index 08abb1c07..01cb4a4d0 100644
--- a/API/Services/Tasks/Scanner/ParseScannedFiles.cs
+++ b/API/Services/Tasks/Scanner/ParseScannedFiles.cs
@@ -209,17 +209,27 @@ public class ParseScannedFiles
///
private bool HasSeriesFolderNotChangedSinceLastScan(Library library, IDictionary> seriesPaths, string directory, bool forceCheck)
{
- if (forceCheck)
+ // Reverting code from: https://github.com/Kareadita/Kavita/pull/3619/files#diff-0625df477047ab9d8e97a900201f2f29b2dc0599ba58eb75cfbbd073a9f3c72f
+ // This is to be able to release hotfix and tackle this in appropriate time
+
+ // With the bottom-up approach, this can report a false positive where a nested folder will get scanned even though a parent is the series
+ // This can't really be avoided. This is more likely to happen on Image chapter folder library layouts.
+ if (forceCheck || !seriesPaths.TryGetValue(directory, out var seriesList))
{
return false;
}
+ // if (forceCheck)
+ // {
+ // return false;
+ // }
+
// TryGetSeriesList falls back to parent folders to match to seriesList
- var seriesList = TryGetSeriesList(library, seriesPaths, directory);
- if (seriesList == null)
- {
- return false;
- }
+ // var seriesList = TryGetSeriesList(library, seriesPaths, directory);
+ // if (seriesList == null)
+ // {
+ // return false;
+ // }
foreach (var series in seriesList)
{
@@ -299,7 +309,9 @@ public class ParseScannedFiles
{
return;
}
- result.Add(CreateScanResult(directory, folderPath, hasChanged, files));
+ // Revert of https://github.com/Kareadita/Kavita/pull/3629/files#diff-0625df477047ab9d8e97a900201f2f29b2dc0599ba58eb75cfbbd073a9f3c72f
+ // for Hotfix v0.8.5.x
+ result.Add(CreateScanResult(directory, folderPath, true, files));
}
///
@@ -758,11 +770,15 @@ public class ParseScannedFiles
// If folder hasn't changed, generate fake ParserInfos
if (!result.HasChanged)
{
- // We are certain TryGetSeriesList will return a valid result here, if the series wasn't present yet. It will have been changed.
- result.ParserInfos = TryGetSeriesList(library, seriesPaths, normalizedFolder)!
+ result.ParserInfos = seriesPaths[normalizedFolder]
.Select(fp => new ParserInfo { Series = fp.SeriesName, Format = fp.Format })
.ToList();
+ // // We are certain TryGetSeriesList will return a valid result here, if the series wasn't present yet. It will have been changed.
+ // result.ParserInfos = TryGetSeriesList(library, seriesPaths, normalizedFolder)!
+ // .Select(fp => new ParserInfo { Series = fp.SeriesName, Format = fp.Format })
+ // .ToList();
+
_logger.LogDebug("[ScannerService] Skipped File Scan for {Folder} as it hasn't changed", normalizedFolder);
await _eventHub.SendMessageAsync(MessageFactory.NotificationProgress,
MessageFactory.FileScanProgressEvent($"Skipped {normalizedFolder}", library.Name, ProgressEventType.Updated));