1 | import os |
2 | import sys,re |
3 | import datetime |
4 | from datetime import datetime, timedelta |
5 | import json |
6 | import random |
7 | import platform |
8 | try: |
9 | import requests |
10 | except ImportError: |
11 | os.system('pip install requests') |
12 | import requests |
13 | try: |
14 | from colorama import Back, Fore, Fore, Style, init |
15 | except ImportError: |
16 | os.system('pip install colorama') |
17 | from colorama import Back, Fore, Fore, Style, init |
18 | try: |
19 | from bs4 import BeautifulSoup |
20 | except ImportError: |
21 | os.system('pip3 install beautifulsoup4') |
22 | from bs4 import BeautifulSoup |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | import time |
29 | from time import sleep |
30 | import json,ast |
31 | os.system('clear') |
32 | |
33 | init(autoreset=True) |
34 | |
35 | |
36 | |
37 | def pr3(text): |
38 | lines = text.split('\n') |
39 | for line in lines: |
40 | sys.stdout.write(line+'\n') |
41 | sys.stdout.flush() |
42 | sleep(0.1) |
43 | def pr(text): |
44 | for i in range(len(text)+1): |
45 | sys.stdout.write("\r" + text[:i]) |
46 | sys.stdout.flush() |
47 | sleep(0.01) |
48 | print() |
49 | |
50 | def time(): |
51 | current_time = datetime.now() |
52 | |
53 | time = current_time.strftime("%M:%S") |
54 | return time |
55 | |
56 | def cint(number): |
57 | while True: |
58 | try: |
59 | numbers = int(input(number)) |
60 | return numbers |
61 | except ValueError: |
62 | print(f'{red}Vui lòng chỉ nhập số') |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | def changetoken(red,green,white): |
70 | if os.path.exists("cache_golike_auth.txt"): |
71 | text=f'''{green}BẠN MUỐN DÙNG AUTH CŨ HAY ĐỔI AUTH |
72 | {red}[{white}1{red}] ĐỔI AUTH |
73 | {red}[{white}2{red}] DÙNG AUTH CŨ''' |
74 | pr3(text) |
75 | changetoken=cint(f'{red}NHẬP LỰA CHỌN: {green}') |
76 | print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') |
77 | if changetoken==1: |
78 | file_name = 'cache_golike_auth.txt' |
79 | if os.path.exists(file_name): |
80 | os.remove(file_name) |
81 | else: |
82 | pass |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | def banner(red,green,blue,yellow,cyan,pink): |
92 | text=f''' {Fore.LIGHTWHITE_EX} _____ ____ _ _____ _ ________ |
93 | {cyan}/ ____|/ __ \| | |_ _| |/ / ____| |
94 | {blue}| | __| | | | | | | | ' /| |__ |
95 | {red}| | |_ | | | | | | | | < | __| |
96 | {yellow} | |__| | |__| | |____ _| |_| . \| |____ |
97 | {cyan} \_____|\____/|______|_____|_|\_\______| |
98 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
99 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
100 | {red}CODER:{green}NGUYỄN LÂM {red}YOUTUBE:{green}ASCIITOOL |
101 | {red} FACEBOOK:{green}NGUYỄN LÂM {red}TIKTOK:{green}LAMDAY |
102 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━''' |
103 | |
104 | pr3(text) |
105 | text=f'''{red} ┌───────────────────────┐ |
106 | {red} ║ {green} GOLIKE - TIKTOK {red} ║ |
107 | {red} └───────────────────────┘ |
108 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
109 | {red}MỌI NGƯỜI {cyan}CHÚ Ý!!!! |
110 | ~[+]{green}TIỀN SAU KHI LÀM NVỤ SẼ ĐƯỢC CỘNG SAU VÀI PHÚT |
111 | ~[+]{blue}MUA KEY VIP LIÊN HỆ ADMIN |
112 | ~[+]{cyan}KEY SẼ ĐƯỢC RESET VÀO MỖI 00h HÀNG NGÀY |
113 | ~[+]{yellow}CHÚC MỌI NGƯỜI SỬ DỤNG VUI VẺ |
114 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━''' |
115 | pr3(text) |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | def checkver(): |
123 | url='https://lamtool.blogspot.com/2024/09/version-golike.html' |
124 | ver=bes4(url) |
125 | return ver |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | def newtool(): |
139 | print(f"{magenta}Version 1.0.0") |
140 | url='https://lamtool.x10.mx/' |
141 | inversionlink =bes4(url) |
142 | text=f'''{red}~[+]TOOL ĐÃ CÓ PHIÊN BẢN MỚI {green}VERSION 1.1.0!!!!!! |
143 | {red}HÃY LÊN CÁC TRANG MXH CỦA{green} ASCIITOOL {red}ĐỂ LẤY TOOL |
144 | {red}TikTok:{green}LAMDAY {red}YOUTUBE:{green}ASCIITOOL |
145 | {red}Facebook:{green}NGUYỄN LÂM |
146 | {yellow}HOẶC {red}TRUY CẬP {green}LINK {red}DƯỚI ĐỂ TRỰC TIẾP LẤY TOOL: |
147 | 🔹🔹🔹🔹{inversionlink}🔸🔸🔸🔸''' |
148 | pr3(text) |
149 | print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') |
150 | text=f'''~[+]{red}XEM VIDEO CÓ TOOL MỚI NHẤT : |
151 | ~[+]{red}[1] : {green}Youtube |
152 | ~[+]{red}[2] : {green}TikTok |
153 | ~[+]{red}[3] : {green}Facebook |
154 | ~[+]{red}[4] : {green}LẤY TOOL TRỰC TIẾP''' |
155 | pr3(text) |
156 | |
157 | selec=cint('NHẬP LỰA CHỌN CỦA BẠN:') |
158 | if selec==1: |
159 | url='https://youtube.com/@ASCII303' |
160 | link=bes4(url) |
161 | os.system(f'termux-open-url {link}') |
162 | elif selec==2: |
163 | url='https://tiktok.com/@coder_stupid' |
164 | link=bes4(url) |
165 | os.system(f'termux-open-url {link}') |
166 | elif selec==3: |
167 | url='https://fb.com/' |
168 | link=bes4(url) |
169 | os.system(f'termux-open-url {link}') |
170 | elif selec==4: |
171 | os.system(f'termux-open-url {inversionlink}') |
172 | |
173 | |
174 | |
175 | |
176 | |
177 | |
178 | |
179 | def bes4(url): |
180 | html_source = requests.get(url).text |
181 | soup = BeautifulSoup(html_source, 'html.parser') |
182 | og_description = soup.find('meta', {'property': 'og:description'}) |
183 | if og_description: |
184 | text =og_description['content'] |
185 | return text |
186 | else: |
187 | print("Không tìm thấy thẻ meta với thuộc tính property='og:description'") |
188 | |
189 | |
190 | |
191 | |
192 | |
193 | def checkauth(red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink): |
194 | while True : |
195 | while True : |
196 | if not os.path.exists("cache_golike_auth.txt"): |
197 | auth=str(input(f'~[+]{red}NHẬP AUTH:{green} ')) |
198 | headers ={ |
199 | 'Authorization' :auth, |
200 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
201 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
202 | } |
203 | check=json.loads(requests.get('https://gateway.golike.net/api/tiktok-account',headers=headers).text) |
204 | if check['status']==200: |
205 | name=check['data'][0]['username'] |
206 | hea={ |
207 | 'Authorization':auth, |
208 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
209 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
210 | } |
211 | # Chuỗi JSON đầu vào |
212 | data=requests.get('https://gateway.golike.net/api/statistics/report',headers=hea).text |
213 | try: |
214 | data=json.loads(data) |
215 | except : |
216 | break |
217 | # Tính tổng pending coin |
218 | total_pending_coin = 0 |
219 | for key, value in data.items(): |
220 | if isinstance(value, dict) and 'pending_coin' in value: |
221 | total_pending_coin += value['pending_coin'] |
222 | xht=data['current_coin'] |
223 | text=f'~[+]{red}SUCCESS' |
224 | text=f'{red}TÊN TÀI KHOẢN: {green} {name}' |
225 | pr(text) |
226 | text=f'{green}${red} HIỆN TẠI :{green}{xht}đ' |
227 | pr(text) |
228 | # In tổng pending coin |
229 | text=f'{green}${red} CHỜ DUYỆT:{green}{total_pending_coin}đ' |
230 | pr(text) |
231 | print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') |
232 | text=f'~[+]{red}SELECT {green}ACC CHẠY NHIỆM VỤ ' |
233 | pr(text) |
234 | nicknames = [item['nickname'] for item in check['data'] if 'nickname' in item] |
235 | for i, nickname in enumerate(nicknames, start=1): |
236 | globals()[f'{i}'] = nickname |
237 | # In giá trị của các biến |
238 | for i, nickname in enumerate(nicknames, start=1): |
239 | text=f'{red}[{green}{i}{red}]: {globals()[f"{i}"]}' |
240 | pr(text) |
241 | with open("cache_golike_auth.txt", "w") as state_file: |
242 | state_file.write(auth) |
243 | return auth,check |
244 | else: |
245 | text=f'~[+]{red}FAIL AUTH KHÔNG CHÍNH XÁC>>{green}VUI LÒNG NHẬP LẠI' |
246 | continue |
247 | else: |
248 | with open('cache_golike_auth.txt') as f: |
249 | lines = f.readlines() |
250 | auth=lines[0] |
251 | headers ={ |
252 | 'Authorization' :auth, |
253 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
254 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
255 | } |
256 | check=json.loads(requests.get('https://gateway.golike.net/api/tiktok-account',headers=headers).text) |
257 | if check['status']==200: |
258 | name =check['data'][0]['username'] |
259 | hea={ |
260 | 'Authorization':auth, |
261 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
262 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
263 | } |
264 | |
265 | |
266 | data=requests.get('https://gateway.golike.net/api/statistics/report',headers=hea).text |
267 | try: |
268 | data=json.loads(data) |
269 | except : |
270 | break |
271 | # Tính tổng pending coin |
272 | total_pending_coin = 0 |
273 | for key, value in data.items(): |
274 | if isinstance(value, dict) and 'pending_coin' in value: |
275 | total_pending_coin += value['pending_coin'] |
276 | xht=data['current_coin'] |
277 | text=f'{red}TÊN TÀI KHOẢN: {green} {name}' |
278 | pr(text) |
279 | text=f'{green}${red} HIỆN TẠI :{green}{xht}đ' |
280 | pr(text) |
281 | # In tổng pending coin |
282 | text=f'{green}${red} CHỜ DUYỆT:{green}{total_pending_coin}đ' |
283 | pr(text) |
284 | nicknames = [item['nickname'] for item in check['data'] if 'nickname' in item] |
285 | for i, nickname in enumerate(nicknames, start=1): |
286 | globals()[f'{i}'] = nickname |
287 | print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') |
288 | text=f'~[+]{red}SELECT {green}ACC CHẠY NHIỆM VỤ ' |
289 | pr(text) |
290 | # In giá trị của các biến |
291 | for i, nickname in enumerate(nicknames, start=1): |
292 | text=f'{red}[{green}{i}{red}]: {globals()[f"{i}"]}' |
293 | pr(text) |
294 | |
295 | return auth, check |
296 | |
297 | |
298 | |
299 | |
300 | def get_id_from_nickname_number(ranmau,check,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink): |
301 | while True : |
302 | |
303 | user_input=input(f'~[+]{random.choice(ranmau)}>{random.choice(ranmau)}>{random.choice(ranmau)}> {green}CHỌN ACC TIKTOK MUỐN CHẠY JOB:{green} ') |
304 | try: |
305 | n = int(user_input) |
306 | if 'data' in check and len(check['data']) >= n: |
307 | idtiktok = check['data'][n-1]['id'] |
308 | if idtiktok : |
309 | text=f"{red}ID CỦA NICKNAME SỐ {n} LÀ: {green}{idtiktok}" |
310 | pr(text) |
311 | print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') |
312 | return idtiktok |
313 | else: |
314 | text=f"{red}KHÔNG TÌM THẤY NICKNAME TƯƠNG ỨNG." |
315 | pr(text) |
316 | else: |
317 | continue |
318 | except ValueError: |
319 | pr(f"{red}VUI LÒNG CHỈ NHẬP SỐ.") |
320 | continue |
321 | |
322 | |
323 | |
324 | |
325 | |
326 | def getjob(maxjob,delay,auth,idtiktok,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink): |
327 | startmaxjob=1 |
328 | job_success=0 |
329 | hea={ |
330 | 'Authorization': auth, |
331 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
332 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
333 | } |
334 | while True: |
335 | while True: |
336 | try: |
337 | a=requests.get(f'https://gateway.golike.net/api/advertising/publishers/tiktok/jobs?account_id={idtiktok}&data=null',headers=hea).json() |
338 | break |
339 | except: |
340 | print(f"{red}Có lỗi gì đó ,đang nhận lại nhiệm vụ...",end="\r") |
341 | sleep(0.1) |
342 | pass |
343 | try: |
344 | link=a['data']['link'] |
345 | id=a['data']['id'] |
346 | object_id=a['lock']['object_id'] |
347 | os.system(f'termux-open-url {link}') |
348 | for k in range(delay,-1,-1): |
349 | mau=random.choice(ranmau) |
350 | print(f'{green}SUCCESS:{red}[{job_success}/{startmaxjob}]{random.choice(ranmau)}LOADING{random.choice(ranmau)}>>{yellow}NVỤ MỚI SAU{random.choice(ranmau)}>>{random.choice(ranmau)}[{k}s]',end='\r') |
351 | sleep(1) |
352 | print(f'{green}Đang kiểm tra hành động...',end='\r') |
353 | headers = { |
354 | 'authorization': auth, |
355 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
356 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
357 | } |
358 | |
359 | json_data = { |
360 | 'ads_id': id, |
361 | 'account_id': idtiktok , |
362 | 'async': True, |
363 | 'data': None, |
364 | } |
365 | while True: |
366 | try: |
367 | g =requests.post('https://gateway.golike.net/api/advertising/publishers/tiktok/complete-jobs',headers=headers,json=json_data).json() |
368 | break |
369 | except: |
370 | print(f'{red}Có lỗi gì đó, đang thử lại...',end="\r") |
371 | sleep(0.1) |
372 | pass |
373 | if g['status']==200: |
374 | job_success+=1 |
375 | print(f'{green}SUCCESS:{red}[{job_success}/{startmaxjob}]{cyan}[{time()}]|{random.choice(ranmau)}SUCCESS|{green}FOLLOW|+{g["data"]["prices"]}') |
376 | startmaxjob+=1 |
377 | jobloi=0 |
378 | if startmaxjob == maxjob+1: |
379 | print(f'~[+]{pink}ĐÃ ĐẠT MAX JOB. ') |
380 | return |
381 | |
382 | else: |
383 | print(f'{green}Đang kiểm tra lại hành động...',end="\r") |
384 | sleep(2) |
385 | while True: |
386 | try: |
387 | g = requests.post('https://gateway.golike.net/api/advertising/publishers/tiktok/complete-jobs',headers=headers,json=json_data).json() |
388 | break |
389 | except: |
390 | print(f'{red}Đang nhận lại phần thưởng...',end="\r") |
391 | sleep(0.1) |
392 | if g['status']==200: |
393 | job_success+=1 |
394 | print(f'{green}SUCCESS:{red}[{job_success}/{startmaxjob}]{cyan}[{time()}]|{random.choice(ranmau)}SUCCESS|{green}FOLLOW|+{g["data"]["prices"]}') |
395 | startmaxjob+=1 |
396 | jobloi=0 |
397 | if startmaxjob == maxjob+1: |
398 | print(f'~[+]{pink}ĐÃ ĐẠT MAX JOB. ') |
399 | return |
400 | else: |
401 | print(f'{red}Đang bỏ qua nhiệm vụ...',end='\r') |
402 | headers = { |
403 | 'authorization': auth, |
404 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
405 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
406 | } |
407 | |
408 | json_data = { |
409 | 'description': 'Báo cáo hoàn thành thất bại', |
410 | 'users_advertising_id': id, |
411 | 'type': 'ads', |
412 | 'provider': 'tiktok', |
413 | 'fb_id': idtiktok , |
414 | 'error_type': 3, |
415 | } |
416 | |
417 | requests.post('https://gateway.golike.net/api/report/send', headers=headers, json=json_data) |
418 | |
419 | |
420 | headers = { |
421 | 'authorization': auth, |
422 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
423 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
424 | } |
425 | |
426 | json_data = { |
427 | 'ads_id': id, |
428 | 'object_id': object_id, |
429 | 'account_id': idtiktok , |
430 | 'type': 'follow', |
431 | } |
432 | skipjob=requests.post('https://gateway.golike.net/api/advertising/publishers/tiktok/skip-jobs',headers=headers,json=json_data) |
433 | startmaxjob+=1 |
434 | jobloi+=1 |
435 | if startmaxjob == maxjob+1: |
436 | print(f'~[+]{green}ĐÃ ĐẠT MAX JOB') |
437 | return |
438 | elif jobloi==15: |
439 | select=input(f'{red}Lỗi nhiều ,Bạn có muốn đổi nick?(y/n):') |
440 | if select.lower() == 'n': |
441 | pass |
442 | else: |
443 | nicknames = [item['nickname'] for item in check['data'] if 'nickname' in item] |
444 | for i, nickname in enumerate(nicknames, start=1): |
445 | globals()[f'{i}'] = nickname |
446 | print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') |
447 | text=f'~[+]{red}SELECT {green}ACC CHẠY NHIỆM VỤ ' |
448 | pr(text) |
449 | # In giá trị của các biến |
450 | for i, nickname in enumerate(nicknames, start=1): |
451 | text=f'{red}[{green}{i}{red}]: {globals()[f"{i}"]}' |
452 | pr(text) |
453 | idtiktok = get_id_from_nickname_number(ranmau,check,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
454 | jobloi=0 |
455 | |
456 | except: |
457 | print(f'{red}Đang nhận lại nhiệm vụ...',end='\r') |
458 | sleep(0.1) |
459 | |
460 | |
461 | |
462 | def getjob_follow(maxjob,delay,auth,idtiktok,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink): |
463 | startmaxjob=1 |
464 | job_success=0 |
465 | jobloi=0 |
466 | hea={ |
467 | 'Authorization': auth, |
468 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
469 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
470 | } |
471 | while True: |
472 | while True: |
473 | try: |
474 | a=requests.get(f'https://gateway.golike.net/api/advertising/publishers/tiktok/jobs?account_id={idtiktok}&data=null',headers=hea).json() |
475 | break |
476 | except: |
477 | print(f"{red}Có lỗi gì đó ,đang nhận lại nhiệm vụ...",end="\r") |
478 | sleep(0.1) |
479 | pass |
480 | try: |
481 | link=a['data']['link'] |
482 | id=a['data']['id'] |
483 | object_id=a['lock']['object_id'] |
484 | if 'video' in link: |
485 | print(f"{red}ĐANG LỌC JOB LIKE ",end='\r') |
486 | headers = { |
487 | 'authorization': auth, |
488 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
489 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
490 | } |
491 | |
492 | json_data = { |
493 | 'description': 'Tôi không muốn làm Job này', |
494 | 'users_advertising_id': id, |
495 | 'type': 'ads', |
496 | 'provider': 'tiktok', |
497 | 'fb_id': idtiktok, |
498 | 'error_type': 0, |
499 | } |
500 | |
501 | response = requests.post('https://gateway.golike.net/api/report/send', headers=headers, json=json_data) |
502 | |
503 | |
504 | json_data = { |
505 | 'ads_id': id, |
506 | 'object_id': object_id, |
507 | 'account_id': idtiktok, |
508 | 'type': 'like', |
509 | } |
510 | response = requests.post('https://gateway.golike.net/api/advertising/publishers/tiktok/skip-jobs',headers=headers,json=json_data) |
511 | else: |
512 | os.system(f'termux-open-url {link}') |
513 | for k in range(delay,-1,-1): |
514 | mau=random.choice(ranmau) |
515 | print(f'{green}SUCCESS:{red}[{job_success}/{startmaxjob}]{random.choice(ranmau)}LOADING{random.choice(ranmau)}>>{yellow}NVỤ MỚI SAU{random.choice(ranmau)}>>{random.choice(ranmau)}[{k}s]',end='\r') |
516 | sleep(1) |
517 | print(f'{green}Đang kiểm tra hành động...',end='\r') |
518 | headers = { |
519 | 'authorization': auth, |
520 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
521 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
522 | } |
523 | |
524 | json_data = { |
525 | 'ads_id': id, |
526 | 'account_id': idtiktok , |
527 | 'async': True, |
528 | 'data': None, |
529 | } |
530 | while True: |
531 | try: |
532 | g =requests.post('https://gateway.golike.net/api/advertising/publishers/tiktok/complete-jobs',headers=headers,json=json_data).json() |
533 | break |
534 | except: |
535 | print(f'{red}Có lỗi gì đó, đang thử lại...',end="\r") |
536 | sleep(0.1) |
537 | pass |
538 | if g['status']==200: |
539 | job_success+=1 |
540 | print(f'{green}SUCCESS:{red}[{job_success}/{startmaxjob}]{cyan}[{time()}]|{random.choice(ranmau)}SUCCESS|{green}FOLLOW|+{g["data"]["prices"]}') |
541 | startmaxjob+=1 |
542 | jobloi=0 |
543 | if startmaxjob == maxjob+1: |
544 | print(f'~[+]{pink}ĐÃ ĐẠT MAX JOB. ') |
545 | return |
546 | |
547 | else: |
548 | print(f'{green}Đang kiểm tra lại hành động...',end="\r") |
549 | sleep(2) |
550 | while True: |
551 | try: |
552 | g = requests.post('https://gateway.golike.net/api/advertising/publishers/tiktok/complete-jobs',headers=headers,json=json_data).json() |
553 | break |
554 | except: |
555 | print(f'{red}Đang nhận lại phần thưởng...',end="\r") |
556 | sleep(0.1) |
557 | if g['status']==200: |
558 | job_success+=1 |
559 | print(f'{green}SUCCESS:{red}[{job_success}/{startmaxjob}]{cyan}[{time()}]|{random.choice(ranmau)}SUCCESS|{green}FOLLOW|+{g["data"]["prices"]}') |
560 | startmaxjob+=1 |
561 | jobloi=0 |
562 | if startmaxjob == maxjob+1: |
563 | print(f'~[+]{pink}ĐÃ ĐẠT MAX JOB. ') |
564 | return |
565 | else: |
566 | print(f'{red}Đang bỏ qua nhiệm vụ...',end='\r') |
567 | headers = { |
568 | 'authorization': auth, |
569 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
570 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
571 | } |
572 | |
573 | json_data = { |
574 | 'description': 'Báo cáo hoàn thành thất bại', |
575 | 'users_advertising_id': id, |
576 | 'type': 'ads', |
577 | 'provider': 'tiktok', |
578 | 'fb_id': idtiktok , |
579 | 'error_type': 3, |
580 | } |
581 | |
582 | requests.post('https://gateway.golike.net/api/report/send', headers=headers, json=json_data) |
583 | |
584 | |
585 | headers = { |
586 | 'authorization': auth, |
587 | 't': 'VFZSWk5VOUVVVEJQUkZGNFRXYzlQUT09', |
588 | 'User-Agent':"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5" |
589 | } |
590 | |
591 | json_data = { |
592 | 'ads_id': id, |
593 | 'object_id': object_id, |
594 | 'account_id': idtiktok , |
595 | 'type': 'follow', |
596 | } |
597 | skipjob=requests.post('https://gateway.golike.net/api/advertising/publishers/tiktok/skip-jobs',headers=headers,json=json_data) |
598 | startmaxjob+=1 |
599 | jobloi+=1 |
600 | if startmaxjob == maxjob+1: |
601 | print(f'~[+]{green}ĐÃ ĐẠT MAX JOB') |
602 | return |
603 | elif jobloi==15: |
604 | select=input(f'{red}Lỗi nhiều ,Bạn có muốn đổi nick?(y/n):') |
605 | if select.lower() == 'n': |
606 | pass |
607 | else: |
608 | nicknames = [item['nickname'] for item in check['data'] if 'nickname' in item] |
609 | for i, nickname in enumerate(nicknames, start=1): |
610 | globals()[f'{i}'] = nickname |
611 | print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') |
612 | text=f'~[+]{red}SELECT {green}ACC CHẠY NHIỆM VỤ ' |
613 | pr(text) |
614 | # In giá trị của các biến |
615 | for i, nickname in enumerate(nicknames, start=1): |
616 | text=f'{red}[{green}{i}{red}]: {globals()[f"{i}"]}' |
617 | pr(text) |
618 | idtiktok = get_id_from_nickname_number(ranmau,check,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
619 | jobloi=0 |
620 | |
621 | except: |
622 | print(f'{red}Đang nhận lại nhiệm vụ...',end='\r') |
623 | sleep(0.1) |
624 | |
625 | |
626 | |
627 | |
628 | |
629 | |
630 | |
631 | |
632 | |
633 | |
634 | |
635 | |
636 | |
637 | def creat_key(): |
638 | current_time = datetime.now() |
639 | time = current_time.strftime("%F") |
640 | characters_to_choose_from = 'qưertyuiopasdghjklzxcvbnmQWERTYUIOPASDGHJKLZXCVBNM123456789' |
641 | characters = 'qưertyuiopasdghjklzxcvbnmQWERTYUIOPASDGHJKLZXCVBNM123456789' |
642 | # Tạo một chuỗi ngẫu nhiên gồm 5000 ký tự từ danh sách trên |
643 | randoma = ''.join(random.choice(characters_to_choose_from) for _ in range(10)) |
644 | end_link = ''.join(random.choice(characters) for _ in range(10)) |
645 | dulieu=f'Key-{time}-{randoma}' |
646 | note= f'https://lamtool.x10.mx/key.html?key={dulieu}' |
647 | while True: |
648 | try: |
649 | shortlink=requests.get(f"https://yeumoney.com/QL_api.php?token=9815b7bc2888c759494e21cb7b1ecdf3c7f1e33b93c69f408021f40b0cb22d30&format=json&url={note}").json() |
650 | shortlink=shortlink['shortenedUrl'] |
651 | return shortlink,dulieu |
652 | except : |
653 | sleep(1) |
654 | |
655 | |
656 | |
657 | |
658 | #biến |
659 | #green='\033[38;5;10m' |
660 | blue='\033[38;5;12m' |
661 | cyan='\033[38;5;14m' |
662 | white='\033[1;39m' |
663 | magenta='\033[38;5;5m' |
664 | orange='\033[38;5;202m' |
665 | xanhnhat = "\033[1;36m" |
666 | red = "\033[1;31m" |
667 | green = "\033[1;32m" |
668 | yellow = "\033[1;33m" |
669 | xduong = "\033[1;34m" |
670 | pink = "\033[1;35m" |
671 | trang = "\033[1;39m" |
672 | whiteb="\033[1;39m" |
673 | redb="\033[1;31m" |
674 | end='\033[0m' |
675 | ranmau=(red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
676 | |
677 | |
678 | |
679 | def tinhngay(songay): |
680 | time = datetime.now() |
681 | start=time.strftime("%d/%m/%Y") |
682 | end = (time + timedelta(days=int(songay))).strftime("%d/%m/%Y") |
683 | return start, end |
684 | |
685 | |
686 | |
687 | |
688 | def activefile(start,end): |
689 | |
690 | if not os.path.exists("vipkey.txt"): |
691 | data={ |
692 | "start":start, |
693 | "end":end |
694 | } |
695 | with open("vipkey.txt", "w") as state_file: |
696 | state_file.write(json.dumps(data)) |
697 | |
698 | else: |
699 | with open('vipkey.txt', 'r') as file: |
700 | data_txt = file.read() |
701 | |
702 | # Phân tích dữ liệu JSON |
703 | try: |
704 | data_json = json.loads(data_txt) |
705 | start_date = data_json.get('start') |
706 | end_date = data_json.get('end') |
707 | return start_date,end_date |
708 | except json.JSONDecodeError: |
709 | print("Dữ liệu không hợp lệ. Vui lòng kiểm tra lại định dạng JSON trong tệp.") |
710 | |
711 | # Tinh ngay va lay la |
712 | def ghichu(): |
713 | |
714 | # Sử dụng thư viện requests để tải trang web |
715 | response1 = requests.get('https://ghichu.vn/share/a2d603edc') |
716 | |
717 | # Kiểm tra xem tải trang thành công hay không (HTTP status code 200 là thành công) |
718 | if response1.status_code == 200: |
719 | # Parse nội dung HTML bằng BeautifulSoup |
720 | soup1 = BeautifulSoup(response1.text, 'html.parser') |
721 | |
722 | # Tìm thẻ <textarea> bằng class 'content' |
723 | textarea = soup1.find('textarea', {'class': 'content'}) |
724 | |
725 | # Lấy nội dung bên trong thẻ <textarea> |
726 | if textarea: |
727 | data_devices = textarea.string.strip() |
728 | return data_devices |
729 | else: |
730 | print(f'{red}KIỂM TRA KEY CỦA BẠN') |
731 | |
732 | def ngay(chuoi): |
733 | |
734 | |
735 | # Tìm vị trí của "vipkey-" trong chuỗi |
736 | vi_tri_vipkey = chuoi.find("Vipkey-") |
737 | |
738 | if vi_tri_vipkey != -1: |
739 | # Cắt chuỗi từ vị trí sau "vipkey-" |
740 | so_sau_vipkey = chuoi[vi_tri_vipkey + len("Vipkey-"):] |
741 | |
742 | # Tìm vị trí của "-" trong chuỗi cắt được |
743 | vi_tri_gach_ngang = so_sau_vipkey.find("-") |
744 | |
745 | if vi_tri_gach_ngang != -1: |
746 | # Lấy số từ chuỗi cắt được |
747 | so = so_sau_vipkey[:vi_tri_gach_ngang] |
748 | return so |
749 | else: |
750 | print("Không tìm thấy ký tự '-' sau 'vipkey-'") |
751 | else: |
752 | print("Không tìm thấy chuỗi 'vipkey-' trong chuỗi") |
753 | |
754 | def input_vipkey(key,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink): |
755 | |
756 | data_devices=ghichu() |
757 | # Sử dụng .string để lấy nội dung và .strip() để loại bỏ khoảng trắng thừa |
758 | if key in data_devices : |
759 | start,end=tinhngay(ngay(key)) |
760 | activefile(start,end) |
761 | device_info={ |
762 | 'system':platform.system(), |
763 | 'name':platform.node(), |
764 | "release":platform.release(), |
765 | "machine":platform.machine(), |
766 | "processor":platform.processor() , |
767 | "time":{ |
768 | "start":start, |
769 | "end":end |
770 | |
771 | } |
772 | } |
773 | headers = { |
774 | 'cookie': 'PHPSESSID=ecb3843bfac5ec2c7ba1ee4ed65abc22', |
775 | |
776 | } |
777 | |
778 | data = { |
779 | 't': data_devices.replace(key,'')+"\n"+str(device_info), |
780 | } |
781 | |
782 | response = requests.post('https://ghichu.vn/79ng5', headers=headers, data=data) |
783 | print(f'{green}Thành công .Key vip của bạn có thời hạn đến {cyan}{end}') |
784 | else: |
785 | print(f'{red}Kiểm tra key của bạn') |
786 | sleep(99999) |
787 | sleep(99999) |
788 | |
789 | |
790 | |
791 | |
792 | def check_keyvip(): |
793 | start,end=activefile('a','b') |
794 | if datetime.now().date() > datetime.strptime(end, "%d/%m/%Y").date(): |
795 | print(f"{red}Vip key đã hết hạn") |
796 | print(f'{red}Hãy khởi động lại tool để lấy key free hoặc key vip mới') |
797 | headers = { |
798 | 'cookie': 'PHPSESSID=ecb3843bfac5ec2c7ba1ee4ed65abc22', |
799 | |
800 | } |
801 | device_info_dict={ |
802 | 'system':platform.system(), |
803 | 'name':platform.node(), |
804 | "release":platform.release(), |
805 | "machine":platform.machine(), |
806 | "processor":platform.processor() , |
807 | "time":{ |
808 | "start":start, |
809 | "end":end |
810 | |
811 | } |
812 | } |
813 | data = { |
814 | 't': ghichu().replace(str(device_info_dict),''), |
815 | } |
816 | |
817 | response = requests.post('https://ghichu.vn/79ng5', headers=headers, data=data) |
818 | os.remove('vipkey.txt') |
819 | return False |
820 | else: |
821 | device_info_dict={ |
822 | 'system':platform.system(), |
823 | 'name':platform.node(), |
824 | "release":platform.release(), |
825 | "machine":platform.machine(), |
826 | "processor":platform.processor() , |
827 | "time":{ |
828 | "start":start, |
829 | "end":end |
830 | |
831 | } |
832 | } |
833 | |
834 | devices_info=ghichu() |
835 | if str(device_info_dict) not in devices_info: |
836 | print(f"{red}Thiết bị của bạn không nằm trong danh sách vip key") |
837 | print(f'{red}Hãy khởi động lại tool để nhập key free hoặc key vip mới') |
838 | os.remove("vipkey.txt") |
839 | return False |
840 | else: |
841 | conlai=(datetime.strptime(end, "%d/%m/%Y").date() - datetime.now().date()).days |
842 | print(f'{green}Bạn còn {cyan}{conlai}{green} ngày để sử dụng key vip') |
843 | |
844 | |
845 | |
846 | |
847 | |
848 | |
849 | |
850 | |
851 | |
852 | |
853 | def keyinput(): |
854 | if not os.path.exists("key_golike.txt"): |
855 | shortlink,key=creat_key() |
856 | text=f'''{red}CẦN KEY ĐỂ {green}KHỞI ĐỘNG TOOL |
857 | {yellow}HÃY {red}TRUY CẬP LINK DƯỚI ĐỂ {green}LẤY KEY: |
858 | 🔸🔸🔸{cyan}{shortlink}🔹🔹🔹''' |
859 | pr3(text) |
860 | input(f'{green}Bấm enter để lấy key') |
861 | os.system(f'termux-open-url {shortlink}') |
862 | while True : |
863 | keyinput=input(f'{red}NHẬP KEY ĐỂ TIẾP TỤC: {green}') |
864 | if keyinput==key: |
865 | print(f'{green}CORRECT KEY') |
866 | os.system('clear') |
867 | banner(red,green,blue,yellow,cyan,pink) |
868 | with open("key_golike.txt", "w") as state_file: |
869 | state_file.write(keyinput) |
870 | return |
871 | else: |
872 | continue |
873 | else: |
874 | with open('key_golike.txt') as f: |
875 | lines = f.readlines() |
876 | keyinput=lines[0] |
877 | if time_key not in keyinput: |
878 | shortlink,key=creat_key() |
879 | text=f'{red}KEY ĐÃ {green}HẾT HẠN VUI LÒNG LẤY{yellow} KEY MỚI' |
880 | pr(text) |
881 | text=f'''🔸🔸🔸{cyan}{shortlink}🔹🔹🔹''' |
882 | pr3(text) |
883 | input(f'{green}Bấm enter để lấy key') |
884 | os.system(f'termux-open-url {shortlink}') |
885 | while True : |
886 | keyinput=input(f'{red}NHẬP KEY ĐỂ TIẾP TỤC: {green}') |
887 | if keyinput==key: |
888 | print(f'{green}CORRECT KEY') |
889 | os.system('clear') |
890 | banner(red,green,blue,yellow,cyan,pink) |
891 | with open("key_golike.txt", "w") as state_file: |
892 | state_file.write(keyinput) |
893 | return |
894 | else: |
895 | continue |
896 | else: |
897 | return |
898 | |
899 | |
900 | |
901 | while True: |
902 | banner(red,green,blue,yellow,cyan,pink) |
903 | ver=checkver() |
904 | |
905 | current_time = datetime.now() |
906 | time_key = current_time.strftime("%F") |
907 | |
908 | if not os.path.exists("vipkey.txt"): |
909 | print(f"{pink}Bạn sử dụng key free hay vip key") |
910 | print(f"""{green}[1]:Key free |
911 | [2]:Key vip""") |
912 | inputl=cint(f"{green}Nhập lựa chọn:{cyan} ") |
913 | if inputl == 1: |
914 | keyinput() |
915 | else: |
916 | key = input(f'{green}Nhập key vip đã mua:{cyan} ') |
917 | input_vipkey(key,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
918 | chay=True |
919 | break |
920 | else: |
921 | status=check_keyvip() |
922 | chay=True |
923 | break |
924 | if chay is True: |
925 | if ver == 'Version 1.0.0': |
926 | print(f'{pink}VERSION 1.0.0') |
927 | changetoken(red,green,white) |
928 | auth,check =checkauth(red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
929 | if not os.path.exists("setting_golike.txt"): |
930 | idtiktok =get_id_from_nickname_number(ranmau,check,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
931 | print(f'''~[+]{red}BẠN CÓ MUỐN LỌC JOB LIKE KHÔNG: |
932 | {red}[1]:{green}CÓ |
933 | {red}[2]:{green}KHÔNG''') |
934 | select_job=cint(f'{red}NHẬP LỰA CHỌN:{green}') |
935 | delay =cint(f'~[+]{red}NHẬP DELAY: {green}') |
936 | maxjob= cint(f'~[+]{red}NHẬP MAX JOB: {green}') |
937 | setting={ |
938 | "loaijob":select_job, |
939 | "delay":delay, |
940 | "maxjob":maxjob |
941 | } |
942 | |
943 | file = open("setting_golike.txt", "a") # Append mode |
944 | file.write(json.dumps(setting)) |
945 | file.close() |
946 | print(f'{cyan}KHỞI CHẠY NHIỆM VỤ') |
947 | print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') |
948 | sleep(1) |
949 | if select_job==1: |
950 | getjob_follow(maxjob,delay,auth,idtiktok,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
951 | else: |
952 | getjob(maxjob,delay,auth,idtiktok,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
953 | |
954 | |
955 | else: |
956 | idtiktok = get_id_from_nickname_number(ranmau,check,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
957 | select_setting=input(f'{green}Bạn có muốn sử dụng setting cũ không?[y/n]{cyan}:' ) |
958 | if select_setting.lower() == 'n': |
959 | os.remove('setting_golike.txt') |
960 | idtiktok =get_id_from_nickname_number(ranmau,check,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
961 | print(f'''~[+]{red}BẠN CÓ MUỐN LỌC JOB LIKE KHÔNG: |
962 | {red}[1]:{green}CÓ |
963 | {red}[2]:{green}KHÔNG''') |
964 | select_job=cint(f'{red}NHẬP LỰA CHỌN:{green}') |
965 | delay =cint(f'~[+]{red}NHẬP DELAY: {green}') |
966 | maxjob= cint(f'~[+]{red}NHẬP MAX JOB: {green}') |
967 | setting={ |
968 | "loaijob":select_job, |
969 | "delay":delay, |
970 | "maxjob":maxjob |
971 | } |
972 | file = open("setting_golike.txt", "a") # Append mode |
973 | file.write(json.dumps(setting)) |
974 | file.close() |
975 | |
976 | print(f'{cyan}KHỞI CHẠY NHIỆM VỤ') |
977 | print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') |
978 | sleep(1) |
979 | if select_job==1: |
980 | getjob_follow(maxjob,delay,auth,idtiktok,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
981 | else: |
982 | getjob(maxjob,delay,auth,idtiktok,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
983 | |
984 | |
985 | else: |
986 | try: |
987 | with open("setting_golike.txt", "r") as file: |
988 | data_txt=file.read() |
989 | data_json = json.loads(data_txt) |
990 | select_job = int(data_json.get('loaijob')) |
991 | delay = int(data_json.get('delay')) |
992 | maxjob= int(data_json.get('maxjob')) |
993 | print(f'{cyan}KHỞI CHẠY NHIỆM VỤ') |
994 | print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━') |
995 | sleep(1) |
996 | if select_job==1: |
997 | getjob_follow(maxjob,delay,auth,idtiktok,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
998 | else: |
999 | getjob(maxjob,delay,auth,idtiktok,red,blue,green,yellow,cyan,magenta,orange,xanhnhat,xduong,pink) |
1000 | except json.JSONDecodeError: |
1001 | print("Dữ liệu không hợp lệ. Vui lòng kiểm tra lại định dạng JSON trong tệp.") |
1002 | |
1003 | else: |
1004 | newtool() |