add penumbra ipc for pathchanges, change all tolower to tolowerinvariant
This commit is contained in:
@@ -64,7 +64,7 @@ namespace MareSynchronos.Managers
|
|||||||
var sha1Hash = Crypto.GetFileHash(fileInfo.FullName);
|
var sha1Hash = Crypto.GetFileHash(fileInfo.FullName);
|
||||||
return new FileCache()
|
return new FileCache()
|
||||||
{
|
{
|
||||||
Filepath = fileInfo.FullName.ToLower(),
|
Filepath = fileInfo.FullName.ToLowerInvariant(),
|
||||||
Hash = sha1Hash,
|
Hash = sha1Hash,
|
||||||
LastModifiedDate = fileInfo.LastWriteTimeUtc.Ticks.ToString(),
|
LastModifiedDate = fileInfo.LastWriteTimeUtc.Ticks.ToString(),
|
||||||
};
|
};
|
||||||
@@ -203,7 +203,7 @@ namespace MareSynchronos.Managers
|
|||||||
{
|
{
|
||||||
PluginLog.Verbose("Removed: " + item);
|
PluginLog.Verbose("Removed: " + item);
|
||||||
|
|
||||||
db.RemoveRange(db.FileCaches.Where(f => f.Filepath.ToLower() == item.ToLower()));
|
db.RemoveRange(db.FileCaches.Where(f => f.Filepath.ToLowerInvariant() == item.ToLowerInvariant()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -211,7 +211,7 @@ namespace MareSynchronos.Managers
|
|||||||
var fileCache = Create(item, _rescanTaskCancellationTokenSource.Token);
|
var fileCache = Create(item, _rescanTaskCancellationTokenSource.Token);
|
||||||
if (fileCache != null)
|
if (fileCache != null)
|
||||||
{
|
{
|
||||||
db.RemoveRange(db.FileCaches.Where(f => f.Filepath.ToLower() == fileCache.Filepath.ToLower()));
|
db.RemoveRange(db.FileCaches.Where(f => f.Filepath.ToLowerInvariant() == fileCache.Filepath.ToLowerInvariant()));
|
||||||
await db.AddAsync(fileCache, _rescanTaskCancellationTokenSource.Token);
|
await db.AddAsync(fileCache, _rescanTaskCancellationTokenSource.Token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -316,7 +316,7 @@ namespace MareSynchronos.Managers
|
|||||||
foreach (var deletion in fileCachesToDelete)
|
foreach (var deletion in fileCachesToDelete)
|
||||||
{
|
{
|
||||||
var entries = db.FileCaches.Where(f =>
|
var entries = db.FileCaches.Where(f =>
|
||||||
f.Hash == deletion.Hash && f.Filepath.ToLower() == deletion.Filepath.ToLower());
|
f.Hash == deletion.Hash && f.Filepath.ToLowerInvariant() == deletion.Filepath.ToLowerInvariant());
|
||||||
if (await entries.AnyAsync(ct))
|
if (await entries.AnyAsync(ct))
|
||||||
{
|
{
|
||||||
Logger.Verbose("Removing file from DB: " + deletion.Filepath);
|
Logger.Verbose("Removing file from DB: " + deletion.Filepath);
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ namespace MareSynchronos.Managers
|
|||||||
private readonly ICallGateSubscriber<string, string[]>? _reverseResolvePlayer;
|
private readonly ICallGateSubscriber<string, string[]>? _reverseResolvePlayer;
|
||||||
private readonly ICallGateSubscriber<string, string, Dictionary<string, string>, string, int, int>
|
private readonly ICallGateSubscriber<string, string, Dictionary<string, string>, string, int, int>
|
||||||
_penumbraSetTemporaryMod;
|
_penumbraSetTemporaryMod;
|
||||||
|
private readonly ICallGateSubscriber<string, string, string> _penumbraPlayerPathResolved;
|
||||||
private readonly DalamudUtil _dalamudUtil;
|
private readonly DalamudUtil _dalamudUtil;
|
||||||
|
|
||||||
public IpcManager(DalamudPluginInterface pi, DalamudUtil dalamudUtil)
|
public IpcManager(DalamudPluginInterface pi, DalamudUtil dalamudUtil)
|
||||||
@@ -55,7 +56,9 @@ namespace MareSynchronos.Managers
|
|||||||
_glamourerApplyOnlyCustomization = pi.GetIpcSubscriber<string, GameObject?, object>("Glamourer.ApplyOnlyCustomizationToCharacter");
|
_glamourerApplyOnlyCustomization = pi.GetIpcSubscriber<string, GameObject?, object>("Glamourer.ApplyOnlyCustomizationToCharacter");
|
||||||
_glamourerApplyOnlyEquipment = pi.GetIpcSubscriber<string, GameObject?, object>("Glamourer.ApplyOnlyEquipmentToCharacter");
|
_glamourerApplyOnlyEquipment = pi.GetIpcSubscriber<string, GameObject?, object>("Glamourer.ApplyOnlyEquipmentToCharacter");
|
||||||
_glamourerRevertCustomization = pi.GetIpcSubscriber<GameObject?, object>("Glamourer.RevertCharacter");
|
_glamourerRevertCustomization = pi.GetIpcSubscriber<GameObject?, object>("Glamourer.RevertCharacter");
|
||||||
|
_penumbraPlayerPathResolved = pi.GetIpcSubscriber<string, string, string>("Penumbra.PlayerFileResourceResolved");
|
||||||
|
|
||||||
|
_penumbraPlayerPathResolved.Subscribe(PlayerPathResolved);
|
||||||
_penumbraObjectIsRedrawn.Subscribe(RedrawEvent);
|
_penumbraObjectIsRedrawn.Subscribe(RedrawEvent);
|
||||||
_penumbraInit.Subscribe(PenumbraInit);
|
_penumbraInit.Subscribe(PenumbraInit);
|
||||||
_penumbraDispose.Subscribe(PenumbraDispose);
|
_penumbraDispose.Subscribe(PenumbraDispose);
|
||||||
@@ -78,6 +81,11 @@ namespace MareSynchronos.Managers
|
|||||||
this._dalamudUtil = dalamudUtil;
|
this._dalamudUtil = dalamudUtil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void PlayerPathResolved(string arg1, string arg2)
|
||||||
|
{
|
||||||
|
Logger.Debug($"Resolved {arg1} => {arg2}");
|
||||||
|
}
|
||||||
|
|
||||||
public event VoidDelegate? PenumbraInitialized;
|
public event VoidDelegate? PenumbraInitialized;
|
||||||
public event VoidDelegate? PenumbraDisposed;
|
public event VoidDelegate? PenumbraDisposed;
|
||||||
public event PenumbraRedrawEvent? PenumbraRedrawEvent;
|
public event PenumbraRedrawEvent? PenumbraRedrawEvent;
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace MareSynchronos.Models
|
|||||||
|
|
||||||
public void SetResolvedPath(string path)
|
public void SetResolvedPath(string path)
|
||||||
{
|
{
|
||||||
ResolvedPath = path.ToLower().Replace('/', '\\').Replace(_penumbraDirectory, "").Replace('\\', '/');
|
ResolvedPath = path.ToLowerInvariant().Replace('/', '\\').Replace(_penumbraDirectory, "").Replace('\\', '/');
|
||||||
if (!HasFileReplacement) return;
|
if (!HasFileReplacement) return;
|
||||||
|
|
||||||
_ = Task.Run(() =>
|
_ = Task.Run(() =>
|
||||||
@@ -40,7 +40,7 @@ namespace MareSynchronos.Models
|
|||||||
FileCache? fileCache;
|
FileCache? fileCache;
|
||||||
using (FileCacheContext db = new())
|
using (FileCacheContext db = new())
|
||||||
{
|
{
|
||||||
fileCache = db.FileCaches.FirstOrDefault(f => f.Filepath == path.ToLower());
|
fileCache = db.FileCaches.FirstOrDefault(f => f.Filepath == path.ToLowerInvariant());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fileCache != null)
|
if (fileCache != null)
|
||||||
@@ -54,7 +54,7 @@ namespace MareSynchronos.Models
|
|||||||
{
|
{
|
||||||
Hash = ComputeHash(fi);
|
Hash = ComputeHash(fi);
|
||||||
using var db = new FileCacheContext();
|
using var db = new FileCacheContext();
|
||||||
var newTempCache = db.FileCaches.Single(f => f.Filepath == path.ToLower());
|
var newTempCache = db.FileCaches.Single(f => f.Filepath == path.ToLowerInvariant());
|
||||||
newTempCache.Hash = Hash;
|
newTempCache.Hash = Hash;
|
||||||
db.Update(newTempCache);
|
db.Update(newTempCache);
|
||||||
db.SaveChanges();
|
db.SaveChanges();
|
||||||
@@ -88,7 +88,7 @@ namespace MareSynchronos.Models
|
|||||||
string hash = Crypto.GetFileHash(fi.FullName);
|
string hash = Crypto.GetFileHash(fi.FullName);
|
||||||
|
|
||||||
using FileCacheContext db = new();
|
using FileCacheContext db = new();
|
||||||
var fileAddedDuringCompute = db.FileCaches.FirstOrDefault(f => f.Filepath == fi.FullName.ToLower());
|
var fileAddedDuringCompute = db.FileCaches.FirstOrDefault(f => f.Filepath == fi.FullName.ToLowerInvariant());
|
||||||
if (fileAddedDuringCompute != null) return fileAddedDuringCompute.Hash;
|
if (fileAddedDuringCompute != null) return fileAddedDuringCompute.Hash;
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -96,7 +96,7 @@ namespace MareSynchronos.Models
|
|||||||
db.Add(new FileCache()
|
db.Add(new FileCache()
|
||||||
{
|
{
|
||||||
Hash = hash,
|
Hash = hash,
|
||||||
Filepath = fi.FullName.ToLower(),
|
Filepath = fi.FullName.ToLowerInvariant(),
|
||||||
LastModifiedDate = fi.LastWriteTimeUtc.Ticks.ToString()
|
LastModifiedDate = fi.LastWriteTimeUtc.Ticks.ToString()
|
||||||
});
|
});
|
||||||
db.SaveChanges();
|
db.SaveChanges();
|
||||||
|
|||||||
@@ -273,8 +273,8 @@ namespace MareSynchronos.UI
|
|||||||
{
|
{
|
||||||
if (_characterOrCommentFilter.IsNullOrEmpty()) return true;
|
if (_characterOrCommentFilter.IsNullOrEmpty()) return true;
|
||||||
_configuration.GetCurrentServerUidComments().TryGetValue(p.OtherUID, out var comment);
|
_configuration.GetCurrentServerUidComments().TryGetValue(p.OtherUID, out var comment);
|
||||||
return p.OtherUID.ToLower().Contains(_characterOrCommentFilter.ToLower()) ||
|
return p.OtherUID.ToLowerInvariant().Contains(_characterOrCommentFilter.ToLowerInvariant()) ||
|
||||||
(comment?.ToLower().Contains(_characterOrCommentFilter.ToLower()) ?? false);
|
(comment?.ToLowerInvariant().Contains(_characterOrCommentFilter.ToLowerInvariant()) ?? false);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (_configuration.ReverseUserSort) users = users.Reverse();
|
if (_configuration.ReverseUserSort) users = users.Reverse();
|
||||||
|
|||||||
@@ -424,7 +424,7 @@ namespace MareSynchronos.UI
|
|||||||
{
|
{
|
||||||
if (!success) return;
|
if (!success) return;
|
||||||
|
|
||||||
_isPenumbraDirectory = path.ToLower() == _ipcManager.PenumbraModDirectory()?.ToLower();
|
_isPenumbraDirectory = path.ToLowerInvariant() == _ipcManager.PenumbraModDirectory()?.ToLowerInvariant();
|
||||||
_isDirectoryWritable = IsDirectoryWritable(path);
|
_isDirectoryWritable = IsDirectoryWritable(path);
|
||||||
_cacheDirectoryHasOtherFilesThanCache = Directory.GetFiles(path, "*", SearchOption.AllDirectories).Any(f => new FileInfo(f).Name.Length != 40);
|
_cacheDirectoryHasOtherFilesThanCache = Directory.GetFiles(path, "*", SearchOption.AllDirectories).Any(f => new FileInfo(f).Name.Length != 40);
|
||||||
_cacheDirectoryIsValidPath = Regex.IsMatch(path, @"^(?:[a-zA-Z]:\\[\w\s\-\\]+?|\/(?:[\w\s\-\/])+?)$", RegexOptions.ECMAScript);
|
_cacheDirectoryIsValidPath = Regex.IsMatch(path, @"^(?:[a-zA-Z]:\\[\w\s\-\\]+?|\/(?:[\w\s\-\/])+?)$", RegexOptions.ECMAScript);
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ namespace MareSynchronos.WebAPI
|
|||||||
{
|
{
|
||||||
CurrentUploads.Add(new UploadFileTransfer(file)
|
CurrentUploads.Add(new UploadFileTransfer(file)
|
||||||
{
|
{
|
||||||
Total = new FileInfo(db.FileCaches.FirstOrDefault(f => f.Hash.ToLower() == file.Hash.ToLower())
|
Total = new FileInfo(db.FileCaches.FirstOrDefault(f => f.Hash.ToLowerInvariant() == file.Hash.ToLowerInvariant())
|
||||||
?.Filepath ?? string.Empty).Length
|
?.Filepath ?? string.Empty).Length
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user