/* dotnet run scrape.cs dotnet run scrape.cs -- --start bogn */ using System.Net.Http.Headers; using System.Text; const string server = "https://fastf.olio.ovh/u/suli"; const string user = "suli"; const string pass = "suliaccess"; var auth = Encoding.ASCII.GetBytes($"{user}:{pass}"); string[] folders = [ "T:/slo/13a_Laravel", "T:/slo/13a_angular", "T:/Nits/13A", "T:/Soós Gábor/13A", "T:/Molnár Tamás/2026-2027/MySql", "T:/csi/13A-A", "T:/csi/13A-B", "T:/bg/13A _A_MAUI", "T:/bg/13A_React", "T:/Bognár Pál/13A C#" ]; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("x-act", "overwrite"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(auth)); var start = args is ["--start" or "-s", var substring] ? substring : null; var hasStarted = false; var count = 0; foreach (var folder in folders) { if (!hasStarted && start != null) { if (folder.Contains(start, StringComparison.OrdinalIgnoreCase)) hasStarted = true; else continue; } Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine(folder); Console.ResetColor(); Console.WriteLine(); foreach (var file in Directory.EnumerateFiles(folder, "*", SearchOption.AllDirectories)) { var path = file.Replace(Path.DirectorySeparatorChar, '/'); Console.WriteLine(path); try { await using var stream = File.OpenRead(file); Console.WriteLine(FileSize(stream.Length)); await client.PutAsync($"{server}/{Uri.EscapeDataString(path)}", new StreamContent(stream)); count++; } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(e); Console.WriteLine(); Console.ResetColor(); } } } Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Done, uploaded {count} file{(count == 1 ? "" : "s")}"); Console.ResetColor(); Console.WriteLine("Press any key to exit"); Console.ReadKey(); return; string FileSize(long s) => s switch { >= 1_000_000_000 => $"{s / 1_000_000_000,3} GB", >= 1_000_000 => $"{s / 1_000_000,3} MB", >= 1000 => $"{s / 1000,3} KB", _ => $"{s,3} B" };