wabbajack/Wabbajack.App.Wpf/UserIntervention/ManualDownloadHandler.cs
Timothy Baldridge 7be18e8497 3.4.0.0 Release
2023-11-19 14:07:46 -07:00

32 lines
1.1 KiB
C#

using System.Threading;
using System.Threading.Tasks;
using Wabbajack.DTOs.DownloadStates;
using Wabbajack.DTOs.Interventions;
namespace Wabbajack.UserIntervention;
public class ManualDownloadHandler : BrowserWindowViewModel
{
public ManualDownload Intervention { get; set; }
protected override async Task Run(CancellationToken token)
{
//await WaitForReady();
var archive = Intervention.Archive;
var md = Intervention.Archive.State as Manual;
HeaderText = $"Manual download ({md.Url.Host})";
Instructions = string.IsNullOrWhiteSpace(md.Prompt) ? $"Please download {archive.Name}" : md.Prompt;
var task = WaitForDownloadUri(token, async () =>
{
await RunJavaScript("Array.from(document.getElementsByTagName(\"iframe\")).forEach(f => {if (f.title != \"SP Consent Message\" && !f.src.includes(\"challenges.cloudflare.com\")) f.remove()})");
});
await NavigateTo(md.Url);
var uri = await task;
Intervention.Finish(uri);
await Task.Delay(5000, CancellationToken.None);
}
}