mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Can get a users modlist
This commit is contained in:
parent
81c93c6e18
commit
c9b96abd8c
@ -7,6 +7,7 @@ using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Wabbajack.Common;
|
||||
using Wabbajack.Lib.ModListRegistry;
|
||||
|
||||
namespace Wabbajack.Lib.AuthorApi
|
||||
{
|
||||
@ -76,6 +77,34 @@ namespace Wabbajack.Lib.AuthorApi
|
||||
return definition;
|
||||
}
|
||||
|
||||
public async Task UpdateModListInformation(string machineUrl, DownloadMetadata metadata)
|
||||
{
|
||||
await CircuitBreaker.WithAutoRetryAllAsync(async () =>
|
||||
{
|
||||
Utils.Log($"Updating modlist information for {machineUrl} - {metadata.Version}");
|
||||
using var result = await _client.PostAsync($"{Consts.WabbajackBuildServerUri}author_controls/{machineUrl}/download_metadata",
|
||||
new StringContent(metadata.ToJson()));
|
||||
});
|
||||
}
|
||||
|
||||
public async Task<IReadOnlyList<(string MachineURL, Version Version)>> GetMyModlists()
|
||||
{
|
||||
var myLists = await _client.GetJsonAsync<string[]>($"{Consts.WabbajackBuildServerUri}author_controls/lists");
|
||||
List<(string MachineURL, Version Version)> lists = new();
|
||||
var client = await GitHub.Client.Get();
|
||||
foreach (var file in Enum.GetValues<GitHub.Client.List>())
|
||||
{
|
||||
foreach (var lst in (await client.GetData(file)).Lists)
|
||||
{
|
||||
if (myLists.Contains(lst.Links.MachineURL))
|
||||
{
|
||||
lists.Add((lst.Links.MachineURL, lst.Version ?? new Version()));
|
||||
}
|
||||
}
|
||||
}
|
||||
return lists;
|
||||
}
|
||||
|
||||
public async Task<Uri> UploadFile(WorkQueue queue, AbsolutePath path, Action<string, Percent> progressFn)
|
||||
{
|
||||
var definition = await GenerateFileDefinition(queue, path, progressFn);
|
||||
|
@ -19,6 +19,9 @@ namespace Wabbajack.Lib.GitHub
|
||||
}
|
||||
public static async Task<Client> Get()
|
||||
{
|
||||
if (!Utils.HaveEncryptedJson("github-key"))
|
||||
return new Client(new GitHubClient(ProductHeaderValue.Parse("wabbajack")));
|
||||
|
||||
var key = Encoding.UTF8.GetString(await Utils.FromEncryptedData("github-key"));
|
||||
var creds = new Credentials(key);
|
||||
return new Client(new GitHubClient(ProductHeaderValue.Parse("wabbajack_build_server")){Credentials = creds});
|
||||
|
Loading…
Reference in New Issue
Block a user