Misc Polish and Fixes (#1542)
* Moved LibraryWatcher to utilize a queue for calculating the change event to ensure the Watcher doesn't get overwhelmed on large moves. * Fixed a security vulnerability (https://huntr.dev/bounties/8a3e652f-d6bf-436e-877e-0eaf5c69ef95/). This will be disclosed in Stable release changelog. * Tweaked the log message template * Removed some dead code from Configuration json patcher * Fixed a bug with the ComicInfo finding to properly handle root level. Fixed a bug where sometimes scanner wouldn't choose the first file with ComicInfo for filling out information. * Added new setting for managing how many logs files are allowed, just like how backups work. * Added unit tests for new CleanupLogs code * Fixed a bug where manga reader background color wasn't actually sending from the UI * Added new stats for tracking to help understand usage in the app and what features are used or not. * Fixed Stats url * Fixed a bug where volumes that had larger than 1 difference wouldn't properly return next/prev chapter (for continuous reader) * Remove a redundant test step in build pipeline, since it's already done at PR stage. * Updated dockerfile to use the new Heath check endpoint * Allow force to pass through to scan loop * Removed some old config stuff from a safety check on config in entrypoint.sh * Fixed broken unit tests due to new RBS check and how we setup mock data.
This commit is contained in:
parent
c58c7deaf9
commit
e89a06865c
31 changed files with 702 additions and 308 deletions
|
@ -38,6 +38,7 @@ public class CleanupServiceTests
|
|||
private const string CacheDirectory = "C:/kavita/config/cache/";
|
||||
private const string CoverImageDirectory = "C:/kavita/config/covers/";
|
||||
private const string BackupDirectory = "C:/kavita/config/backups/";
|
||||
private const string LogDirectory = "C:/kavita/config/logs/";
|
||||
private const string BookmarkDirectory = "C:/kavita/config/bookmarks/";
|
||||
|
||||
|
||||
|
@ -84,6 +85,9 @@ public class CleanupServiceTests
|
|||
setting = await _context.ServerSetting.Where(s => s.Key == ServerSettingKey.BookmarkDirectory).SingleAsync();
|
||||
setting.Value = BookmarkDirectory;
|
||||
|
||||
setting = await _context.ServerSetting.Where(s => s.Key == ServerSettingKey.TotalLogs).SingleAsync();
|
||||
setting.Value = "10";
|
||||
|
||||
_context.ServerSetting.Update(setting);
|
||||
|
||||
_context.Library.Add(new Library()
|
||||
|
@ -412,6 +416,59 @@ public class CleanupServiceTests
|
|||
|
||||
#endregion
|
||||
|
||||
#region CleanupLogs
|
||||
|
||||
[Fact]
|
||||
public async Task CleanupLogs_LeaveOneFile_SinceAllAreExpired()
|
||||
{
|
||||
var filesystem = CreateFileSystem();
|
||||
foreach (var i in Enumerable.Range(1, 10))
|
||||
{
|
||||
var day = API.Services.Tasks.Scanner.Parser.Parser.PadZeros($"{i}");
|
||||
filesystem.AddFile($"{LogDirectory}kavita202009{day}.log", new MockFileData("")
|
||||
{
|
||||
CreationTime = DateTimeOffset.Now.Subtract(TimeSpan.FromDays(31))
|
||||
});
|
||||
}
|
||||
|
||||
var ds = new DirectoryService(Substitute.For<ILogger<DirectoryService>>(), filesystem);
|
||||
var cleanupService = new CleanupService(_logger, _unitOfWork, _messageHub,
|
||||
ds);
|
||||
await cleanupService.CleanupLogs();
|
||||
Assert.Single(ds.GetFiles(LogDirectory, searchOption: SearchOption.AllDirectories));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CleanupLogs_LeaveLestExpired()
|
||||
{
|
||||
var filesystem = CreateFileSystem();
|
||||
foreach (var i in Enumerable.Range(1, 9))
|
||||
{
|
||||
var day = API.Services.Tasks.Scanner.Parser.Parser.PadZeros($"{i}");
|
||||
filesystem.AddFile($"{LogDirectory}kavita202009{day}.log", new MockFileData("")
|
||||
{
|
||||
CreationTime = DateTimeOffset.Now.Subtract(TimeSpan.FromDays(31 - i))
|
||||
});
|
||||
}
|
||||
filesystem.AddFile($"{LogDirectory}kavita20200910.log", new MockFileData("")
|
||||
{
|
||||
CreationTime = DateTimeOffset.Now.Subtract(TimeSpan.FromDays(31 - 10))
|
||||
});
|
||||
filesystem.AddFile($"{LogDirectory}kavita20200911.log", new MockFileData("")
|
||||
{
|
||||
CreationTime = DateTimeOffset.Now.Subtract(TimeSpan.FromDays(31 - 11))
|
||||
});
|
||||
|
||||
|
||||
var ds = new DirectoryService(Substitute.For<ILogger<DirectoryService>>(), filesystem);
|
||||
var cleanupService = new CleanupService(_logger, _unitOfWork, _messageHub,
|
||||
ds);
|
||||
await cleanupService.CleanupLogs();
|
||||
Assert.True(filesystem.File.Exists($"{LogDirectory}kavita20200911.log"));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// #region CleanupBookmarks
|
||||
//
|
||||
// [Fact]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue