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);
|
||||
return new FileCache()
|
||||
{
|
||||
Filepath = fileInfo.FullName.ToLower(),
|
||||
Filepath = fileInfo.FullName.ToLowerInvariant(),
|
||||
Hash = sha1Hash,
|
||||
LastModifiedDate = fileInfo.LastWriteTimeUtc.Ticks.ToString(),
|
||||
};
|
||||
@@ -203,7 +203,7 @@ namespace MareSynchronos.Managers
|
||||
{
|
||||
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
|
||||
{
|
||||
@@ -211,7 +211,7 @@ namespace MareSynchronos.Managers
|
||||
var fileCache = Create(item, _rescanTaskCancellationTokenSource.Token);
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -316,7 +316,7 @@ namespace MareSynchronos.Managers
|
||||
foreach (var deletion in fileCachesToDelete)
|
||||
{
|
||||
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))
|
||||
{
|
||||
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, Dictionary<string, string>, string, int, int>
|
||||
_penumbraSetTemporaryMod;
|
||||
private readonly ICallGateSubscriber<string, string, string> _penumbraPlayerPathResolved;
|
||||
private readonly DalamudUtil _dalamudUtil;
|
||||
|
||||
public IpcManager(DalamudPluginInterface pi, DalamudUtil dalamudUtil)
|
||||
@@ -55,7 +56,9 @@ namespace MareSynchronos.Managers
|
||||
_glamourerApplyOnlyCustomization = pi.GetIpcSubscriber<string, GameObject?, object>("Glamourer.ApplyOnlyCustomizationToCharacter");
|
||||
_glamourerApplyOnlyEquipment = pi.GetIpcSubscriber<string, GameObject?, object>("Glamourer.ApplyOnlyEquipmentToCharacter");
|
||||
_glamourerRevertCustomization = pi.GetIpcSubscriber<GameObject?, object>("Glamourer.RevertCharacter");
|
||||
_penumbraPlayerPathResolved = pi.GetIpcSubscriber<string, string, string>("Penumbra.PlayerFileResourceResolved");
|
||||
|
||||
_penumbraPlayerPathResolved.Subscribe(PlayerPathResolved);
|
||||
_penumbraObjectIsRedrawn.Subscribe(RedrawEvent);
|
||||
_penumbraInit.Subscribe(PenumbraInit);
|
||||
_penumbraDispose.Subscribe(PenumbraDispose);
|
||||
@@ -78,6 +81,11 @@ namespace MareSynchronos.Managers
|
||||
this._dalamudUtil = dalamudUtil;
|
||||
}
|
||||
|
||||
private void PlayerPathResolved(string arg1, string arg2)
|
||||
{
|
||||
Logger.Debug($"Resolved {arg1} => {arg2}");
|
||||
}
|
||||
|
||||
public event VoidDelegate? PenumbraInitialized;
|
||||
public event VoidDelegate? PenumbraDisposed;
|
||||
public event PenumbraRedrawEvent? PenumbraRedrawEvent;
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace MareSynchronos.Models
|
||||
|
||||
public void SetResolvedPath(string path)
|
||||
{
|
||||
ResolvedPath = path.ToLower().Replace('/', '\\').Replace(_penumbraDirectory, "").Replace('\\', '/');
|
||||
ResolvedPath = path.ToLowerInvariant().Replace('/', '\\').Replace(_penumbraDirectory, "").Replace('\\', '/');
|
||||
if (!HasFileReplacement) return;
|
||||
|
||||
_ = Task.Run(() =>
|
||||
@@ -40,7 +40,7 @@ namespace MareSynchronos.Models
|
||||
FileCache? fileCache;
|
||||
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)
|
||||
@@ -54,7 +54,7 @@ namespace MareSynchronos.Models
|
||||
{
|
||||
Hash = ComputeHash(fi);
|
||||
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;
|
||||
db.Update(newTempCache);
|
||||
db.SaveChanges();
|
||||
@@ -88,7 +88,7 @@ namespace MareSynchronos.Models
|
||||
string hash = Crypto.GetFileHash(fi.FullName);
|
||||
|
||||
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;
|
||||
|
||||
try
|
||||
@@ -96,7 +96,7 @@ namespace MareSynchronos.Models
|
||||
db.Add(new FileCache()
|
||||
{
|
||||
Hash = hash,
|
||||
Filepath = fi.FullName.ToLower(),
|
||||
Filepath = fi.FullName.ToLowerInvariant(),
|
||||
LastModifiedDate = fi.LastWriteTimeUtc.Ticks.ToString()
|
||||
});
|
||||
db.SaveChanges();
|
||||
|
||||
@@ -273,8 +273,8 @@ namespace MareSynchronos.UI
|
||||
{
|
||||
if (_characterOrCommentFilter.IsNullOrEmpty()) return true;
|
||||
_configuration.GetCurrentServerUidComments().TryGetValue(p.OtherUID, out var comment);
|
||||
return p.OtherUID.ToLower().Contains(_characterOrCommentFilter.ToLower()) ||
|
||||
(comment?.ToLower().Contains(_characterOrCommentFilter.ToLower()) ?? false);
|
||||
return p.OtherUID.ToLowerInvariant().Contains(_characterOrCommentFilter.ToLowerInvariant()) ||
|
||||
(comment?.ToLowerInvariant().Contains(_characterOrCommentFilter.ToLowerInvariant()) ?? false);
|
||||
});
|
||||
|
||||
if (_configuration.ReverseUserSort) users = users.Reverse();
|
||||
|
||||
@@ -424,7 +424,7 @@ namespace MareSynchronos.UI
|
||||
{
|
||||
if (!success) return;
|
||||
|
||||
_isPenumbraDirectory = path.ToLower() == _ipcManager.PenumbraModDirectory()?.ToLower();
|
||||
_isPenumbraDirectory = path.ToLowerInvariant() == _ipcManager.PenumbraModDirectory()?.ToLowerInvariant();
|
||||
_isDirectoryWritable = IsDirectoryWritable(path);
|
||||
_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);
|
||||
|
||||
@@ -172,7 +172,7 @@ namespace MareSynchronos.WebAPI
|
||||
{
|
||||
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
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user