diff --git a/CHANGELOG.md b/CHANGELOG.md
index a725d436..98acf683 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
### Changelog
-#### Version - 2.3.0.0 - ???
+#### Version - 2.3.0.0 - 9/21/2020
* Rewrote the file extraction routines. New code uses less memory, less disk space, and performs less thrashing on HDDs
* Reworked IPS4 integration to reduce download failures
* Profiles can now contain an (optional) file `compiler_settings.json` that includes options for other games to be used during install.
diff --git a/Wabbajack.CLI/Wabbajack.CLI.csproj b/Wabbajack.CLI/Wabbajack.CLI.csproj
index 58a6df7e..d24876fb 100644
--- a/Wabbajack.CLI/Wabbajack.CLI.csproj
+++ b/Wabbajack.CLI/Wabbajack.CLI.csproj
@@ -6,8 +6,8 @@
wabbajack-cli
Wabbajack
x64
- 2.2.2.0
- 2.2.2.0
+ 2.3.0.0
+ 2.3.0.0
Copyright © 2019-2020
An automated ModList installer
true
diff --git a/Wabbajack.Launcher/Wabbajack.Launcher.csproj b/Wabbajack.Launcher/Wabbajack.Launcher.csproj
index 84dcd31d..42c3eedb 100644
--- a/Wabbajack.Launcher/Wabbajack.Launcher.csproj
+++ b/Wabbajack.Launcher/Wabbajack.Launcher.csproj
@@ -4,8 +4,8 @@
WinExe
netcoreapp3.1
true
- 2.2.2.0
- 2.2.2.0
+ 2.3.0.0
+ 2.3.0.0
Copyright © 2019-2020
Wabbajack Application Launcher
true
diff --git a/Wabbajack.Lib/Downloaders/AbstractIPS4Downloader.cs b/Wabbajack.Lib/Downloaders/AbstractIPS4Downloader.cs
index 9ece4270..4ad33f64 100644
--- a/Wabbajack.Lib/Downloaders/AbstractIPS4Downloader.cs
+++ b/Wabbajack.Lib/Downloaders/AbstractIPS4Downloader.cs
@@ -137,15 +137,16 @@ namespace Wabbajack.Lib.Downloaders
public override async Task Download(Archive a, AbsolutePath destination)
{
- using var stream = await ResolveDownloadStream(a);
- if (stream == null) return false;
+ var (isValid, istream) = await ResolveDownloadStream(a, false);
+ if (!isValid) return false;
+ using var stream = istream!;
await using var fromStream = await stream.Content.ReadAsStreamAsync();
await using var toStream = await destination.Create();
await fromStream.CopyToAsync(toStream);
return true;
}
- private async Task ResolveDownloadStream(Archive a)
+ private async Task<(bool, HttpResponseMessage?)> ResolveDownloadStream(Archive a, bool quickMode)
{
TOP:
string url;
@@ -168,7 +169,7 @@ namespace Wabbajack.Lib.Downloaders
if (csrfKey == null)
{
Utils.Log($"Returning null from IPS4 Downloader because no csrfKey was found");
- return null;
+ return (false, null);
}
var sep = Site.EndsWith("?") ? "&" : "?";
@@ -199,10 +200,10 @@ namespace Wabbajack.Lib.Downloaders
if (a.Size != 0 && headerContentSize != 0 && a.Size != headerContentSize)
{
Utils.Log($"Bad Header Content sizes {a.Size} vs {headerContentSize}");
- return null;
+ return (false, null);
}
- return streamResult;
+ return (true, streamResult);
}
// Sometimes LL hands back a json object telling us to wait until a certain time
@@ -210,6 +211,7 @@ namespace Wabbajack.Lib.Downloaders
var secs = times.Download - times.CurrentTime;
for (int x = 0; x < secs; x++)
{
+ if (quickMode) return (true, default);
Utils.Status($"Waiting for {secs} at the request of {Downloader.SiteName}", Percent.FactoryPutInRange(x, secs));
await Task.Delay(1000);
}
@@ -228,7 +230,8 @@ namespace Wabbajack.Lib.Downloaders
public override async Task Verify(Archive a)
{
- var stream = await ResolveDownloadStream(a);
+ var (isValid, stream) = await ResolveDownloadStream(a, true);
+ if (!isValid) return false;
if (stream == null)
return false;
diff --git a/Wabbajack.Server/Wabbajack.Server.csproj b/Wabbajack.Server/Wabbajack.Server.csproj
index 7030d929..bf7f1b5d 100644
--- a/Wabbajack.Server/Wabbajack.Server.csproj
+++ b/Wabbajack.Server/Wabbajack.Server.csproj
@@ -3,8 +3,8 @@
Exe
netcoreapp3.1
- 2.2.2.0
- 2.2.2.0
+ 2.3.0.0
+ 2.3.0.0
Copyright © 2019-2020
Wabbajack Server
win-x64
diff --git a/Wabbajack/Wabbajack.csproj b/Wabbajack/Wabbajack.csproj
index 9119dc0f..83131eea 100644
--- a/Wabbajack/Wabbajack.csproj
+++ b/Wabbajack/Wabbajack.csproj
@@ -6,8 +6,8 @@
true
x64
win10-x64
- 2.2.2.0
- 2.2.2.0
+ 2.3.0.0
+ 2.3.0.0
Copyright © 2019-2020
An automated ModList installer
true