1 | den = "\033[1;90m" |
2 | luc = "\033[1;32m" |
3 | trang = "\033[1;37m" |
4 | red = "\033[1;31m" |
5 | vang = "\033[1;33m" |
6 | tim = "\033[1;35m" |
7 | lamd = "\033[1;34m" |
8 | lam = "\033[1;36m" |
9 | purple = "\e[35m" |
10 | hong = "\033[1;95m" |
11 | |
12 | thanh_xau= red + "[" + trang+ "=.=" + red + "] " + trang + "=> " |
13 | thanh_dep= red + "[" + trang+ "=.=" + red + "] " + trang + "=> " |
14 | |
15 | from pystyle import Add, Center, Anime, Colors, Colorate, Write, System |
16 | import requests, json |
17 | import os |
18 | import sys |
19 | from sys import platform |
20 | from time import sleep |
21 | from datetime import datetime |
22 | from time import strftime |
23 | total = 0 |
24 | may = 'mb' if platform[0:3] == 'lin' else 'pc' |
25 | def banner(): |
26 | os.system("cls" if os.name == "nt" else "clear") |
27 | banner = f""" |
28 | \033[1;34m╔══════════════════════════════════════════════════════════════════════╗ |
29 | \033[38;2;0;0;255m █████╗ ███████╗ ██████╗██╗██╗ \033[0m |
30 | \033[38;2;50;50;255m ██╔══██╗██╔════╝██╔════╝██║██║ \033[0m |
31 | \033[38;2;100;100;255m ███████║███████╗██║ ██║██║ \033[0m |
32 | \033[38;2;150;150;255m ██╔══██║╚════██║██║ ██║██║ \033[0m |
33 | \033[38;2;200;200;255m ██║ ██║███████║╚██████╗██║██║ \033[0m |
34 | \033[38;2;255;255;255m ╚═╝ ╚═╝╚══════╝ ╚═════╝╚═╝╚═╝ \033[0m |
35 | \033[1;34m╠══════════════════════════════════════════════════════════════════════╣ |
36 | \033[1;32m║➢ Author : 🤖ASCII🤖 ║ |
37 | \033[1;36m║➢ Youtube : https://www.youtube.com/@ASCII303 ║ |
38 | \033[1;31m║➣ Support : t.me/Lamdayne1 ║ |
39 | \033[1;33m║➣ Group Tele Hỗ Trợ : https://t.me/asciiforest ║ |
40 | \033[1;34m╚══════════════════════════════════════════════════════════════════════╝ |
41 | """ |
42 | for X in banner: |
43 | sys.stdout.write(X) |
44 | sys.stdout.flush() |
45 | sleep(0.00125) |
46 | |
47 | |
48 | |
49 | def bongoc(so): |
50 | for i in range(so): |
51 | print(red+'────', end = '' ) |
52 | print('') |
53 | class TraoDoiSub_Api (object): |
54 | def __init__ (self, token): |
55 | self.token = token |
56 | |
57 | def main(self): |
58 | try: |
59 | main = requests.get('https://traodoisub.com/api/?fields=profile&access_token='+self.token).json() |
60 | try: |
61 | return main['data'] |
62 | except: |
63 | False |
64 | except: |
65 | return False |
66 | def run(self, user): |
67 | try: |
68 | run = requests.get(f'https://traodoisub.com/api/?fields=tiktok_run&id={user}&access_token={self.token}').json() |
69 | try: |
70 | return run['data'] |
71 | except: |
72 | return False |
73 | except: |
74 | return False |
75 | |
76 | def get_job(self, type): |
77 | try: |
78 | get = requests.get(f'https://traodoisub.com/api/?fields={type}&access_token={self.token}') |
79 | return get |
80 | except: |
81 | return False |
82 | |
83 | def cache(self, id, type): |
84 | |
85 | try: |
86 | cache = requests.get(f'https://traodoisub.com/api/coin/?type={type}&id={id}&access_token={self.token}').json() |
87 | try: |
88 | cache['cache'] |
89 | return True |
90 | except: |
91 | return False |
92 | except: |
93 | return False |
94 | |
95 | def nhan_xu(self, id, type): |
96 | try: |
97 | nhan = requests.get(f'https://traodoisub.com/api/coin/?type={type}&id={id}&access_token={self.token}') |
98 | try: |
99 | xu = nhan.json()['data']['xu'] |
100 | msg = nhan.json()['data']['msg'] |
101 | job = nhan.json()['data']['job_success'] |
102 | xuthem = nhan.json()['data']['xu_them'] |
103 | global total |
104 | total+=xuthem |
105 | bongoc(14) |
106 | print(f'{lam}Nhận Thành Công {job} Nhiệm Vụ {red}| {luc}{msg} {red}| {luc}TOTAL {vang}{total} {luc}Xu {red}| {vang}{xu} ') |
107 | bongoc(14) |
108 | if job == 0: |
109 | return 0 |
110 | except: |
111 | if '"code":"error","msg"' in nhan.text: |
112 | hien = nhan.json()['msg']; print(red+hien, end = '\r'); sleep(2); print(' '*len(hien), end = '\r') |
113 | else: |
114 | print(red+'Nhận Xu Thất Bại !', end = '\r'); sleep(2); print(' ', end = '\r') |
115 | return False |
116 | except: |
117 | print(red+'Nhận Xu Thất Bại !', end = '\r'); sleep(2); print(' ', end = '\r') |
118 | return False |
119 | def delay(dl): |
120 | try: |
121 | for i in range(dl, -1, -1): |
122 | print(f'{vang}[{trang}Null SOFT{vang}][{trang}'+str(i)+vang+'] ',end='\r') |
123 | sleep(1) |
124 | except: |
125 | sleep(dl) |
126 | print(dl,end='\r') |
127 | |
128 | def chuyen(link, may): |
129 | if may == 'mb': |
130 | os.system(f'xdg-open {link}') |
131 | else: |
132 | os.system(f'cmd /c start {link}') |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | |
139 | |
140 | |
141 | def main(): |
142 | dem=0 |
143 | banner() |
144 | while True: |
145 | if os.path.exists('configtds.txt'): |
146 | with open('configtds.txt', 'r') as f: |
147 | token = f.read() |
148 | tds = TraoDoiSub_Api(token) |
149 | data = tds.main() |
150 | try: |
151 | print(f'{thanh_xau}{luc}Nhập {vang}[{trang}1{vang}] {luc}Giữ Lại Tài Khoản '+vang+ data['user'] ) |
152 | print(f'{thanh_xau}{luc}Nhập {vang}[{trang}2{vang}] {luc}Nhập Access_Token TDS Mới') |
153 | chon = input(f'{thanh_xau}{luc}Nhập {trang}===>: {vang}') |
154 | if chon == '2': |
155 | os.remove('configtds.txt') |
156 | elif chon == '1': |
157 | pass |
158 | else: |
159 | print(red+'Lựa chọn không xác định !!!');bongoc(14) |
160 | continue |
161 | except: |
162 | os.remove('configtds.txt') |
163 | if not os.path.exists('configtds.txt'): |
164 | token = input(f'{thanh_xau}{luc}Nhập Access_Token TDS: {vang}') |
165 | with open('configtds.txt', 'w') as f: |
166 | f.write(token) |
167 | with open('configtds.txt', 'r') as f: |
168 | token = f.read() |
169 | tds = TraoDoiSub_Api(token) |
170 | data = tds.main() |
171 | try: |
172 | xu = data['xu'] |
173 | xudie = data['xudie'] |
174 | user = data['user'] |
175 | print(lam+' Đăng Nhập Thành Công ') |
176 | break |
177 | except: |
178 | print(red+'Access Token Không Hợp Lệ! Xin Thử Lại ') |
179 | os.remove('configtds.txt') |
180 | continue |
181 | bongoc(14) |
182 | |
183 | |
184 | |
185 | |
186 | |
187 | |
188 | |
189 | |
190 | |
191 | |
192 | |
193 | |
194 | |
195 | |
196 | |
197 | |
198 | banner() |
199 | print(f'{thanh_xau}{luc}Tên Tài Khoản: {vang}{user} ') |
200 | print(f'{thanh_xau}{luc}Xu Hiện Tại: {vang}{xu}') |
201 | print(f'{thanh_xau}{luc}Xu Bị Phạt: {vang}{xudie} ') |
202 | while True: |
203 | ntool=0 |
204 | bongoc(14) |
205 | print(f'{thanh_xau}{luc}Nhập {red}[{vang}1{red}] {luc}Để Chạy Nhiệm Vụ Tim') |
206 | print(f'{thanh_xau}{luc}Nhập {red}[{vang}2{red}] {luc}Để Chạy Nhiệm Vụ Follow') |
207 | print(f'{thanh_xau}{luc}Nhập {red}[{vang}3{red}] {luc}Để Chạy Nhiệm Vụ Follow Tiktok Now') |
208 | nhiem_vu=input(f'{thanh_xau}{luc}Nhập Số Để Chạy Nhiệm Vụ: {vang}') |
209 | dl = int(input(f'{thanh_xau}{luc}Nhập Delay: {vang}')) |
210 | while True: |
211 | if ntool == 2: |
212 | break |
213 | ntool = 0 |
214 | bongoc(14) |
215 | nv_nhan=int(input(f'{thanh_xau}{luc}Sau Bao Nhiêu Nhiệm Vụ Thì Nhận Xu: {vang}')) |
216 | if nv_nhan < 8: |
217 | print(red+'Trên 8 Nhiệm Vụ Mới Được Nhận Tiền!') |
218 | continue |
219 | if nv_nhan > 15: |
220 | print(red+'Nhận Xu Dưới 15 Nhiệm Vụ Để Tránh Lỗi') |
221 | continue |
222 | user_cau_hinh=input(f'{thanh_xau}{luc}Nhập User Name Tik Tok Cần Cấu Hình: {vang}') |
223 | cau_hinh=tds.run(user_cau_hinh) |
224 | if cau_hinh != False: |
225 | user=cau_hinh['uniqueID'] |
226 | id_acc=cau_hinh['id'] |
227 | bongoc(14) |
228 | print(f'{luc}Đang Cấu Hình ID: {vang}{id_acc} {red}| {luc}User: {vang}{user} {red}| ') |
229 | bongoc(14) |
230 | else: |
231 | print(f'{red}Cấu Hinh Thất Bại User: {vang}{user_cau_hinh} ') |
232 | continue |
233 | while True: |
234 | if ntool==1 or ntool==2:break |
235 | if '1' in nhiem_vu: |
236 | listlike = tds.get_job('tiktok_like') |
237 | if listlike == False: |
238 | print(red+'Không Get Được Nhiệm Vụ Like ', end = '\r');sleep(2); print(' ', end = '\r') |
239 | elif 'error' in listlike.text: |
240 | if listlike.json()['error'] == 'Thao tác quá nhanh vui lòng chậm lại': |
241 | coun = listlike.json()['countdown'] |
242 | print(f'{red}Đang Get Nhiệm Vụ Like, COUNTDOWN: {str(round(coun, 3))} ', end = '\r'); sleep(2); print(' ', end = '\r') |
243 | elif listlike.json()['error'] == 'Vui lòng ấn NHẬN TẤT CẢ rồi sau đó tiếp tục làm nhiệm vụ để tránh lỗi!': |
244 | nhan = tds.nhan_xu('TIKTOK_LIKE_API', 'TIKTOK_LIKE') |
245 | else: |
246 | print(red+listlike.json()['error'] , end ='\r');sleep(2); print(' ', end = '\r') |
247 | else: |
248 | try: |
249 | listlike = listlike.json()['data'] |
250 | except: |
251 | print(red+'Hết Nhiệm Vụ Like ', end = '\r');sleep(2); print(' ', end = '\r') |
252 | continue |
253 | if len(listlike) == 0: |
254 | print(red+'Hết Nhiệm Vụ Like ', end = '\r');sleep(2); print(' ', end = '\r') |
255 | else: |
256 | print(f'{luc}Tìm Thấy {vang}{len(listlike)} {luc}Nhiệm Vụ Like ', end = '\r');sleep(2); print(' ', end = '\r') |
257 | for i in listlike: |
258 | id = i['id'] |
259 | link = i['link'] |
260 | chuyen(link, may) |
261 | cache = tds.cache(id, 'TIKTOK_LIKE_CACHE') |
262 | if cache != True: |
263 | tg=datetime.now().strftime('%H:%M:%S') |
264 | hien = f'{vang}[{red}X{vang}] {red}| {lam}{tg} {red}| {vang}TIM {red}| {trang}{id} {red}|'; print(hien, end = '\r');sleep(1); print(' ', end = '\r') |
265 | else: |
266 | dem+=1 |
267 | tg=datetime.now().strftime('%H:%M:%S') |
268 | print(f'{vang}[{trang}{dem}{vang}] {red}| {lam}{tg} {red}| {Colorate.Horizontal(Colors.yellow_to_red, "TIM")} {red}| {trang}{id} {red}|') |
269 | delay(dl) |
270 | if dem % nv_nhan == 0: |
271 | nhan = tds.nhan_xu('TIKTOK_LIKE_API', 'TIKTOK_LIKE') |
272 | if nhan == 0: |
273 | print(luc+'Nhận Xu Thất Bại Acc Tiktok Của Bạn Ổn Chứ ') |
274 | print(f'{thanh_xau}{luc}Nhập {red}[{vang}1{red}] {luc}Để Thay Nhiệm Vụ ') |
275 | print(f'{thanh_xau}{luc}Nhập {red}[{vang}2{red}] {luc}Thay Acc Tiktok ') |
276 | print(f'{thanh_xau}{luc}Nhấn {red}[{vang}Enter{red}] {luc}Để Tiếp Tục') |
277 | chon=input(f'{thanh_xau}{luc}Nhập {trang}===>: {vang}') |
278 | if chon == '1': |
279 | ntool=2 |
280 | break |
281 | elif chon =='2': |
282 | ntool = 1 |
283 | break |
284 | bongoc(14) |
285 | if ntool==1 or ntool==2:break |
286 | if '2' in nhiem_vu: |
287 | listfollow = tds.get_job('tiktok_follow') |
288 | if listfollow == False: |
289 | print(red+'Không Get Được Nhiệm Vụ Follow ', end = '\r');sleep(2); print(' ', end = '\r') |
290 | elif 'error' in listfollow.text: |
291 | if listfollow.json()['error'] == 'Thao tác quá nhanh vui lòng chậm lại': |
292 | coun = listfollow.json()['countdown'] |
293 | print(red+f'Đang Get Nhiệm Vụ Follow, COUNTDOWN: {str(round(coun, 3))} ', end = '\r'); sleep(2); print(' ', end = '\r') |
294 | elif listfollow.json()['error'] == 'Vui lòng ấn NHẬN TẤT CẢ rồi sau đó tiếp tục làm nhiệm vụ để tránh lỗi!': |
295 | nhan = tds.nhan_xu('TIKTOK_FOLLOW_API', 'TIKTOK_FOLLOW') |
296 | else: |
297 | print(red+listfollow.json()['error'] , end ='\r');sleep(2); print(' ', end = '\r') |
298 | else: |
299 | try: |
300 | listfollow = listfollow.json()['data'] |
301 | except: |
302 | print(red+'Hết Nhiệm Vụ Follow ', end = '\r');sleep(2); print(' ', end = '\r') |
303 | continue |
304 | if len(listfollow) == 0: |
305 | print(red+'Hết Nhiệm Vụ Follow ', end = '\r');sleep(2); print(' ', end = '\r') |
306 | else: |
307 | print(luc+f'Tìm Thấy {vang}{len(listfollow)} {luc}Nhiệm Vụ Follow ', end = '\r');sleep(2); print(' ', end = '\r') |
308 | for i in listfollow: |
309 | id = i['id'] |
310 | link = i['link'] |
311 | chuyen(link, may) |
312 | cache = tds.cache(id, 'TIKTOK_FOLLOW_CACHE') |
313 | if cache != True: |
314 | tg=datetime.now().strftime('%H:%M:%S') |
315 | hien = f'{vang}[{red}X{vang}] {red}| {lam}{tg} {red}| {vang}FOLLOW {red}| {trang}{id} {red}|'; print(hien, end = '\r');sleep(1); print(' ', end = '\r') |
316 | else: |
317 | dem+=1 |
318 | tg=datetime.now().strftime('%H:%M:%S') |
319 | print(f'{vang}[{trang}{dem}{vang}] {red}| {lam}{tg} {red}| {Colorate.Horizontal(Colors.yellow_to_red, "FOLLOW")} {red}| {trang}{id} {red}|') |
320 | delay(dl) |
321 | if dem % nv_nhan == 0: |
322 | nhan = tds.nhan_xu('TIKTOK_FOLLOW_API', 'TIKTOK_FOLLOW') |
323 | if nhan == 0: |
324 | print(luc+'Nhận Xu Thất Bại Acc Tiktok Của Bạn Ổn Chứ ') |
325 | print(f'{thanh_xau}{luc}Nhập {red}[{vang}1{red}] {luc}Để Thay Nhiệm Vụ ') |
326 | print(f'{thanh_xau}{luc}Nhập {red}[{vang}2{red}] {luc}Thay Acc Tiktok ') |
327 | print(f'{thanh_xau}{luc}Nhấn {red}[{vang}Enter{red}] {luc}Để Tiếp Tục') |
328 | chon=input(f'{thanh_xau}{luc}Nhập {trang}===>: {vang}') |
329 | if chon == '1': |
330 | ntool=2 |
331 | break |
332 | elif chon =='2': |
333 | ntool = 1 |
334 | break |
335 | bongoc(14) |
336 | if ntool==1 or ntool==2:break |
337 | if '3' in nhiem_vu: |
338 | listfollow = tds.get_job('tiktok_follow') |
339 | if listfollow == False: |
340 | print(red+'Không Get Được Nhiệm Vụ Follow ', end = '\r');sleep(2); print(' ', end = '\r') |
341 | elif 'error' in listfollow.text: |
342 | if listfollow.json()['error'] == 'Thao tác quá nhanh vui lòng chậm lại': |
343 | coun = listfollow.json()['countdown'] |
344 | print(f'{red}Đang Get Nhiệm Vụ Follow, COUNTDOWN: {str(round(coun, 3))} ', end = '\r'); sleep(2); print(' ', end = '\r') |
345 | elif listfollow.json()['error'] == 'Vui lòng ấn NHẬN TẤT CẢ rồi sau đó tiếp tục làm nhiệm vụ để tránh lỗi!': |
346 | nhan = tds.nhan_xu('TIKTOK_FOLLOW_API', 'TIKTOK_FOLLOW') |
347 | else: |
348 | print(red+listfollow.json()['error'] , end ='\r');sleep(2); print(' ', end = '\r') |
349 | else: |
350 | try: |
351 | listfollow = listfollow.json()['data'] |
352 | except: |
353 | print(red+'Hết Nhiệm Vụ Follow ', end = '\r');sleep(2); print(' ', end = '\r') |
354 | continue |
355 | if len(listfollow) == 0: |
356 | print(red+'Hết Nhiệm Vụ Follow ', end = '\r');sleep(2); print(' ', end = '\r') |
357 | else: |
358 | print(f'{luc}Tìm Thấy {vang}{len(listfollow)} {luc}Nhiệm Vụ Follow ', end = '\r');sleep(2); print(' ', end = '\r') |
359 | for i in listfollow: |
360 | id = i['id'] |
361 | uid = id.split('_')[0] |
362 | link = i['link'] |
363 | que = i['uniqueID'] |
364 | if may == 'mb': |
365 | chuyen(f'tiktoknow://user/profile?user_id={uid}', may) |
366 | else: |
367 | chuyen(f'https://now.tiktok.com/@{que}', may) |
368 | cache = tds.cache(id, 'TIKTOK_FOLLOW_CACHE') |
369 | if cache != True: |
370 | tg=datetime.now().strftime('%H:%M:%S') |
371 | hien = f'{vang}[{red}X{vang}] {red}| {lam}{tg} {red}| {vang}FOLLOW_TIKTOK_NOW {red}| {trang}{id} {red}|'; print(hien, end = '\r');sleep(1); print(' ', end = '\r') |
372 | else: |
373 | dem+=1 |
374 | tg=datetime.now().strftime('%H:%M:%S') |
375 | print(f'{vang}[{trang}{dem}{vang}] {red}| {lam}{tg} {red}| {Colorate.Horizontal(Colors.yellow_to_red, "FOLLOW_TIKTOK_NOW")} {red}| {trang}{id} {red}|') |
376 | delay(dl) |
377 | if dem % nv_nhan == 0: |
378 | nhan = tds.nhan_xu('TIKTOK_FOLLOW_API', 'TIKTOK_FOLLOW') |
379 | if nhan == 0: |
380 | print(luc+'Nhận Xu Thất Bại Acc Tiktok Của Bạn Ổn Chứ ') |
381 | print(f'{thanh_xau}{luc}Nhập {red}[{vang}1{red}] {luc}Để Thay Nhiệm Vụ ') |
382 | print(f'{thanh_xau}{luc}Nhập {red}[{vang}2{red}] {luc}Thay Acc Tiktok ') |
383 | print(f'{thanh_xau}{luc}Nhấn {red}[{vang}Enter{red}] {luc}Để Tiếp Tục') |
384 | chon=input(f'{thanh_xau}{luc}Nhập {trang}===>: {vang}') |
385 | if chon == '1': |
386 | ntool=2 |
387 | break |
388 | elif chon =='2': |
389 | ntool = 1 |
390 | break |
391 | bongoc(14) |
392 | main() |