summary refs log tree commit diff
path: root/BatchBeatmapDownloader/Views/MainWindow.axaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'BatchBeatmapDownloader/Views/MainWindow.axaml.cs')
-rw-r--r--BatchBeatmapDownloader/Views/MainWindow.axaml.cs34
1 files changed, 34 insertions, 0 deletions
diff --git a/BatchBeatmapDownloader/Views/MainWindow.axaml.cs b/BatchBeatmapDownloader/Views/MainWindow.axaml.cs
new file mode 100644
index 0000000..d062f92
--- /dev/null
+++ b/BatchBeatmapDownloader/Views/MainWindow.axaml.cs
@@ -0,0 +1,34 @@
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using ArcaneLibs.Extensions;
+using Avalonia.Controls;
+using Avalonia.Interactivity;
+using BatchBeatmapDownloader.ViewModels;
+using LibBeatmapDownload;
+
+namespace BatchBeatmapDownloader.Views;
+
+public partial class MainWindow : Window {
+	public MainWindow() {
+		InitializeComponent();
+	}
+
+	protected override async void OnLoaded(RoutedEventArgs e) {
+		base.OnLoaded(e);
+		var ctx = DataContext as MainWindowViewModel;
+		Resized += (_, args) => ctx.WindowWidth = (int)args.ClientSize.Width;
+		var lines = File.ReadLinesAsync("/home/root@Rory/Downloads/maps.tsv");
+		await foreach (var line in lines) {
+			var parts = line.Split('\t');
+			var downloadTask = new DownloadTask(int.Parse(parts[0]), parts.Length > 1 ? parts[1] : null);
+			ctx?.DownloadTasks.Tasks.Add(downloadTask);
+			if (ctx!.DownloadTasks.Tasks.Count > 100) break;
+		}
+
+		var tasks = ctx.DownloadTasks.Tasks.Select(x => x.Download()).ToAsyncEnumerable();
+		await foreach (var result in tasks) {
+			Debug.WriteLine($"Downloaded {result}");
+		}
+	}
+}