-
Notifications
You must be signed in to change notification settings - Fork 0
/
add2group.py
123 lines (109 loc) · 3.77 KB
/
add2group.py
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/env python3
from telethon.sync import TelegramClient
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.types import InputPeerEmpty, InputPeerChannel, InputPeerUser
from telethon.errors.rpcerrorlist import PeerFloodError, UserPrivacyRestrictedError
from telethon.tl.functions.channels import InviteToChannelRequest
import configparser
import os, sys
import csv
import traceback
import time
import random
re="\033[1;31m"
gr="\033[1;32m"
cy="\033[1;36m"
def banner():
print(f"""
*╔═══❖══════❖═══╗
║ DTB ║
║ Scrapers ║
║ ᕙ( ͡° ͜ʖ ͡°)ᕗ ║
*╚═══❖══════❖═══╝
""")
cpass = configparser.RawConfigParser()
cpass.read('config.data')
try:
api_id = cpass['cred']['id']
api_hash = cpass['cred']['hash']
phone = cpass['cred']['phone']
client = TelegramClient(phone, api_id, api_hash)
except KeyError:
os.system('clear')
banner()
print(re+"[!] əvvəlcə python3 setup.py başladın !!\n")
sys.exit(1)
client.connect()
if not client.is_user_authorized():
client.send_code_request(phone)
os.system('clear')
banner()
client.sign_in(phone, input(gr+'[+] Kodu daxil edin: '+re))
os.system('clear')
banner()
input_file = sys.argv[1]
users = []
with open(input_file, encoding='UTF-8') as f:
rows = csv.reader(f,delimiter=",",lineterminator="\n")
next(rows, None)
for row in rows:
user = {}
user['username'] = row[0]
user['id'] = int(row[1])
user['access_hash'] = int(row[2])
user['name'] = row[3]
users.append(user)
chats = []
last_date = None
chunk_size = 200
groups=[]
result = client(GetDialogsRequest(
offset_date=last_date,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=chunk_size,
hash = 0
))
chats.extend(result.chats)
for chat in chats:
try:
if chat.megagroup== True:
groups.append(chat)
except:
continue
i=0
for group in groups:
print(gr+'['+cy+str(i)+gr+']'+cy+' - '+group.title)
i+=1
print(gr+'[+] Üzvləri əlavə etmək üçün bir qrup seçin')
g_index = input(gr+"[+] Qrup nömrəsini yazın : "+re)
target_group=groups[int(g_index)]
target_group_entity = InputPeerChannel(target_group.id,target_group.access_hash)
print(gr+"[1] istifadəçi tərəfindən üzv əlavə edin ID\n[2] istifadəçi adı ilə üzv əlavə edin ")
mode = int(input(gr+"Bura 1 yazın : "+re))
n = 0
for user in users:
n += 1
if n % 50 == 0:
time.sleep(1)
try:
print ("Əlavə olunur {}".format(user['id']))
if mode == 1:
if user['username'] == "":
continue
user_to_add = client.get_input_entity(user['username'])
elif mode == 2:
user_to_add = InputPeerUser(user['id'], user['access_hash'])
else:
sys.exit(re+"[!] Yanlış rejim seçildi. Zəhmət olmasa bir daha cəhd edin.")
client(InviteToChannelRequest(target_group_entity,[user_to_add]))
print(gr+"[+] Spam olmaması üçün 5-10 saniyə gözləyirəm...")
time.sleep(random.randrange(5, 10))
except PeerFloodError:
print(re+"[!] Telegramnan Spam Flood Xətası alərıq zəhmət olmasa başka profillə yenidən cəhd edin \n[!] Script dayandırıldı. \n[!] Bu bizim səhvimiz deyil Telegram tərəfindən bloklanmısınız.")
except UserPrivacyRestrictedError:
print(re+"[!] İstifadəçinin məxfilik parametrləri bunu etməyə imkan vermir. Bu istifadəçini keçdim.")
except:
traceback.print_exc()
print(re+"[!] Gözlənilməz Xəta. Zəhmət olmasa ekran şəkli çəkib onu RoBotlarim Support qrupuna göndərin.")
continue