mirror of
https://github.com/Caraxi/mare.client.git
synced 2025-12-12 19:37:23 +01:00
refactor a little bit
This commit is contained in:
parent
cfb8cdaa79
commit
327b6275c0
23 changed files with 1091 additions and 894 deletions
|
|
@ -1,4 +1,4 @@
|
|||
using MareSynchronos.Interop;
|
||||
using MareSynchronos.Interop.Ipc;
|
||||
using MareSynchronos.MareConfiguration;
|
||||
using MareSynchronos.Services;
|
||||
using MareSynchronos.Services.Mediator;
|
||||
|
|
@ -33,7 +33,7 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
|
|||
_fileCompactor = fileCompactor;
|
||||
Mediator.Subscribe<PenumbraInitializedMessage>(this, (_) =>
|
||||
{
|
||||
StartPenumbraWatcher(_ipcManager.PenumbraModDirectory);
|
||||
StartPenumbraWatcher(_ipcManager.Penumbra.PenumbraModDirectory);
|
||||
StartMareWatcher(configService.Current.CacheFolder);
|
||||
InvokeScan();
|
||||
});
|
||||
|
|
@ -42,7 +42,7 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
|
|||
Mediator.Subscribe<DalamudLoginMessage>(this, (_) =>
|
||||
{
|
||||
StartMareWatcher(configService.Current.CacheFolder);
|
||||
StartPenumbraWatcher(_ipcManager.PenumbraModDirectory);
|
||||
StartPenumbraWatcher(_ipcManager.Penumbra.PenumbraModDirectory);
|
||||
InvokeScan();
|
||||
});
|
||||
Mediator.Subscribe<PenumbraDirectoryChangedMessage>(this, (msg) =>
|
||||
|
|
@ -50,9 +50,9 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
|
|||
StartPenumbraWatcher(msg.ModDirectory);
|
||||
InvokeScan();
|
||||
});
|
||||
if (_ipcManager.CheckPenumbraApi() && !string.IsNullOrEmpty(_ipcManager.PenumbraModDirectory))
|
||||
if (_ipcManager.Penumbra.APIAvailable && !string.IsNullOrEmpty(_ipcManager.Penumbra.PenumbraModDirectory))
|
||||
{
|
||||
StartPenumbraWatcher(_ipcManager.PenumbraModDirectory);
|
||||
StartPenumbraWatcher(_ipcManager.Penumbra.PenumbraModDirectory);
|
||||
}
|
||||
if (configService.Current.HasValidSetup())
|
||||
{
|
||||
|
|
@ -466,7 +466,7 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
|
|||
private void FullFileScan(CancellationToken ct)
|
||||
{
|
||||
TotalFiles = 1;
|
||||
var penumbraDir = _ipcManager.PenumbraModDirectory;
|
||||
var penumbraDir = _ipcManager.Penumbra.PenumbraModDirectory;
|
||||
bool penDirExists = true;
|
||||
bool cacheDirExists = true;
|
||||
if (string.IsNullOrEmpty(penumbraDir) || !Directory.Exists(penumbraDir))
|
||||
|
|
@ -558,7 +558,7 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
|
|||
{
|
||||
if (ct.IsCancellationRequested) return;
|
||||
|
||||
if (!_ipcManager.CheckPenumbraApi())
|
||||
if (!_ipcManager.Penumbra.APIAvailable)
|
||||
{
|
||||
Logger.LogWarning("Penumbra not available");
|
||||
return;
|
||||
|
|
@ -605,7 +605,7 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
|
|||
|
||||
Logger.LogTrace("Threads exited");
|
||||
|
||||
if (!_ipcManager.CheckPenumbraApi())
|
||||
if (!_ipcManager.Penumbra.APIAvailable)
|
||||
{
|
||||
Logger.LogWarning("Penumbra not available");
|
||||
return;
|
||||
|
|
@ -628,7 +628,7 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
|
|||
|
||||
Logger.LogTrace("Scanner validated existing db files");
|
||||
|
||||
if (!_ipcManager.CheckPenumbraApi())
|
||||
if (!_ipcManager.Penumbra.APIAvailable)
|
||||
{
|
||||
Logger.LogWarning("Penumbra not available");
|
||||
return;
|
||||
|
|
@ -648,7 +648,7 @@ public sealed class CacheMonitor : DisposableMediatorSubscriberBase
|
|||
{
|
||||
if (ct.IsCancellationRequested) return;
|
||||
|
||||
if (!_ipcManager.CheckPenumbraApi())
|
||||
if (!_ipcManager.Penumbra.APIAvailable)
|
||||
{
|
||||
Logger.LogWarning("Penumbra not available");
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
using LZ4;
|
||||
using MareSynchronos.Interop;
|
||||
using MareSynchronos.Interop.Ipc;
|
||||
using MareSynchronos.MareConfiguration;
|
||||
using MareSynchronos.Services.Mediator;
|
||||
using MareSynchronos.Utils;
|
||||
|
|
@ -53,8 +53,8 @@ public sealed class FileCacheManager : IHostedService
|
|||
if (!fi.Exists) return null;
|
||||
_logger.LogTrace("Creating file entry for {path}", path);
|
||||
var fullName = fi.FullName.ToLowerInvariant();
|
||||
if (!fullName.Contains(_ipcManager.PenumbraModDirectory!.ToLowerInvariant(), StringComparison.Ordinal)) return null;
|
||||
string prefixedPath = fullName.Replace(_ipcManager.PenumbraModDirectory!.ToLowerInvariant(), PenumbraPrefix + "\\", StringComparison.Ordinal).Replace("\\\\", "\\", StringComparison.Ordinal);
|
||||
if (!fullName.Contains(_ipcManager.Penumbra.PenumbraModDirectory!.ToLowerInvariant(), StringComparison.Ordinal)) return null;
|
||||
string prefixedPath = fullName.Replace(_ipcManager.Penumbra.PenumbraModDirectory!.ToLowerInvariant(), PenumbraPrefix + "\\", StringComparison.Ordinal).Replace("\\\\", "\\", StringComparison.Ordinal);
|
||||
return CreateFileCacheEntity(fi, prefixedPath);
|
||||
}
|
||||
|
||||
|
|
@ -158,7 +158,8 @@ public sealed class FileCacheManager : IHostedService
|
|||
|
||||
private FileCacheEntity? GetFileCacheByPath(string path)
|
||||
{
|
||||
var cleanedPath = path.Replace("/", "\\", StringComparison.OrdinalIgnoreCase).ToLowerInvariant().Replace(_ipcManager.PenumbraModDirectory!.ToLowerInvariant(), "", StringComparison.OrdinalIgnoreCase);
|
||||
var cleanedPath = path.Replace("/", "\\", StringComparison.OrdinalIgnoreCase).ToLowerInvariant()
|
||||
.Replace(_ipcManager.Penumbra.PenumbraModDirectory!.ToLowerInvariant(), "", StringComparison.OrdinalIgnoreCase);
|
||||
var entry = _fileCaches.SelectMany(v => v.Value).FirstOrDefault(f => f.ResolvedFilepath.EndsWith(cleanedPath, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
if (entry == null)
|
||||
|
|
@ -180,7 +181,7 @@ public sealed class FileCacheManager : IHostedService
|
|||
{
|
||||
var cleanedPaths = paths.Distinct(StringComparer.OrdinalIgnoreCase).ToDictionary(p => p,
|
||||
p => p.Replace("/", "\\", StringComparison.OrdinalIgnoreCase)
|
||||
.Replace(_ipcManager.PenumbraModDirectory!, _ipcManager.PenumbraModDirectory!.EndsWith('\\') ? PenumbraPrefix + '\\' : PenumbraPrefix, StringComparison.OrdinalIgnoreCase)
|
||||
.Replace(_ipcManager.Penumbra.PenumbraModDirectory!, _ipcManager.Penumbra.PenumbraModDirectory!.EndsWith('\\') ? PenumbraPrefix + '\\' : PenumbraPrefix, StringComparison.OrdinalIgnoreCase)
|
||||
.Replace(_configService.Current.CacheFolder, _configService.Current.CacheFolder.EndsWith('\\') ? CachePrefix + '\\' : CachePrefix, StringComparison.OrdinalIgnoreCase)
|
||||
.Replace("\\\\", "\\", StringComparison.Ordinal),
|
||||
StringComparer.OrdinalIgnoreCase);
|
||||
|
|
@ -352,7 +353,7 @@ public sealed class FileCacheManager : IHostedService
|
|||
{
|
||||
if (fileCache.PrefixedFilePath.StartsWith(PenumbraPrefix, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
fileCache.SetResolvedFilePath(fileCache.PrefixedFilePath.Replace(PenumbraPrefix, _ipcManager.PenumbraModDirectory, StringComparison.Ordinal));
|
||||
fileCache.SetResolvedFilePath(fileCache.PrefixedFilePath.Replace(PenumbraPrefix, _ipcManager.Penumbra.PenumbraModDirectory, StringComparison.Ordinal));
|
||||
}
|
||||
else if (fileCache.PrefixedFilePath.StartsWith(CachePrefix, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue