diff --git a/BlumAutoBot/BumAutoBot/App.config b/BlumAutoBot/BumAutoBot/App.config index 3916e0e..489d582 100644 --- a/BlumAutoBot/BumAutoBot/App.config +++ b/BlumAutoBot/BumAutoBot/App.config @@ -1,6 +1,14 @@ - + + + + + + + + + \ No newline at end of file diff --git a/BlumAutoBot/BumAutoBot/BumBot.csproj b/BlumAutoBot/BumAutoBot/BumBot.csproj index 637b086..7a85224 100644 --- a/BlumAutoBot/BumAutoBot/BumBot.csproj +++ b/BlumAutoBot/BumAutoBot/BumBot.csproj @@ -42,6 +42,9 @@ ..\packages\Costura.Fody.5.7.0\lib\netstandard1.0\Costura.dll + + packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll True @@ -56,6 +59,9 @@ True True + + packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + ..\packages\System.Console.4.3.0\lib\net46\System.Console.dll @@ -112,6 +118,9 @@ True True + + packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + ..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll True @@ -123,6 +132,9 @@ True + + packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll True @@ -133,6 +145,9 @@ True True + + packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + ..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll True @@ -168,11 +183,23 @@ True True + + packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll + + + packages\System.Text.Json.8.0.4\lib\net462\System.Text.Json.dll + ..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll True True + + packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + diff --git a/BlumAutoBot/BumBot.sln b/BlumAutoBot/BumAutoBot/BumBot.sln similarity index 83% rename from BlumAutoBot/BumBot.sln rename to BlumAutoBot/BumAutoBot/BumBot.sln index 2c293c4..5d76a65 100644 --- a/BlumAutoBot/BumBot.sln +++ b/BlumAutoBot/BumAutoBot/BumBot.sln @@ -1,9 +1,9 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.8.34511.84 +VisualStudioVersion = 17.8.34322.80 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BumBot", "BumBot\BumBot.csproj", "{56A3F714-D214-4E82-87A7-F919C426E5AE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BumBot", "BumBot.csproj", "{56A3F714-D214-4E82-87A7-F919C426E5AE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -20,6 +20,6 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {9ABD3E4E-5E68-4B12-A8AF-89C802B217D0} + SolutionGuid = {246E96D2-E395-4888-A93E-0D1AC2767E38} EndGlobalSection EndGlobal diff --git a/BlumAutoBot/BumAutoBot/Helper.cs b/BlumAutoBot/BumAutoBot/Helper.cs index 67ed691..1c658a0 100644 --- a/BlumAutoBot/BumAutoBot/Helper.cs +++ b/BlumAutoBot/BumAutoBot/Helper.cs @@ -1,4 +1,8 @@ using System; +using System.Net.Http; +using System.Threading.Tasks; +using System.Text; +using System.Net; namespace BlumBot { @@ -36,11 +40,16 @@ private int platform() Console.WriteLine("2 - Android"); Console.WriteLine("3 - Windows PC"); Console.WriteLine("4 - MacOS"); + Console.Write("Ваш выбор: "); int choice = Int32.Parse(Console.ReadLine()); if (choice >= 1 && choice <= 4) return choice; else + { + Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Вы ввели не правильное значение!"); + Console.ResetColor(); + } } } @@ -53,11 +62,19 @@ private int version_iphone() Console.WriteLine("2 - IOS 16"); Console.WriteLine("3 - IOS 17"); Console.WriteLine("4 - IOS 18"); + Console.WriteLine("0 - Назад"); + Console.Write("Ваш выбор: "); int choice = Int32.Parse(Console.ReadLine()); + if (choice == 0) + choice_platform(); if (choice >= 1 && choice <= 4) return choice; else + { + Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Вы ввели не правильное значение!"); + Console.ResetColor(); + } } } @@ -70,11 +87,19 @@ private int version_android() Console.WriteLine("2 - Android 13 (Tiramisu)"); Console.WriteLine("3 - Android 14 (Upside Down Cake)"); Console.WriteLine("4 - Android 15 (Vanilla Ice Cream)"); + Console.WriteLine("0 - Назад"); + Console.Write("Ваш выбор: "); int choice = Int32.Parse(Console.ReadLine()); + if (choice == 0) + choice_platform(); if (choice >= 1 && choice <= 4) return choice; else + { + Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Вы ввели не правильное значение!"); + Console.ResetColor(); + } } } @@ -86,11 +111,19 @@ private int version_windows() Console.WriteLine("1 - Windows 7"); Console.WriteLine("2 - Windows 10"); Console.WriteLine("3 - Windows 11"); + Console.WriteLine("0 - Назад"); + Console.Write("Ваш выбор: "); int choice = Int32.Parse(Console.ReadLine()); + if (choice == 0) + choice_platform(); if (choice >= 1 && choice <= 3) return choice; else + { + Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Вы ввели не правильное значение!"); + Console.ResetColor(); + } } } @@ -104,11 +137,19 @@ private int version_macos() Console.WriteLine("3 - MacOS 12.7.5 (Monterey)"); Console.WriteLine("4 - MacOS 11.7.10 (Big Sur)"); Console.WriteLine("5 - MacOS 10.15.7 (Catalina)"); + Console.WriteLine("0 - Назад"); + Console.Write("Ваш выбор: "); int choice = Int32.Parse(Console.ReadLine()); + if (choice == 0) + choice_platform(); if (choice >= 1 && choice <= 5) return choice; else + { + Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Вы ввели не правильное значение!"); + Console.ResetColor(); + } } } @@ -121,7 +162,9 @@ public int replay() if (repetitions < 1 || repetitions > 100) { + Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Недопустимое количество повторений."); + Console.ResetColor(); } else if (repetitions > 5) { @@ -160,7 +203,9 @@ public int scores() } else if (!int.TryParse(pointsInput, out points) || points < 200 || points > 280) { + Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Неверное значение баллов. Пожалуйста, введите число от 200 до 280."); + Console.ResetColor(); continue; } else @@ -181,7 +226,9 @@ public string GetAuthorizationToken() if (string.IsNullOrEmpty(token)) { + Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Токен не может быть пустым. Пожалуйста, введите действительный токен авторизации."); + Console.ResetColor(); continue; } diff --git a/BlumAutoBot/BumAutoBot/Program.cs b/BlumAutoBot/BumAutoBot/Program.cs index c9223ad..7adf12f 100644 --- a/BlumAutoBot/BumAutoBot/Program.cs +++ b/BlumAutoBot/BumAutoBot/Program.cs @@ -18,6 +18,9 @@ static async Task Main(string[] args) try { int choice = help.choice_platform(); + + await requests.GetBalanceAsync(authorizationToken, choice); + int repetitions = help.replay(); int points = help.scores(); @@ -32,12 +35,20 @@ static async Task Main(string[] args) for (int i = 0; i < results.Length; i++) { - Console.WriteLine($"Результат итерации {i + 1}:\n{results[i]}\n"); + if (results[i] == "успех.") + Console.ForegroundColor = ConsoleColor.Green; + else + Console.ForegroundColor = ConsoleColor.Red; + + Console.WriteLine($"Результат итерации {i + 1}: {results[i]}\n"); + Console.ResetColor(); } } catch (Exception ex) { + Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Ошибка: {ex.Message}"); + Console.ResetColor(); } Console.WriteLine("Еще разок? (yes/no): "); diff --git a/BlumAutoBot/BumAutoBot/Properties/AssemblyInfo.cs b/BlumAutoBot/BumAutoBot/Properties/AssemblyInfo.cs index 71774df..a8cce71 100644 --- a/BlumAutoBot/BumAutoBot/Properties/AssemblyInfo.cs +++ b/BlumAutoBot/BumAutoBot/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // Можно задать все значения или принять номера сборки и редакции по умолчанию // используя "*", как показано ниже: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.1.0.0")] -[assembly: AssemblyFileVersion("1.1.0.0")] +[assembly: AssemblyVersion("1.2.0.0")] +[assembly: AssemblyFileVersion("1.2.0.0")] diff --git a/BlumAutoBot/BumAutoBot/Requests.cs b/BlumAutoBot/BumAutoBot/Requests.cs index ec55e41..64bb569 100644 --- a/BlumAutoBot/BumAutoBot/Requests.cs +++ b/BlumAutoBot/BumAutoBot/Requests.cs @@ -4,6 +4,9 @@ using System.Threading.Tasks; using System; using System.Collections.Generic; +using System.Threading; +using System.Text.Json; +using System.Globalization; namespace BlumBot { @@ -151,6 +154,7 @@ public async Task MakeRequestsAsync(string authorizationToken, int point if (!response.IsSuccessStatusCode) { + Console.ForegroundColor = ConsoleColor.Red; if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { Console.WriteLine("Срок действия токенов истек. Пожалуйста, введите действительный токен авторизации."); @@ -160,18 +164,35 @@ public async Task MakeRequestsAsync(string authorizationToken, int point string errorMessage = await response.Content.ReadAsStringAsync(); Console.WriteLine($"Ошибка: {errorMessage}"); } - return $"Итерация {iteration} не удалась."; + Console.ResetColor(); + return $"провал."; + } string responseContent = await response.Content.ReadAsStringAsync(); - Console.WriteLine($"Ответ от /game/play (итерация {iteration}):"); - Console.WriteLine(responseContent); + Console.ForegroundColor = ConsoleColor.Green; + Console.WriteLine($"Ответ от /game/play (итерация {iteration}): " + responseContent); + Console.ResetColor(); var json = JObject.Parse(responseContent); string gameId = json["gameId"].ToString(); - Console.WriteLine($"Итерация {iteration}: Ждите 32 секунды..."); - await Task.Delay(32000); + Console.WriteLine($"Итерация {iteration}: "); + + int totalDuration = 32000, progressBarLength = 50; + int updateInterval = totalDuration / progressBarLength; + + Console.CursorVisible = false; + for (int i = 0; i <= progressBarLength; i++) + { + Console.Write("\r["); + Console.Write(new string('#', i)); + Console.Write(new string(' ', progressBarLength - i)); + Console.Write($"] {i * 2}%"); + Thread.Sleep(updateInterval); + } + Console.CursorVisible = true; + Console.WriteLine(); client.DefaultRequestHeaders.Clear(); client = choiceplatform(authorizationToken, choice); @@ -190,14 +211,70 @@ public async Task MakeRequestsAsync(string authorizationToken, int point if (!response.IsSuccessStatusCode) { string errorMessage = await response.Content.ReadAsStringAsync(); + Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Ошибка от /game/claim (Итерация {iteration}): {errorMessage}"); - return $"Итерация {iteration} не удалась."; + Console.ResetColor(); + return $"провал."; } - Console.WriteLine($"Ответ от /game/claim (Итерация {iteration}):"); - Console.WriteLine(responseContent); + Console.ForegroundColor = ConsoleColor.Green; + Console.WriteLine($"Ответ от /game/claim (Итерация {iteration}): " + responseContent); + Console.ResetColor(); + + return $"успех."; + } + + public async Task GetBalanceAsync(string authorizationToken, int choice) + { + Uri uri = new Uri("https://game-domain.blum.codes/api/v1/user/balance"); + HttpClient client = choiceplatform(authorizationToken, choice); + HttpResponseMessage response = await client.GetAsync(uri); + + if (!response.IsSuccessStatusCode) + { + Console.WriteLine("Не удалось восстановить баланс."); + return; + } + + string responseContent = await response.Content.ReadAsStringAsync(); + + JObject json; + try + { + json = JObject.Parse(responseContent); + } + catch (Exception ex) + { + Console.WriteLine("Не удалось разобрать JSON: " + ex.Message); + return; + } + + if (json["availableBalance"] == null || json["playPasses"] == null) + { + Console.WriteLine("JSON не содержит ожидаемых свойств."); + return; + } + + double availableBalance; + int playPasses; + + try + { + availableBalance = double.Parse(json["availableBalance"].ToString(), CultureInfo.InvariantCulture); + playPasses = json["playPasses"].Value(); + } + catch (Exception ex) + { + Console.WriteLine("Не удалось преобразовать свойства JSON в правильные типы: " + ex.Message); + return; + } - return $"Итерация {iteration} завершена успешно."; + Console.ForegroundColor = ConsoleColor.DarkBlue; + Console.WriteLine($"┌────────────────────────────┐"); + Console.WriteLine($"| Blum Points: {availableBalance,-10:F2} |"); + Console.WriteLine($"| Tickets: {playPasses,-14} |"); + Console.WriteLine($"└────────────────────────────┘"); + Console.ResetColor(); } } } \ No newline at end of file diff --git a/BlumAutoBot/BumAutoBot/packages.config b/BlumAutoBot/BumAutoBot/packages.config index 153ebde..b207105 100644 --- a/BlumAutoBot/BumAutoBot/packages.config +++ b/BlumAutoBot/BumAutoBot/packages.config @@ -2,11 +2,13 @@ + + @@ -23,15 +25,18 @@ + + + @@ -43,10 +48,14 @@ + + + + \ No newline at end of file