mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Merge pull request #1244 from wabbajack-tools/small-downloader-fixes
Small downloader fixes
This commit is contained in:
commit
ff386d000e
@ -5,6 +5,8 @@
|
|||||||
* Origin is now supported as a game source
|
* Origin is now supported as a game source
|
||||||
* Basic (mostly untested) support for Dragon Age : Origins
|
* Basic (mostly untested) support for Dragon Age : Origins
|
||||||
* Replace RocksDB with SQLite should result in less process contention when running the UI and the CLI at the same time
|
* Replace RocksDB with SQLite should result in less process contention when running the UI and the CLI at the same time
|
||||||
|
* Fixed Regression with CloudFront IPS4 sites not requesting logins before installation
|
||||||
|
* Fixed regression that caused us to spam the Nexus with verify calls
|
||||||
|
|
||||||
#### Version - 2.3.6.2 - 12/31/2020
|
#### Version - 2.3.6.2 - 12/31/2020
|
||||||
* HOTFIX: Also apply the IPS4 changes to LL Meta lookups
|
* HOTFIX: Also apply the IPS4 changes to LL Meta lookups
|
||||||
|
@ -50,8 +50,9 @@ namespace Compression.BSA.Test
|
|||||||
|
|
||||||
private static async Task<AbsolutePath> DownloadMod(Game game, int mod)
|
private static async Task<AbsolutePath> DownloadMod(Game game, int mod)
|
||||||
{
|
{
|
||||||
using var client = await NexusApiClient.Get();
|
var client = DownloadDispatcher.GetInstance<NexusDownloader>();
|
||||||
var results = await client.GetModFiles(game, mod);
|
await client.Prepare();
|
||||||
|
var results = await client.Client!.GetModFiles(game, mod);
|
||||||
var file = results.files.FirstOrDefault(f => f.is_primary) ??
|
var file = results.files.FirstOrDefault(f => f.is_primary) ??
|
||||||
results.files.OrderByDescending(f => f.uploaded_timestamp).First();
|
results.files.OrderByDescending(f => f.uploaded_timestamp).First();
|
||||||
var src = _stagingFolder.Combine(file.file_name);
|
var src = _stagingFolder.Combine(file.file_name);
|
||||||
|
@ -92,7 +92,7 @@ namespace Wabbajack.Lib.Downloaders
|
|||||||
public async Task<Http.Client> GetAuthedClient()
|
public async Task<Http.Client> GetAuthedClient()
|
||||||
{
|
{
|
||||||
Helpers.Cookie[] cookies;
|
Helpers.Cookie[] cookies;
|
||||||
if (Consts.IsServer)
|
if (Consts.IsServer || IsCloudFlareProtected)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -66,7 +66,7 @@ namespace Wabbajack.Lib.Downloaders
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var client = await NexusApiClient.Get();
|
var client = DownloadDispatcher.GetInstance<NexusDownloader>().Client ?? await NexusApiClient.Get();
|
||||||
ModInfo info;
|
ModInfo info;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -198,8 +198,7 @@ namespace Wabbajack.Lib.Downloaders
|
|||||||
string url;
|
string url;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var client = await NexusApiClient.Get();
|
url = await DownloadDispatcher.GetInstance<NexusDownloader>().Client!.GetNexusDownloadLink(this);
|
||||||
url = await client.GetNexusDownloadLink(this);
|
|
||||||
}
|
}
|
||||||
catch (NexusAPIQuotaExceeded ex)
|
catch (NexusAPIQuotaExceeded ex)
|
||||||
{
|
{
|
||||||
@ -218,7 +217,7 @@ namespace Wabbajack.Lib.Downloaders
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var client = await NexusApiClient.Get();
|
var client = DownloadDispatcher.GetInstance<NexusDownloader>().Client!;
|
||||||
var modInfo = await client.GetModInfo(Game, ModID);
|
var modInfo = await client.GetModInfo(Game, ModID);
|
||||||
if (!modInfo.available) return false;
|
if (!modInfo.available) return false;
|
||||||
var modFiles = await client.GetModFiles(Game, ModID);
|
var modFiles = await client.GetModFiles(Game, ModID);
|
||||||
|
@ -34,9 +34,7 @@ namespace Wabbajack.Lib.NexusApi
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (_userStatus == null)
|
return _userStatus ??= GetUserStatus();
|
||||||
_userStatus = GetUserStatus();
|
|
||||||
return _userStatus;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,6 +237,7 @@ namespace Wabbajack.Test
|
|||||||
fileID=35407";
|
fileID=35407";
|
||||||
|
|
||||||
var state = (AbstractDownloadState)await DownloadDispatcher.ResolveArchive(ini.LoadIniString());
|
var state = (AbstractDownloadState)await DownloadDispatcher.ResolveArchive(ini.LoadIniString());
|
||||||
|
await DownloadDispatcher.PrepareAll(new[] {state});
|
||||||
|
|
||||||
Assert.NotNull(state);
|
Assert.NotNull(state);
|
||||||
|
|
||||||
|
@ -102,6 +102,7 @@ namespace Wabbajack.Test
|
|||||||
if (!src.Exists)
|
if (!src.Exists)
|
||||||
{
|
{
|
||||||
var state = DownloadDispatcher.ResolveArchive(url);
|
var state = DownloadDispatcher.ResolveArchive(url);
|
||||||
|
await DownloadDispatcher.PrepareAll(new[] {state});
|
||||||
await state.Download(new Archive(state: null!) { Name = "Unknown"}, src);
|
await state.Download(new Archive(state: null!) { Name = "Unknown"}, src);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,8 +119,10 @@ namespace Wabbajack.Test
|
|||||||
private async Task<(AbsolutePath Download, AbsolutePath ModFolder)> DownloadAndInstall(Game game, int modId, string modName)
|
private async Task<(AbsolutePath Download, AbsolutePath ModFolder)> DownloadAndInstall(Game game, int modId, string modName)
|
||||||
{
|
{
|
||||||
await utils.AddMod(modName);
|
await utils.AddMod(modName);
|
||||||
var client = await NexusApiClient.Get();
|
var client = DownloadDispatcher.GetInstance<NexusDownloader>();
|
||||||
var resp = await client.GetModFiles(game, modId);
|
await client.Prepare();
|
||||||
|
|
||||||
|
var resp = await client.Client!.GetModFiles(game, modId);
|
||||||
var file = resp.files.FirstOrDefault(f => f.is_primary) ?? resp.files.FirstOrDefault(f => !string.IsNullOrEmpty(f.category_name));
|
var file = resp.files.FirstOrDefault(f => f.is_primary) ?? resp.files.FirstOrDefault(f => !string.IsNullOrEmpty(f.category_name));
|
||||||
|
|
||||||
var src = _downloadFolder.Combine(file.file_name);
|
var src = _downloadFolder.Combine(file.file_name);
|
||||||
|
@ -228,8 +228,10 @@ namespace Wabbajack.VirtualFileSystem.Test
|
|||||||
|
|
||||||
private static async Task<AbsolutePath> DownloadMod(Game game, int mod)
|
private static async Task<AbsolutePath> DownloadMod(Game game, int mod)
|
||||||
{
|
{
|
||||||
using var client = await NexusApiClient.Get();
|
var client = DownloadDispatcher.GetInstance<NexusDownloader>();
|
||||||
var results = await client.GetModFiles(game, mod);
|
await client.Prepare();
|
||||||
|
|
||||||
|
var results = await client.Client!.GetModFiles(game, mod);
|
||||||
var file = results.files.FirstOrDefault(f => f.is_primary) ??
|
var file = results.files.FirstOrDefault(f => f.is_primary) ??
|
||||||
results.files.OrderByDescending(f => f.uploaded_timestamp).First();
|
results.files.OrderByDescending(f => f.uploaded_timestamp).First();
|
||||||
return await DownloadNexusFile(game, mod, file);
|
return await DownloadNexusFile(game, mod, file);
|
||||||
@ -253,8 +255,10 @@ namespace Wabbajack.VirtualFileSystem.Test
|
|||||||
|
|
||||||
public static async Task<AbsolutePath> DownloadMod(Game game, int mod, int fileId)
|
public static async Task<AbsolutePath> DownloadMod(Game game, int mod, int fileId)
|
||||||
{
|
{
|
||||||
using var client = await NexusApiClient.Get();
|
var client = DownloadDispatcher.GetInstance<NexusDownloader>();
|
||||||
var results = await client.GetModFiles(game, mod);
|
await client.Prepare();
|
||||||
|
|
||||||
|
var results = await client.Client!.GetModFiles(game, mod);
|
||||||
var file = results.files.FirstOrDefault(f => f.file_id == fileId);
|
var file = results.files.FirstOrDefault(f => f.file_id == fileId);
|
||||||
return await DownloadNexusFile(game, mod, file);
|
return await DownloadNexusFile(game, mod, file);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user