mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Utils async -> sync methods removed
This commit is contained in:
parent
43dc6953c5
commit
5bd856a7c6
@ -76,7 +76,7 @@ namespace Wabbajack.CacheServer
|
||||
return api.GetModFiles(GameRegistry.GetByNexusName((string)arg.GameName).Game, (int)arg.ModID).ToJSON();
|
||||
}
|
||||
|
||||
private string HandleCacheCall(dynamic arg)
|
||||
private async Task<string> HandleCacheCall(dynamic arg)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -90,7 +90,7 @@ namespace Wabbajack.CacheServer
|
||||
var client = new HttpClient();
|
||||
var builder = new UriBuilder(url) {Host = "localhost", Port = Request.Url.Port ?? 8080, Scheme = "http"};
|
||||
client.DefaultRequestHeaders.Add("apikey", Request.Headers["apikey"]);
|
||||
client.GetStringSync(builder.Uri.ToString());
|
||||
await client.GetStringAsync(builder.Uri.ToString());
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
Utils.Log($"Still not cached : {path}");
|
||||
|
@ -613,34 +613,10 @@ namespace Wabbajack.Common
|
||||
new List<bool>().Do(_ => f());
|
||||
}
|
||||
|
||||
public static HttpResponseMessage GetSync(this HttpClient client, string url)
|
||||
public static async Task<Stream> PostStream(this HttpClient client, string url, HttpContent content)
|
||||
{
|
||||
var result = client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);
|
||||
result.Wait();
|
||||
return result.Result;
|
||||
}
|
||||
|
||||
public static string GetStringSync(this HttpClient client, string url)
|
||||
{
|
||||
var result = client.GetStringAsync(url);
|
||||
result.Wait();
|
||||
return result.Result;
|
||||
}
|
||||
|
||||
public static Stream GetStreamSync(this HttpClient client, string url)
|
||||
{
|
||||
var result = client.GetStreamAsync(url);
|
||||
result.Wait();
|
||||
return result.Result;
|
||||
}
|
||||
|
||||
public static Stream PostStreamSync(this HttpClient client, string url, HttpContent content)
|
||||
{
|
||||
var result = client.PostAsync(url, content);
|
||||
result.Wait();
|
||||
var stream = result.Result.Content.ReadAsStreamAsync();
|
||||
stream.Wait();
|
||||
return stream.Result;
|
||||
var result = await client.PostAsync(url, content);
|
||||
return await result.Content.ReadAsStreamAsync();
|
||||
}
|
||||
|
||||
public static IEnumerable<T> DistinctBy<T, V>(this IEnumerable<T> vs, Func<T, V> select)
|
||||
|
@ -43,14 +43,15 @@ namespace Wabbajack.Lib.Downloaders
|
||||
|
||||
public override async Task Download(Archive a, string destination)
|
||||
{
|
||||
await ToHttpState().Download(a, destination);
|
||||
var state = await ToHttpState();
|
||||
await state.Download(a, destination);
|
||||
}
|
||||
|
||||
private HTTPDownloader.State ToHttpState()
|
||||
private async Task<HTTPDownloader.State> ToHttpState()
|
||||
{
|
||||
var initialURL = $"https://drive.google.com/uc?id={Id}&export=download";
|
||||
var client = new HttpClient();
|
||||
var result = client.GetStringSync(initialURL);
|
||||
var result = await client.GetStringAsync(initialURL);
|
||||
var regex = new Regex("(?<=/uc\\?export=download&confirm=).*(?=;id=)");
|
||||
var confirm = regex.Match(result);
|
||||
var url = $"https://drive.google.com/uc?export=download&confirm={confirm}&id={Id}";
|
||||
@ -60,7 +61,8 @@ namespace Wabbajack.Lib.Downloaders
|
||||
|
||||
public override async Task<bool> Verify()
|
||||
{
|
||||
return await ToHttpState().Verify();
|
||||
var state = await ToHttpState();
|
||||
return await state.Verify();
|
||||
}
|
||||
|
||||
public override IDownloader GetDownloader()
|
||||
|
@ -87,7 +87,7 @@ namespace Wabbajack.Lib.Downloaders
|
||||
long totalRead = 0;
|
||||
var bufferSize = 1024 * 32;
|
||||
|
||||
var response = client.GetSync(Url);
|
||||
var response = await client.GetAsync(Url, HttpCompletionOption.ResponseHeadersRead);
|
||||
|
||||
Stream stream;
|
||||
try
|
||||
|
@ -42,14 +42,14 @@ namespace Wabbajack.Lib.Downloaders
|
||||
|
||||
public override async Task Download(Archive a, string destination)
|
||||
{
|
||||
var newURL = GetDownloadUrl();
|
||||
var newURL = await GetDownloadUrl();
|
||||
await new HTTPDownloader.State {Url = newURL}.Download(a, destination);
|
||||
}
|
||||
|
||||
private string GetDownloadUrl()
|
||||
private async Task<string> GetDownloadUrl()
|
||||
{
|
||||
var client = new HttpClient();
|
||||
var result = client.GetStringSync(Url);
|
||||
var result = await client.GetStringAsync(Url);
|
||||
var regex = new Regex("https:\\/\\/www\\.moddb\\.com\\/downloads\\/mirror\\/.*(?=\\\")");
|
||||
var match = regex.Match(result);
|
||||
var newURL = match.Value;
|
||||
@ -58,7 +58,7 @@ namespace Wabbajack.Lib.Downloaders
|
||||
|
||||
public override async Task<bool> Verify()
|
||||
{
|
||||
var newURL = GetDownloadUrl();
|
||||
var newURL = await GetDownloadUrl();
|
||||
return await new HTTPDownloader.State { Url = newURL }.Verify();
|
||||
}
|
||||
|
||||
|
@ -194,9 +194,9 @@ namespace Wabbajack.Lib
|
||||
mods[b] = tmp;
|
||||
}
|
||||
|
||||
await mods.PMap(Queue, mod =>
|
||||
await mods.PMap(Queue, async mod =>
|
||||
{
|
||||
var er = new NexusApiClient().EndorseMod(mod);
|
||||
var er = await new NexusApiClient().EndorseMod(mod);
|
||||
Utils.Log($"Endorsed {mod.GameName} - {mod.ModID} - Result: {er.message}");
|
||||
});
|
||||
Info("Done! You may now exit the application!");
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media.Imaging;
|
||||
using Newtonsoft.Json;
|
||||
using Wabbajack.Common;
|
||||
@ -55,11 +56,11 @@ namespace Wabbajack.Lib.ModListRegistry
|
||||
|
||||
|
||||
|
||||
public static List<ModlistMetadata> LoadFromGithub()
|
||||
public static async Task<List<ModlistMetadata>> LoadFromGithub()
|
||||
{
|
||||
var client = new HttpClient();
|
||||
Utils.Log("Loading ModLists from Github");
|
||||
var result = client.GetStringSync(Consts.ModlistMetadataURL);
|
||||
var result = await client.GetStringAsync(Consts.ModlistMetadataURL);
|
||||
return result.FromJSONString<List<ModlistMetadata>>();
|
||||
}
|
||||
|
||||
|
@ -307,14 +307,14 @@ namespace Wabbajack.Lib.NexusApi
|
||||
return GetCached<ModInfo>(url);
|
||||
}
|
||||
|
||||
public EndorsementResponse EndorseMod(NexusDownloader.State mod)
|
||||
public async Task<EndorsementResponse> EndorseMod(NexusDownloader.State mod)
|
||||
{
|
||||
Utils.Status($"Endorsing ${mod.GameName} - ${mod.ModID}");
|
||||
var url = $"https://api.nexusmods.com/v1/games/{ConvertGameName(mod.GameName)}/mods/{mod.ModID}/endorse.json";
|
||||
|
||||
var content = new FormUrlEncodedContent(new Dictionary<string, string> { { "version", mod.Version } });
|
||||
|
||||
using (var stream = _httpClient.PostStreamSync(url, content))
|
||||
using (var stream = await _httpClient.PostStream(url, content))
|
||||
{
|
||||
return stream.FromJSON<EndorsementResponse>();
|
||||
}
|
||||
|
@ -36,18 +36,18 @@ namespace Wabbajack.Lib.Validation
|
||||
ServerWhitelist = s.FromYaml<ServerWhitelist>();
|
||||
}
|
||||
|
||||
public void LoadListsFromGithub()
|
||||
public async Task LoadListsFromGithub()
|
||||
{
|
||||
var client = new HttpClient();
|
||||
Utils.Log("Loading Nexus Mod Permissions");
|
||||
using (var result = client.GetStreamSync(Consts.ModPermissionsURL))
|
||||
using (var result = await client.GetStreamAsync(Consts.ModPermissionsURL))
|
||||
{
|
||||
AuthorPermissions = result.FromYaml<Dictionary<string, Author>>();
|
||||
Utils.Log($"Loaded permissions for {AuthorPermissions.Count} authors");
|
||||
}
|
||||
|
||||
Utils.Log("Loading Server Whitelist");
|
||||
using (var result = client.GetStreamSync(Consts.ServerWhitelistURL))
|
||||
using (var result = await client.GetStreamAsync(Consts.ServerWhitelistURL))
|
||||
{
|
||||
ServerWhitelist = result.FromYaml<ServerWhitelist>();
|
||||
Utils.Log($"Loaded permissions for {ServerWhitelist.AllowedPrefixes.Count} servers and {ServerWhitelist.GoogleIDs.Count} GDrive files");
|
||||
@ -59,7 +59,7 @@ namespace Wabbajack.Lib.Validation
|
||||
{
|
||||
var validator = new ValidateModlist(queue);
|
||||
|
||||
validator.LoadListsFromGithub();
|
||||
await validator.LoadListsFromGithub();
|
||||
|
||||
Utils.Log("Running validation checks");
|
||||
var errors = await validator.Validate(modlist);
|
||||
|
@ -16,11 +16,11 @@ namespace Wabbajack.Test.ListValidation
|
||||
public class ListValidation
|
||||
{
|
||||
[ClassInitialize]
|
||||
public static void SetupNexus(TestContext context)
|
||||
public static async Task SetupNexus(TestContext context)
|
||||
{
|
||||
Utils.LogMessages.Subscribe(m => context.WriteLine(m.ToString()));
|
||||
var api = new NexusApiClient();
|
||||
api.ClearUpdatedModsInCache();
|
||||
await api.ClearUpdatedModsInCache();
|
||||
}
|
||||
|
||||
private WorkQueue Queue { get; set; }
|
||||
@ -93,9 +93,9 @@ namespace Wabbajack.Test.ListValidation
|
||||
TestContext.WriteLine(msg);
|
||||
}
|
||||
|
||||
public static IEnumerable<object[]> GetModLists()
|
||||
public static async Task<IEnumerable<object[]>> GetModLists()
|
||||
{
|
||||
return ModlistMetadata.LoadFromGithub().Select(l => new object[] {l.Title, l});
|
||||
return (await ModlistMetadata.LoadFromGithub()).Select(l => new object[] {l.Title, l});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,16 +10,16 @@ namespace Wabbajack.Test
|
||||
public class ModlistMetadataTests
|
||||
{
|
||||
[TestMethod]
|
||||
public void TestLoadingModlists()
|
||||
public async Task TestLoadingModlists()
|
||||
{
|
||||
var modlists = ModlistMetadata.LoadFromGithub();
|
||||
var modlists = await ModlistMetadata.LoadFromGithub();
|
||||
Assert.IsTrue(modlists.Count > 0);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public async Task VerifyLogoURLs()
|
||||
{
|
||||
var modlists = ModlistMetadata.LoadFromGithub();
|
||||
var modlists = await ModlistMetadata.LoadFromGithub();
|
||||
|
||||
foreach (var modlist in modlists.Select(m => m.Links))
|
||||
{
|
||||
|
@ -36,9 +36,9 @@ namespace Wabbajack
|
||||
RefreshCommand.StartingExecution()
|
||||
.StartWith(Unit.Default)
|
||||
.ObserveOn(RxApp.TaskpoolScheduler)
|
||||
.Select(_ =>
|
||||
.SelectTask(async _ =>
|
||||
{
|
||||
return ModlistMetadata.LoadFromGithub()
|
||||
return (await ModlistMetadata.LoadFromGithub())
|
||||
.AsObservableChangeSet(x => x.DownloadMetadata?.Hash ?? $"Fallback{missingHashFallbackCounter++}");
|
||||
})
|
||||
.Switch()
|
||||
|
Loading…
Reference in New Issue
Block a user