do not use sendfiles when not necessary
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Authors></Authors>
|
<Authors></Authors>
|
||||||
<Company></Company>
|
<Company></Company>
|
||||||
<Version>0.3.2</Version>
|
<Version>0.3.3</Version>
|
||||||
<Description></Description>
|
<Description></Description>
|
||||||
<Copyright></Copyright>
|
<Copyright></Copyright>
|
||||||
<PackageProjectUrl>https://github.com/Penumbra-Sync/client</PackageProjectUrl>
|
<PackageProjectUrl>https://github.com/Penumbra-Sync/client</PackageProjectUrl>
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ namespace MareSynchronos.WebAPI
|
|||||||
{
|
{
|
||||||
public partial class ApiController
|
public partial class ApiController
|
||||||
{
|
{
|
||||||
|
private readonly HashSet<string> _verifiedUploadedHashes;
|
||||||
|
|
||||||
private int _downloadId = 0;
|
private int _downloadId = 0;
|
||||||
public void CancelUpload()
|
public void CancelUpload()
|
||||||
{
|
{
|
||||||
@@ -149,7 +151,19 @@ namespace MareSynchronos.WebAPI
|
|||||||
var uploadToken = _uploadCancellationTokenSource.Token;
|
var uploadToken = _uploadCancellationTokenSource.Token;
|
||||||
Logger.Verbose("New Token Created");
|
Logger.Verbose("New Token Created");
|
||||||
|
|
||||||
var filesToUpload = await _mareHub!.InvokeAsync<List<UploadFileDto>>(Api.InvokeFileSendFiles, character.FileReplacements.SelectMany(c => c.Value.Select(v => v.Hash)).Distinct(), uploadToken);
|
List<string> unverifiedUploadHashes = new();
|
||||||
|
foreach (var item in character.FileReplacements.SelectMany(c => c.Value.Select(v => v.Hash).Distinct()).Distinct().ToList())
|
||||||
|
{
|
||||||
|
if (!_verifiedUploadedHashes.Contains(item))
|
||||||
|
{
|
||||||
|
unverifiedUploadHashes.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (unverifiedUploadHashes.Any())
|
||||||
|
{
|
||||||
|
Logger.Debug("Verifying " + unverifiedUploadHashes.Count + " files");
|
||||||
|
var filesToUpload = await _mareHub!.InvokeAsync<List<UploadFileDto>>(Api.InvokeFileSendFiles, unverifiedUploadHashes, uploadToken);
|
||||||
|
|
||||||
foreach (var file in filesToUpload.Where(f => !f.IsForbidden))
|
foreach (var file in filesToUpload.Where(f => !f.IsForbidden))
|
||||||
{
|
{
|
||||||
@@ -213,7 +227,17 @@ namespace MareSynchronos.WebAPI
|
|||||||
Logger.Debug("Waiting for uploads to finish");
|
Logger.Debug("Waiting for uploads to finish");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (var item in unverifiedUploadHashes)
|
||||||
|
{
|
||||||
|
_verifiedUploadedHashes.Add(item);
|
||||||
|
}
|
||||||
|
|
||||||
CurrentUploads.Clear();
|
CurrentUploads.Clear();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Debug("All files already verified");
|
||||||
|
}
|
||||||
|
|
||||||
if (!uploadToken.IsCancellationRequested)
|
if (!uploadToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ namespace MareSynchronos.WebAPI
|
|||||||
_dalamudUtil.LogIn += DalamudUtilOnLogIn;
|
_dalamudUtil.LogIn += DalamudUtilOnLogIn;
|
||||||
_dalamudUtil.LogOut += DalamudUtilOnLogOut;
|
_dalamudUtil.LogOut += DalamudUtilOnLogOut;
|
||||||
ServerState = ServerState.Offline;
|
ServerState = ServerState.Offline;
|
||||||
|
_verifiedUploadedHashes = new();
|
||||||
|
|
||||||
if (_dalamudUtil.IsLoggedIn)
|
if (_dalamudUtil.IsLoggedIn)
|
||||||
{
|
{
|
||||||
@@ -141,6 +142,7 @@ namespace MareSynchronos.WebAPI
|
|||||||
_connectionCancellationTokenSource.Cancel();
|
_connectionCancellationTokenSource.Cancel();
|
||||||
_connectionCancellationTokenSource = new CancellationTokenSource();
|
_connectionCancellationTokenSource = new CancellationTokenSource();
|
||||||
var token = _connectionCancellationTokenSource.Token;
|
var token = _connectionCancellationTokenSource.Token;
|
||||||
|
_verifiedUploadedHashes.Clear();
|
||||||
while (ServerState is not ServerState.Connected && !token.IsCancellationRequested)
|
while (ServerState is not ServerState.Connected && !token.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(SecretKey))
|
if (string.IsNullOrEmpty(SecretKey))
|
||||||
|
|||||||
Reference in New Issue
Block a user