This repository was archived by the owner on Aug 11, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadder.py
More file actions
85 lines (69 loc) · 2.7 KB
/
Copy pathadder.py
File metadata and controls
85 lines (69 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import configparser
import json
import random
import subprocess
from common.session import SessionManager
from common.group_add import Adder
import os
import sys
import threading
import time
config = configparser.ConfigParser()
config.read('config.ini')
DELAY = float(config['SETTINGS']['DELAY'])
TARGET_URL = config['SETTINGS']['TARGET_URL']
IS_GROUP = config['SETTINGS']['ISGROUP']
BY_USERNAME = config['SETTINGS']['USERNAME_ADD']
RESTART = int(config['SETTINGS']['RESTART']) * 60
SCRIPT_PATH = os.path.realpath(__file__)
def restart_program():
time.sleep(RESTART)
subprocess.run(f'python "{SCRIPT_PATH}"', shell=True)
quit()
def read_target_phones():
with open('contact.json') as f:
j = json.load(f)
return j
def list_to_generator(l):
for i in l:
yield i
def new_adder(sessions_generator, session_manager):
try:
return Adder(next(sessions_generator), TARGET_URL, session_manager)
except StopIteration:
return None
def add_phones_to_target(target_phones, sessions_generator, session_manager):
while True:
current_adder = new_adder(sessions_generator, session_manager)
if current_adder and current_adder.is_ok:
for phone in target_phones:
result = current_adder.add_user(phone)
while not result:
current_adder = new_adder(sessions_generator, session_manager)
if not current_adder:
print(f'[ADDER] NO MORE SESSIONS AVAILABLE. EXITING...')
time.sleep(2)
exit()
result = current_adder.add_user(phone)
time.sleep(random.uniform(DELAY // 2, DELAY))
break
if current_adder and current_adder.is_ok:
current_adder.stop()
def main():
print(f'[ADDER] is_group: {IS_GROUP} | add_username: {BY_USERNAME} | target: {TARGET_URL}')
target_phones_list = read_target_phones()
print(f'[ADDER] has {len(target_phones_list)} phones to add to {TARGET_URL}')
session_manager = SessionManager()
available_sessions = session_manager.sessions_cool
available_sessions_qty = len(available_sessions)
print(
f'[ADDER] has {available_sessions_qty} available cooled sessions, so can add 45 * {available_sessions_qty} = {available_sessions_qty * 45} phones')
sessions_generator = list_to_generator(available_sessions)
if RESTART:
threading.Thread(target=restart_program).start()
print(f'[ADDER] Restarting in {RESTART} minutes.')
else:
input('[ADDER] Press ENTER to continue...')
add_phones_to_target(target_phones_list, sessions_generator, session_manager)
if __name__ == '__main__':
main()