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