Skip to content

Commit 561bb9c

Browse files
committed
feat: added project files
1 parent dc48b26 commit 561bb9c

File tree

5 files changed

+367
-0
lines changed

5 files changed

+367
-0
lines changed

BlumAutoBot/BlumBot.csproj

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net8.0</TargetFramework>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
</PropertyGroup>
9+
10+
<ItemGroup>
11+
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
12+
</ItemGroup>
13+
14+
</Project>

BlumAutoBot/BlumBot.sln

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.11.34929.205
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlumBot", "BlumBot.csproj", "{80381389-DD56-423C-A92F-B70C67D145CA}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{80381389-DD56-423C-A92F-B70C67D145CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{80381389-DD56-423C-A92F-B70C67D145CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{80381389-DD56-423C-A92F-B70C67D145CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{80381389-DD56-423C-A92F-B70C67D145CA}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
GlobalSection(ExtensibilityGlobals) = postSolution
23+
SolutionGuid = {CCF1DABB-52D3-4386-B2C6-98FD17B3E884}
24+
EndGlobalSection
25+
EndGlobal

BlumAutoBot/Helper.cs

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
namespace BlumBot
2+
{
3+
public class Helper
4+
{
5+
public int platform()
6+
{
7+
Console.WriteLine("Выберите платформу");
8+
Console.WriteLine("1 - iPhone (15.0)");
9+
Console.WriteLine("2 - iPhone (16.4)");
10+
Console.WriteLine("3 - Android (13)");
11+
Console.WriteLine("4 - Windows (10)");
12+
Console.WriteLine("5 - MacOS (13.4)");
13+
int choice = Int32.Parse(Console.ReadLine());
14+
15+
return choice;
16+
}
17+
18+
public int replay()
19+
{
20+
while (true)
21+
{
22+
Console.Write("Введите количество повторений: ");
23+
int repetitions = Int32.Parse(Console.ReadLine());
24+
25+
if (repetitions < 1 || repetitions > 100)
26+
{
27+
Console.WriteLine("Недопустимое количество повторений.");
28+
}
29+
else if (repetitions > 5)
30+
{
31+
Console.WriteLine("Ты уверен? (y/n)");
32+
string choice = Console.ReadLine().ToLower();
33+
if (choice == "yes" || choice == "y")
34+
{
35+
return repetitions;
36+
}
37+
else
38+
{
39+
continue;
40+
}
41+
}
42+
else
43+
{
44+
return repetitions;
45+
}
46+
}
47+
}
48+
49+
public int scores()
50+
{
51+
while (true)
52+
{
53+
Console.Write("Введите баллы (рекомендуется от 200 до 280): ");
54+
string pointsInput = Console.ReadLine();
55+
int points;
56+
57+
if (string.IsNullOrEmpty(pointsInput))
58+
{
59+
Random random = new Random();
60+
points = random.Next(260, 280);
61+
Console.WriteLine($"Никакие баллы не введены. Использование случайных точек: {points}");
62+
return points;
63+
}
64+
else if (!int.TryParse(pointsInput, out points) || points < 200 || points > 280)
65+
{
66+
Console.WriteLine("Неверное значение баллов. Пожалуйста, введите число от 200 до 280.");
67+
continue;
68+
}
69+
else
70+
{
71+
return points;
72+
}
73+
}
74+
}
75+
76+
public string GetAuthorizationToken()
77+
{
78+
Console.WriteLine("\r\n██████╗░██╗░░░░░██╗░░░██╗███╗░░░███╗  ░█████╗░██╗░░░██╗████████╗░█████╗░  ██████╗░░█████╗░████████╗\r\n██╔══██╗██║░░░░░██║░░░██║████╗░████║  ██╔══██╗██║░░░██║╚══██╔══╝██╔══██╗  ██╔══██╗██╔══██╗╚══██╔══╝\r\n██████╦╝██║░░░░░██║░░░██║██╔████╔██║  ███████║██║░░░██║░░░██║░░░██║░░██║  ██████╦╝██║░░██║░░░██║░░░\r\n██╔══██╗██║░░░░░██║░░░██║██║╚██╔╝██║  ██╔══██║██║░░░██║░░░██║░░░██║░░██║  ██╔══██╗██║░░██║░░░██║░░░\r\n██████╦╝███████╗╚██████╔╝██║░╚═╝░██║  ██║░░██║╚██████╔╝░░░██║░░░╚█████╔╝  ██████╦╝╚█████╔╝░░░██║░░░\r\n╚═════╝░╚══════╝░╚═════╝░╚═╝░░░░░╚═╝  ╚═╝░░╚═╝░╚═════╝░░░░╚═╝░░░░╚════╝░  ╚═════╝░░╚════╝░░░░╚═╝░░░" + "\r\n\n");
79+
while (true)
80+
{
81+
Console.Write("Введите токен авторизации: ");
82+
string token = Console.ReadLine().Trim();
83+
84+
if (string.IsNullOrEmpty(token))
85+
{
86+
Console.WriteLine("Токен не может быть пустым. Пожалуйста, введите действительный токен авторизации.");
87+
continue;
88+
}
89+
90+
if (!token.StartsWith("Bearer "))
91+
{
92+
token = "Bearer " + token;
93+
}
94+
95+
return token;
96+
}
97+
}
98+
}
99+
}

BlumAutoBot/Program.cs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
namespace BlumBot
2+
{
3+
class Program
4+
{
5+
static async Task Main(string[] args)
6+
{
7+
Helper help = new Helper();
8+
Requests requests = new Requests();
9+
10+
string authorizationToken = help.GetAuthorizationToken();
11+
12+
while (true)
13+
{
14+
try
15+
{
16+
int choice = help.platform();
17+
int repetitions = help.replay();
18+
int points = help.scores();
19+
20+
List<Task<string>> tasks = new List<Task<string>>();
21+
22+
for (int i = 0; i < repetitions; i++)
23+
{
24+
tasks.Add(requests.MakeRequestsAsync(authorizationToken, points, i + 1, choice));
25+
}
26+
27+
string[] results = await Task.WhenAll(tasks);
28+
29+
for (int i = 0; i < results.Length; i++)
30+
{
31+
Console.WriteLine($"Результат итерации {i + 1}:\n{results[i]}\n");
32+
}
33+
}
34+
catch (Exception ex)
35+
{
36+
Console.WriteLine($"Ошибка: {ex.Message}");
37+
}
38+
39+
Console.WriteLine("Еще разок? (yes/no): ");
40+
string runAgain = Console.ReadLine().ToLower();
41+
if (runAgain != "yes" && runAgain != "y")
42+
{
43+
break;
44+
}
45+
}
46+
}
47+
}
48+
}

BlumAutoBot/Requests.cs

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
using Newtonsoft.Json.Linq;
2+
using System.Text;
3+
4+
namespace BlumBot
5+
{
6+
public class Requests
7+
{
8+
private static HttpClient choiceplatform(string authorizationToken, int choice)
9+
{
10+
HttpClient result = new HttpClient();
11+
12+
switch(choice)
13+
{
14+
case 1:
15+
result = iphone_old(authorizationToken);
16+
break;
17+
case 2:
18+
result = iphone_new(authorizationToken);
19+
break;
20+
case 3:
21+
result = android(authorizationToken);
22+
break;
23+
case 4:
24+
result = windows(authorizationToken);
25+
break;
26+
case 5:
27+
result = macos(authorizationToken);
28+
break;
29+
}
30+
31+
return result;
32+
}
33+
34+
public static HttpClient iphone_old(string authorizationToken)
35+
{
36+
var client = new HttpClient();
37+
38+
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1");
39+
client.DefaultRequestHeaders.Add("Accept", "application/json, text/plain, */*");
40+
client.DefaultRequestHeaders.Add("accept-language", "en-US,en;q=0.9");
41+
client.DefaultRequestHeaders.Add("authorization", authorizationToken);
42+
client.DefaultRequestHeaders.Add("origin", "https://telegram.blum.codes");
43+
client.DefaultRequestHeaders.Add("priority", "u=1, i");
44+
client.DefaultRequestHeaders.Add("sec-fetch-dest", "empty");
45+
client.DefaultRequestHeaders.Add("sec-fetch-mode", "cors");
46+
client.DefaultRequestHeaders.Add("sec-fetch-site", "same-site");
47+
48+
return client;
49+
}
50+
51+
public static HttpClient iphone_new(string authorizationToken)
52+
{
53+
var client = new HttpClient();
54+
55+
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 16_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Mobile/15E148 Safari/604.1");
56+
client.DefaultRequestHeaders.Add("Accept", "application/json, text/plain, */*");
57+
client.DefaultRequestHeaders.Add("accept-language", "en-US,en;q=0.9");
58+
client.DefaultRequestHeaders.Add("authorization", authorizationToken);
59+
client.DefaultRequestHeaders.Add("origin", "https://telegram.blum.codes");
60+
client.DefaultRequestHeaders.Add("priority", "u=1, i");
61+
client.DefaultRequestHeaders.Add("sec-fetch-dest", "empty");
62+
client.DefaultRequestHeaders.Add("sec-fetch-mode", "cors");
63+
client.DefaultRequestHeaders.Add("sec-fetch-site", "same-site");
64+
65+
return client;
66+
}
67+
68+
public static HttpClient android(string authorizationToken)
69+
{
70+
var client = new HttpClient();
71+
72+
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Linux; Android 13; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36");
73+
client.DefaultRequestHeaders.Add("Accept", "application/json, text/plain, */*");
74+
client.DefaultRequestHeaders.Add("accept-language", "en-US,en;q=0.9");
75+
client.DefaultRequestHeaders.Add("authorization", authorizationToken);
76+
client.DefaultRequestHeaders.Add("origin", "https://telegram.blum.codes");
77+
client.DefaultRequestHeaders.Add("priority", "u=1, i");
78+
client.DefaultRequestHeaders.Add("sec-fetch-dest", "empty");
79+
client.DefaultRequestHeaders.Add("sec-fetch-mode", "cors");
80+
client.DefaultRequestHeaders.Add("sec-fetch-site", "same-site");
81+
82+
return client;
83+
}
84+
85+
public static HttpClient windows(string authorizationToken)
86+
{
87+
var client = new HttpClient();
88+
89+
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0");
90+
client.DefaultRequestHeaders.Add("Accept", "application/json, text/plain, */*");
91+
client.DefaultRequestHeaders.Add("accept-language", "en-US,en;q=0.9");
92+
client.DefaultRequestHeaders.Add("authorization", authorizationToken);
93+
client.DefaultRequestHeaders.Add("origin", "https://telegram.blum.codes");
94+
client.DefaultRequestHeaders.Add("priority", "u=1, i");
95+
client.DefaultRequestHeaders.Add("sec-ch-ua", "\"Microsoft Edge\";v=\"126\", \"Chromium\";v=\"126\", \"Not.A/Brand\";v=\"8\", \"Microsoft Edge WebView2\";v=\"126\"");
96+
client.DefaultRequestHeaders.Add("sec-ch-ua-mobile", "?0");
97+
client.DefaultRequestHeaders.Add("sec-ch-ua-platform", "\"Windows\"");
98+
client.DefaultRequestHeaders.Add("sec-fetch-dest", "empty");
99+
client.DefaultRequestHeaders.Add("sec-fetch-mode", "cors");
100+
client.DefaultRequestHeaders.Add("sec-fetch-site", "same-site");
101+
102+
return client;
103+
}
104+
105+
public static HttpClient macos(string authorizationToken)
106+
{
107+
var client = new HttpClient();
108+
109+
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_4) AppleWebKit/537.36 (KHTML, like Gecko) Version/16.0 Safari/537.36");
110+
client.DefaultRequestHeaders.Add("Accept", "application/json, text/plain, */*");
111+
client.DefaultRequestHeaders.Add("accept-language", "en-US,en;q=0.9");
112+
client.DefaultRequestHeaders.Add("authorization", authorizationToken);
113+
client.DefaultRequestHeaders.Add("origin", "https://telegram.blum.codes");
114+
client.DefaultRequestHeaders.Add("priority", "u=1, i");
115+
client.DefaultRequestHeaders.Add("sec-fetch-dest", "empty");
116+
client.DefaultRequestHeaders.Add("sec-fetch-mode", "cors");
117+
client.DefaultRequestHeaders.Add("sec-fetch-site", "same-site");
118+
119+
return client;
120+
}
121+
122+
public async Task<string> MakeRequestsAsync(string authorizationToken, int points, int iteration, int choice)
123+
{
124+
HttpClient client = new HttpClient();
125+
126+
client = choiceplatform(authorizationToken, choice);
127+
128+
HttpResponseMessage response = await client.PostAsync("https://game-domain.blum.codes/api/v1/game/play", null);
129+
130+
if (!response.IsSuccessStatusCode)
131+
{
132+
if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
133+
{
134+
Console.WriteLine("Срок действия токенов истек. Пожалуйста, введите действительный токен авторизации.");
135+
}
136+
else
137+
{
138+
string errorMessage = await response.Content.ReadAsStringAsync();
139+
Console.WriteLine($"Ошибка: {errorMessage}");
140+
}
141+
return $"Итерация {iteration} не удалась.";
142+
}
143+
144+
string responseContent = await response.Content.ReadAsStringAsync();
145+
Console.WriteLine($"Ответ от /game/play (итерация {iteration}):");
146+
Console.WriteLine(responseContent);
147+
148+
var json = JObject.Parse(responseContent);
149+
string gameId = json["gameId"].ToString();
150+
151+
Console.WriteLine($"Итерация {iteration}: Ждите 32 секунды...");
152+
await Task.Delay(32000);
153+
154+
client.DefaultRequestHeaders.Clear();
155+
client = choiceplatform(authorizationToken, choice);
156+
157+
var payload = new
158+
{
159+
gameId = gameId,
160+
points = points
161+
};
162+
163+
StringContent content = new StringContent(JObject.FromObject(payload).ToString(), Encoding.UTF8, "application/json");
164+
165+
response = await client.PostAsync("https://game-domain.blum.codes/api/v1/game/claim", content);
166+
responseContent = await response.Content.ReadAsStringAsync();
167+
168+
if (!response.IsSuccessStatusCode)
169+
{
170+
string errorMessage = await response.Content.ReadAsStringAsync();
171+
Console.WriteLine($"Ошибка от /game/claim (Итерация {iteration}): {errorMessage}");
172+
return $"Итерация {iteration} не удалась.";
173+
}
174+
175+
Console.WriteLine($"Ответ от /game/claim (Итерация {iteration}):");
176+
Console.WriteLine(responseContent);
177+
178+
return $"Итерация {iteration} завершена успешно.";
179+
}
180+
}
181+
}

0 commit comments

Comments
 (0)