├── akun.txt
├── README.md
└── main.py
/akun.txt:
--------------------------------------------------------------------------------
1 | user=
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
Auto Claim UEX ( DWYOR )
2 |
3 |
4 |
5 |
6 |
7 | Tutorial How To Use This Bot
8 |
9 | 1. Register https://t.me/UEEx_Miner_bot/UEB_Miner_Bot?startapp=kBNoWEHfEAAwNHvaTA9
10 | 2. git clone https://github.com/monteksz/uex
11 | 3. cd uex
12 | 4. Masukan TgWebAppData di akun.txt
13 | 5. DONE
14 | 6. Ingat DWYOR.
15 |
16 | - **Here To get Daata**
17 |
18 |
19 | Support ^^
20 | You can support me using trakter or qris
21 |
22 | Trakter Cendol
23 |
24 |
25 |
26 |
27 |
28 | Languages
29 |
30 |
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | import requests
2 | from colorama import Fore, Style, init
3 | import json
4 | import time
5 | import threading
6 |
7 | init(autoreset=True)
8 |
9 | def nama():
10 | art_lines = [
11 | " _____ _ _ _____ _______ _ _ _______ __",
12 | " / ____| /\\ | \\ | |/ ____|__ __| | | | /\\ | __ \\ \\ / /",
13 | " | (___ / \\ | \\| | | | | | | | | / \\ | |__) \\ \\_/ / ",
14 | " \\___ \\ / /\\ \\ | . ` | | | | | | | |/ /\\ \\ | _ / \\ / ",
15 | " ____) / ____ \\| |\\ | |____ | | | |__| / ____ \\| | \\ \\ | | ",
16 | " |_____/_/ \\_\\_| \\_|\\_____| |_| \\____/_/ \\_\\_| \\_\\ |_| ",
17 | " ",
18 | " "
19 | ]
20 |
21 | max_length = max(len(line) for line in art_lines)
22 |
23 | border = '#' * (max_length + 4)
24 |
25 | print(border)
26 | for line in art_lines:
27 | print(f"# {line} #")
28 | print(border)
29 |
30 | print(f"{Fore.GREEN}Terima kasih Telah Menggunakan Bot dari Monteksz X Sanctuary Jangan Lupa Bintangnya ^^{Fore.RESET}")
31 | print(f"{Fore.GREEN}Cek Bot Lainnya di https://github.com/monteksz{Fore.RESET}")
32 | print(f"{Fore.GREEN}=================================================================================================={Fore.RESET}")
33 |
34 | nama()
35 |
36 | def login(init_data, account_number):
37 | payload_login = {
38 | 'init_data': init_data,
39 | 'referrer': ''
40 | }
41 |
42 | url_login = 'https://zejlgz.com/api/login/tg'
43 | response_login = requests.post(url_login, json=payload_login)
44 |
45 | if response_login.status_code == 200:
46 | data_login = response_login.json()
47 | if data_login['code'] == 0 and 'token' in data_login['data'] and 'token' in data_login['data']['token']:
48 | token = data_login['data']['token']['token']
49 | print(Fore.GREEN + f'[Akun Ke-{account_number}] Token Berhasil di Dapatkan: ' + token + Style.RESET_ALL)
50 | return token
51 | else:
52 | print(Fore.RED + f'[Akun Ke-{account_number}] Login Gagal: Token tidak ditemukan.' + Style.RESET_ALL)
53 | else:
54 | print(Fore.RED + f'[Akun Ke-{account_number}] Permintaan Gagal dengan Status Kode: {response_login.status_code}' + Style.RESET_ALL)
55 | return None
56 |
57 | def check_assets(token, account_number):
58 | payload_assets = {
59 | 'token': token
60 | }
61 | headers = {
62 | 'Authorization': f'Bearer {token}',
63 | 'Accept': 'application/json, text/plain, */*',
64 | 'Accept-Encoding': 'gzip, deflate, br, zstd',
65 | 'Accept-Language': 'en-US,en;q=0.9',
66 | 'Cache-Control': 'no-cache',
67 | 'Content-Type': 'application/json',
68 | 'Origin': 'https://ueex-mining-be9.pages.dev',
69 | 'Pragma': 'no-cache',
70 | 'Referer': 'https://ueex-mining-be9.pages.dev/',
71 | 'Sec-Ch-Ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
72 | 'Sec-Ch-Ua-Mobile': '?0',
73 | 'Sec-Ch-Ua-Platform': '"Windows"',
74 | 'Sec-Fetch-Dest': 'empty',
75 | 'Sec-Fetch-Mode': 'cors',
76 | 'Sec-Fetch-Site': 'cross-site',
77 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/126.0.0.0 Safari/537.36'
78 | }
79 | url_assets = 'https://zejlgz.com/api/user/assets'
80 |
81 | response_assets = requests.post(url_assets, json=payload_assets, headers=headers)
82 |
83 | if response_assets.status_code == 200:
84 | data_assets = response_assets.json()
85 | if data_assets['code'] == 0:
86 | ue_amount = data_assets['data'].get('ue', {}).get('amount', 0)
87 | usdt_amount = data_assets['data'].get('usdt', {}).get('amount', 0)
88 | diamond_amount = data_assets['data'].get('diamond', {}).get('amount', 0)
89 |
90 | return ue_amount, usdt_amount, diamond_amount
91 | else:
92 | print(Fore.RED + f'[Akun Ke-{account_number}] Gagal mendapatkan data aset: ' + data_assets.get('message', 'Tidak diketahui') + Style.RESET_ALL)
93 | else:
94 | print(Fore.RED + f'[Akun Ke-{account_number}] Permintaan Gagal dengan Status Kode: {response_assets.status_code}' + Style.RESET_ALL)
95 | return None, None, None
96 |
97 | def check_drops(token, account_number):
98 | payload_scene_info = {
99 | 'token': token
100 | }
101 | headers = {
102 | 'Authorization': f'Bearer {token}',
103 | 'Accept': 'application/json, text/plain, */*',
104 | 'Content-Type': 'application/json'
105 | }
106 | url_scene_info = 'https://zejlgz.com/api/scene/info'
107 |
108 | response_scene_info = requests.post(url_scene_info, json=payload_scene_info, headers=headers)
109 |
110 | if response_scene_info.status_code == 200:
111 | data_scene_info = response_scene_info.json()
112 | if data_scene_info['code'] == 0:
113 | reward_claimed = False
114 | for scene in data_scene_info['data']:
115 | if scene['eggs'] is not None:
116 | for egg in scene['eggs']:
117 | if egg['flag'] == 0:
118 | claim_drop(token, egg, account_number)
119 | reward_claimed = True
120 | if not reward_claimed:
121 | print(Fore.CYAN + f'[Akun Ke-{account_number}] Waiting For Reward...' + Style.RESET_ALL)
122 | else:
123 | print(Fore.RED + f'[Akun Ke-{account_number}] Gagal mendapatkan data scene info: ' + data_scene_info.get('message', 'Tidak diketahui') + Style.RESET_ALL)
124 | else:
125 | print(Fore.RED + f'[Akun Ke-{account_number}] Permintaan Gagal dengan Status Kode: {response_scene_info.status_code}' + Style.RESET_ALL)
126 |
127 | def claim_drop(token, egg, account_number):
128 | payload_egg_reward = {
129 | 'token': token,
130 | 'egg_uid': egg['uid']
131 | }
132 | headers = {
133 | 'Authorization': f'Bearer {token}',
134 | 'Accept': 'application/json, text/plain, */*',
135 | 'Content-Type': 'application/json'
136 | }
137 | url_egg_reward = 'https://zejlgz.com/api/scene/egg/reward'
138 |
139 | response_egg_reward = requests.post(url_egg_reward, json=payload_egg_reward, headers=headers)
140 |
141 | if response_egg_reward.status_code == 200:
142 | data_egg_reward = response_egg_reward.json()
143 | if data_egg_reward['code'] == 0:
144 | if egg['a_type'] == 'ue':
145 | print(Fore.YELLOW + f'[Akun Ke-{account_number}] UE Reward Berhasil Diklaim ({egg["amount"]})', end='')
146 | elif egg['a_type'] == 'usdt':
147 | print(Fore.GREEN + f'[Akun Ke-{account_number}] USDT Reward Berhasil Diklaim ({egg["amount"]})', end='')
148 |
149 | ue_amount, usdt_amount, diamond_amount = check_assets(token, account_number) # Dapatkan saldo terbaru setelah klaim
150 | print(Fore.MAGENTA + f' | Saldo Terbaru' + Style.RESET_ALL +
151 | Fore.YELLOW + f' UE: {ue_amount}' + Style.RESET_ALL + ' | ' +
152 | Fore.GREEN + f'USDT: {usdt_amount}' + Style.RESET_ALL + ' | ' +
153 | Fore.BLUE + f'Diamond: {diamond_amount}' + Style.RESET_ALL)
154 | else:
155 | print(Fore.RED + f'[Akun Ke-{account_number}] Gagal mengklaim egg reward: ' + data_egg_reward.get('message', 'Tidak diketahui') + Style.RESET_ALL)
156 | print("Response data:", data_egg_reward)
157 | else:
158 | print(Fore.RED + f'[Akun Ke-{account_number}] Permintaan Gagal dengan Status Kode: {response_egg_reward.status_code}' + Style.RESET_ALL)
159 | print("Response text:", response_egg_reward.text)
160 |
161 | def process_account(init_data, account_number):
162 | token = login(init_data, account_number)
163 | if token:
164 | check_assets(token, account_number)
165 |
166 | if token:
167 | start_time = time.time()
168 | waiting_for_reward_displayed = False
169 | while True:
170 | current_time = time.time()
171 | if current_time - start_time >= 480: # 8 menit = 480 detik
172 | token = login(init_data, account_number)
173 | if token:
174 | check_assets(token, account_number)
175 | start_time = current_time
176 |
177 | reward_claimed = False
178 | payload_scene_info = {
179 | 'token': token
180 | }
181 | headers = {
182 | 'Authorization': f'Bearer {token}',
183 | 'Accept': 'application/json, text/plain, */*',
184 | 'Content-Type': 'application/json'
185 | }
186 | url_scene_info = 'https://zejlgz.com/api/scene/info'
187 |
188 | response_scene_info = requests.post(url_scene_info, json=payload_scene_info, headers=headers)
189 |
190 | if response_scene_info.status_code == 200:
191 | data_scene_info = response_scene_info.json()
192 | if data_scene_info['code'] == 0:
193 | for scene in data_scene_info['data']:
194 | if scene['eggs'] is not None:
195 | for egg in scene['eggs']:
196 | if egg['flag'] == 0:
197 | claim_drop(token, egg, account_number)
198 | reward_claimed = True
199 | waiting_for_reward_displayed = False # Reset flag
200 | else:
201 | print(Fore.RED + f'[Akun Ke-{account_number}] Gagal mendapatkan data scene info: ' + data_scene_info.get('message', 'Tidak diketahui') + Style.RESET_ALL)
202 | else:
203 | print(Fore.RED + f'[Akun Ke-{account_number}] Permintaan Gagal dengan Status Kode: {response_scene_info.status_code}' + Style.RESET_ALL)
204 |
205 | if not reward_claimed and not waiting_for_reward_displayed:
206 | print(Fore.CYAN + f'[Akun Ke-{account_number}] Waiting For Reward...' + Style.RESET_ALL)
207 | waiting_for_reward_displayed = True
208 |
209 | if __name__ == "__main__":
210 | with open('akun.txt', 'r') as file:
211 | accounts = file.readlines()
212 |
213 | threads = []
214 | for index, account in enumerate(accounts):
215 | account = account.strip()
216 | if account:
217 | thread = threading.Thread(target=process_account, args=(account, index + 1))
218 | threads.append(thread)
219 | thread.start()
220 |
221 | for thread in threads:
222 | thread.join()
223 |
--------------------------------------------------------------------------------