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