Upload 4 files

#16
by deleted - opened
Files changed (4) hide show
  1. An_Wb.py +69 -0
  2. Arsein.py +1514 -0
  3. app.py +67 -79
  4. requirements.txt +14 -2
An_Wb.py ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class SetClines:
2
+ PWA = {
3
+ "app_name":"Main",
4
+ "app_version":"1.2.1",
5
+ "platform":"PWA",
6
+ "package":"m.rubika.ir"
7
+ }
8
+ pwa = {"app_name":"Main","app_version":"1.2.1","package":"m.rubika.ir","platform":"PWA"}
9
+
10
+ web = {
11
+ "app_name" : "Main",
12
+ "app_version" : "4.0.7",
13
+ "platform" : "Web",
14
+ "package" : "web.rubika.ir",
15
+ "lang_code" : "fa"
16
+ }
17
+
18
+ android = {
19
+ "app_name":"Main",
20
+ "app_version":"2.9.5",
21
+ "platform":"Android",
22
+ "package":"ir.resaneh1.iptv",
23
+ "lang_code":"fa"
24
+ }
25
+
26
+
27
+ class Server:
28
+ socket = [
29
+ "wss://jsocket3.iranlms.ir:80",
30
+ "wss://jsocket5.iranlms.ir:80",
31
+ "wss://msocket1.iranlms.ir:80"
32
+ ]
33
+ matnadress = [
34
+ 'https://messengerg2c26.iranlms.ir',
35
+ "https://messengerg2c33.iranlms.ir",
36
+ 'https://messengerg2c22.iranlms.ir',
37
+ 'https://messengerg2c25.iranlms.ir',
38
+ 'https://messengerg2c55.iranlms.ir',
39
+ 'https://messengerg2c57.iranlms.ir',
40
+ 'https://messengerg2c15.iranlms.ir',
41
+ 'https://messengerg2c16.iranlms.ir',
42
+ 'https://messengerg2c46.iranlms.ir' ,
43
+ 'https://messengerg2c39.iranlms.ir',
44
+ 'https://messengerg2c40.iranlms.ir',
45
+ 'https://messengerg2c41.iranlms.ir',
46
+ 'https://messengerg2c6.iranlms.ir',
47
+ 'https://messengerg2c7.iranlms.ir',
48
+ 'https://messengerg2c63.iranlms.ir',
49
+ 'https://messengerg2c31.iranlms.ir',
50
+ 'https://messengerg2c3.iranlms.ir',
51
+ "https://messengerg2c96.iranlms.ir",
52
+ "https://messengerg2c92.iranlms.ir",
53
+ "https://messengerg2c32.iranlms.ir",
54
+ "https://messengerg2c103.iranlms.ir",
55
+ "https://messengerg2c115.iranlms.ir",
56
+ "https://messengerg2c46.iranlms.ir"
57
+ ]
58
+
59
+
60
+ filesadress = [
61
+ 'https://messengerg2c26.iranlms.ir'
62
+ 'https://messengerg2c39.iranlms.ir',
63
+ 'https://messengerg2c7.iranlms.ir',
64
+ 'https://messengerg2c17.iranlms.ir',
65
+ 'https://messengerg2c46.iranlms.ir'
66
+ ]
67
+
68
+
69
+
Arsein.py ADDED
@@ -0,0 +1,1514 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from requests import post,get
2
+ import datetime
3
+ import urllib
4
+ from urllib import request,parse
5
+ from libraryArsein.encryption import encryption
6
+ from An_Wb import SetClines,Server
7
+ from re import findall
8
+ from pathlib import Path
9
+ from random import randint, choice
10
+ from json import loads, dumps
11
+ from socket import (gaierror,)
12
+ from json.decoder import (JSONDecodeError,)
13
+ mrghost = "mrghost"
14
+ infocode = "robiraun | روبیران \n درحال راه اندازی لطفا صبور باشید \n \n ....................................................................."
15
+ chop = f"creator {mrghost} \n {infocode}"
16
+ matnadress = ['https://messengerg2c26.iranlms.ir',"https://messengerg2c33.iranlms.ir",'https://messengerg2c22.iranlms.ir','https://messengerg2c25.iranlms.ir','https://messengerg2c55.iranlms.ir','https://messengerg2c57.iranlms.ir','https://messengerg2c15.iranlms.ir','https://messengerg2c16.iranlms.ir','https://messengerg2c46.iranlms.ir' ,'https://messengerg2c39.iranlms.ir','https://messengerg2c40.iranlms.ir','https://messengerg2c41.iranlms.ir','https://messengerg2c6.iranlms.ir','https://messengerg2c7.iranlms.ir','https://messengerg2c63.iranlms.ir','https://messengerg2c31.iranlms.ir','https://messengerg2c3.iranlms.ir']
17
+
18
+
19
+ filesadress = ['https://messengerg2c26.iranlms.ir''https://messengerg2c39.iranlms.ir','https://messengerg2c7.iranlms.ir','https://messengerg2c17.iranlms.ir','https://messengerg2c46.iranlms.ir']
20
+
21
+ pwa = {"app_name":"Main","app_version":"1.2.1","package":"m.rubika.ir","platform":"PWA"}
22
+
23
+ class Robot_Rubika:
24
+ def __init__(self, Sh_account):
25
+ self.Auth = Sh_account
26
+ self.prinet = chop
27
+ self.enc = encryption(Sh_account)
28
+ print(chop)
29
+
30
+ def _getURL():
31
+ return choice(Server.matnadress)
32
+
33
+ def _SendFile():
34
+ return choice(Server.filesadress)
35
+
36
+ def socket():
37
+ return choice(Server.socket)
38
+
39
+
40
+ def registerDevice(self, Sh_account):
41
+ inData = {"method":"registerDevice","input":{"app_version":"WB_4.1.2","device_hash":"0501110712007200125373640870428014153736","device_model":"robiraun-library","lang_code":"fa","system_version":"Linux","token":" ","token_type":"Web"},"client": SetClines.web}
42
+ while 1:
43
+ try:
44
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
45
+ except:continue
46
+ def sendMessage(self, chat_id,text,metadata=[],message_id=None):
47
+ inData = {
48
+ "method":"sendMessage",
49
+ "input":{
50
+ "object_guid":chat_id,
51
+ "rnd":f"{randint(100000,999999999)}",
52
+ "text":text,
53
+ "reply_to_message_id":message_id
54
+ },
55
+ "client": SetClines.web
56
+ }
57
+ if metadata != [] : inData["input"]["metadata"] = {"meta_data_parts":metadata}
58
+
59
+ while 1:
60
+ try:
61
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
62
+ break
63
+ except: continue
64
+
65
+
66
+ def editMessage(self, gap_guid, newText, message_id):
67
+ inData = {
68
+ "method":"editMessage",
69
+ "input":{
70
+ "message_id":message_id,
71
+ "object_guid":gap_guid,
72
+ "text":newText
73
+ },
74
+ "client": SetClines.web
75
+ }
76
+
77
+ while 1:
78
+ try:
79
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
80
+ break
81
+ except: continue
82
+
83
+ def getChatAds(self):
84
+ time_stamp = str(round(datetime.datetime.today().timestamp()) - 200)
85
+ inData = {"method":"getChatAds","input":{"state":time_stamp},"client": SetClines.web}
86
+ while 1:
87
+ try:
88
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get('chat_ads')
89
+ except:continue
90
+ def sendCode(self,phone_number):
91
+ inData = {"method":"sendCode","input":{"phone_number":f"98{phone_number[1:]}","send_type":"Internal"},"client":SetClines.web}
92
+ while 1:
93
+ try:
94
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
95
+ except:continue
96
+
97
+ def signIn(self, phone_number,phone_code_hash,phone_code):
98
+ inData = {"method":"signIn","input":{"phone_number":f"98{phone_number[1:]}","phone_code_hash":phone_code_hash,"phone_code":phone_code},"client":SetClines.web}
99
+ while 1:
100
+ try:
101
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
102
+ except:continue
103
+
104
+ def addFolder(self, name):
105
+ inData = {"method":"addFolder","input":{"is_add_to_top":True,"name":name},"client":SetClines.android}
106
+ while True:
107
+ try:
108
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
109
+ except:continue
110
+ def leaveChannelAction(self, channel_guid):
111
+ inData = {"method":"joinChannelAction","input":{"action":"Leave","channel_guid":channel_guid},"client":SetClines.web}
112
+ while 1:
113
+ try:
114
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
115
+ except:continue
116
+ def joinChannelAction(self, channel_guid):
117
+ inData = {"method":"joinChannelAction","input":{"action":"Join","channel_guid":channel_guid},"client":SetClines.web}
118
+ while 1:
119
+ try:
120
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
121
+ except:continue
122
+ def editname(self, first_name, bio):
123
+ inData = {"method":"updateProfile","input":{"first_name":first_name,"last_name":"null","bio":bio,"updated_parameters":["first_name","last_name","bio"]},"client":SetClines.web}
124
+ while 1:
125
+ try:
126
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
127
+ except:continue
128
+
129
+ def updateUsername(self, username):
130
+ inData = {"method":"updateUsername","input":{"username":username},"client":SetClines.web}
131
+ while 1:
132
+ try:
133
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
134
+ except:continue
135
+
136
+ def getServiceInfo(self, service_guid):
137
+ inData = {"method":"getServiceInfo","input":{"service_guid":service_guid},"client":SetClines.web}
138
+ while 1:
139
+ try:
140
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
141
+ except:continue
142
+ def deleteMessages(self, chat_id, message_ids):
143
+ inData = {
144
+ "method":"deleteMessages",
145
+ "input":{
146
+ "object_guid":chat_id,
147
+ "message_ids":message_ids,
148
+ "type":"Global"
149
+ },
150
+ "client": SetClines.web
151
+ }
152
+
153
+ while 1:
154
+ try:
155
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
156
+ break
157
+ except: continue
158
+
159
+
160
+ def getMessagefilter(self, chat_id, filter_whith):
161
+ inData = {
162
+ "method":"getMessages",
163
+ "input":{
164
+ "filter_type":filter_whith,
165
+ "max_id":"NaN",
166
+ "object_guid":chat_id,
167
+ "sort":"FromMax"
168
+ },
169
+ "client": SetClines.web
170
+ }
171
+
172
+ while 1:
173
+ try:
174
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get("messages")
175
+ break
176
+ except: continue
177
+
178
+ def getMessagew(self, chat_id, min_id):
179
+ inData = {"method":"getMessagesInterval","input":{"object_guid":chat_id,"middle_message_id":min_id},"client": SetClines.web}
180
+ while 1:
181
+ try:
182
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get("messages")
183
+ except:continue
184
+ def getMessages(self, chat_id, min_id):
185
+ inData = {
186
+ "method":"getMessagesInterval",
187
+ "input":{
188
+ "object_guid":chat_id,
189
+ "middle_message_id":min_id
190
+ },
191
+ "client": SetClines.web
192
+ }
193
+
194
+ while 1:
195
+ try:
196
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get("messages")
197
+ break
198
+ except: continue
199
+
200
+
201
+ def getChats(self, start_id=None):
202
+ inData = {
203
+ "method":"getChats",
204
+ "input":{
205
+ "start_id":start_id
206
+ },
207
+ "client": SetClines.web
208
+ }
209
+
210
+ while 1:
211
+ try:
212
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get("messages")
213
+ break
214
+ except: continue
215
+
216
+ def deleteUserChat(self, user_guid, last_message):
217
+ inData = {
218
+ "method":"deleteUserChat",
219
+ "input":{
220
+ "last_deleted_message_id":last_message,
221
+ "user_guid":user_guid
222
+ },
223
+ "client": SetClines.web
224
+ }
225
+
226
+ while 1:
227
+ try:
228
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
229
+ break
230
+ except: continue
231
+
232
+ def deleteUserChat(self, user_guid):
233
+ inData = {"method":"deleteUserChat","input":{"last_deleted_message_id":"0","user_guid":user_guid},"client": SetClines.android}
234
+ while 1:
235
+ try:
236
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
237
+ except:continue
238
+ def getContacts(self, user_guid):
239
+ inData = {"method":"getContacts","input":{"start_id":user_guid},"client": SetClines.web}
240
+ while 1:
241
+ try:
242
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
243
+ except:continue
244
+ def getInfoByUsername(self, username):
245
+ inData = {
246
+ "method":"getObjectByUsername",
247
+ "input":{
248
+ "username":username
249
+ },
250
+ "client": SetClines.web
251
+ }
252
+
253
+ while 1:
254
+ try:
255
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
256
+ break
257
+ except: continue
258
+
259
+ def banGroupMember(self, chat_id, user_id):
260
+ inData = {
261
+ "method":"banGroupMember",
262
+ "input":{
263
+ "group_guid": chat_id,
264
+ "member_guid": user_id,
265
+ "action":"Set"
266
+ },
267
+ "client": SetClines.web
268
+ }
269
+
270
+ while 1:
271
+ try:
272
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
273
+ break
274
+ except: continue
275
+
276
+ def unbanGroupMember(self, chat_id, user_id):
277
+ inData = {
278
+ "method":"banGroupMember",
279
+ "input":{
280
+ "group_guid": chat_id,
281
+ "member_guid": user_id,
282
+ "action":"Unset"
283
+ },
284
+ "client": SetClines.android
285
+ }
286
+
287
+ while 1:
288
+ try:
289
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
290
+ break
291
+ except: continue
292
+
293
+ def getGroupInfo(self, chat_id):
294
+ inData = {
295
+ "method":"getGroupInfo",
296
+ "input":{
297
+ "group_guid": chat_id
298
+ },
299
+ "client": SetClines.web
300
+ }
301
+
302
+ while 1:
303
+ try:
304
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
305
+ break
306
+ except: continue
307
+
308
+ def search(self, text):
309
+ inData = {"method":"searchGlobalObjects","input":{"search_text":text},"client": SetClines.web}
310
+ while 1:
311
+ try:
312
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
313
+ except:continue
314
+ def invite(self, chat_id, user_ids):
315
+ inData = {
316
+ "method":"addGroupMembers",
317
+ "input":{
318
+ "group_guid": chat_id,
319
+ "member_guids": user_ids
320
+ },
321
+ "client": SetClines.web
322
+ }
323
+
324
+ while 1:
325
+ try:
326
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
327
+ break
328
+ except: continue
329
+
330
+ def inviteChannel(self, chat_id, user_ids):
331
+ inData = {
332
+ "method":"addChannelMembers",
333
+ "input":{
334
+ "channel_guid": chat_id,
335
+ "member_guids": user_ids
336
+ },
337
+ "client": SetClines.web
338
+ }
339
+
340
+ while 1:
341
+ try:
342
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
343
+ break
344
+ except: continue
345
+
346
+ def getGroupAdmins(self, chat_id):
347
+ inData = {
348
+ "method":"getGroupAdminMembers",
349
+ "input":{
350
+ "group_guid":chat_id
351
+ },
352
+ "client": SetClines.android
353
+ }
354
+
355
+ while 1:
356
+ try:
357
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
358
+ break
359
+ except: continue
360
+
361
+ def getChannelInfo(self, channel_guid):
362
+ inData = {
363
+ "method":"getChannelInfo",
364
+ "input":{
365
+ "channel_guid":channel_guid
366
+ },
367
+ "client": SetClines.android
368
+ }
369
+
370
+ while 1:
371
+ try:
372
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
373
+ break
374
+ except: continue
375
+
376
+
377
+ def ADD_NumberPhone(self, first_num, last_num, numberPhone):
378
+ inData = {
379
+ "method":"addAddressBook",
380
+ "input":{
381
+ "first_name":first_num,
382
+ "last_name":last_num,
383
+ "phone":numberPhone
384
+ },
385
+ "client": SetClines.android
386
+ }
387
+
388
+ while 1:
389
+ try:
390
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
391
+ break
392
+ except: continue
393
+
394
+
395
+
396
+ def getMessagesInfo(self, chat_id, message_ids):
397
+ inData = {
398
+ "method":"getMessagesByID",
399
+ "input":{
400
+ "object_guid": chat_id,
401
+ "message_ids": message_ids
402
+ },
403
+ "client": SetClines.web
404
+ }
405
+
406
+ while 1:
407
+ try:
408
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get('messages')
409
+ break
410
+ except: continue
411
+
412
+ def getMessages_info_android(self, chat_id, message_ids):
413
+ inData = {
414
+ "method":"getMessagesByID",
415
+ "input":{
416
+ "message_ids": message_ids,
417
+ "object_guid": chat_id
418
+ },
419
+ "client": SetClines.android
420
+ }
421
+
422
+ while 1:
423
+ try:
424
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get("messages")
425
+ break
426
+ except: continue
427
+
428
+
429
+ def setMembersAccess(self, chat_id, access_list):
430
+ inData = {
431
+ "method":"setGroupDefaultAccess",
432
+ "input":{
433
+ "access_list": access_list,
434
+ "group_guid": chat_id
435
+ },
436
+ "client": SetClines.android
437
+ }
438
+
439
+ while 1:
440
+ try:
441
+ return loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read())
442
+ break
443
+ except: continue
444
+
445
+ def getGroupMembers(self, chat_id, start_id=None):
446
+ inData = {
447
+ "method":"getGroupAllMembers",
448
+ "input":{
449
+ "group_guid": chat_id,
450
+ "start_id": start_id
451
+ },
452
+ "client": SetClines.web
453
+ }
454
+
455
+ while 1:
456
+ try:
457
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
458
+ break
459
+ except: continue
460
+
461
+ def getGroupLink(self, chat_id):
462
+ inData = {
463
+ "method":"getGroupLink",
464
+ "input":{
465
+ "group_guid":chat_id
466
+ },
467
+ "client": SetClines.web
468
+ }
469
+
470
+ while 1:
471
+ try:
472
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get("join_link")
473
+ break
474
+ except: continue
475
+
476
+ def changeGroupLink(self, chat_id):
477
+ inData = {
478
+ "method":"getGroupLink",
479
+ "input":{
480
+ "group_guid": chat_id
481
+ },
482
+ "client": SetClines.android
483
+ }
484
+
485
+ while 1:
486
+ try:
487
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get("join_link")
488
+ break
489
+ except: continue
490
+
491
+ def setGroupTimer(self, chat_id, time):
492
+ inData = {
493
+ "method":"editGroupInfo",
494
+ "input":{
495
+ "group_guid": chat_id,
496
+ "slow_mode": time,
497
+ "updated_parameters":["slow_mode"]
498
+ },
499
+ "client": SetClines.android
500
+ }
501
+
502
+ while 1:
503
+ try:
504
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
505
+ break
506
+ except: continue
507
+
508
+ def setGroupAdmin(self, chat_id, user_id):
509
+ inData = {
510
+ "method":"setGroupAdmin",
511
+ "input":{
512
+ "group_guid": chat_id,
513
+ "access_list":["PinMessages","DeleteGlobalAllMessages","BanMember","SetMemberAccess"],
514
+ "action": "SetAdmin",
515
+ "member_guid": user_id
516
+ },
517
+ "client": SetClines.android
518
+ }
519
+
520
+ while 1:
521
+ try:
522
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
523
+ break
524
+ except: continue
525
+
526
+ def deleteGroupAdmin(self,c,user_id):
527
+ inData = {
528
+ "method":"setGroupAdmin",
529
+ "input":{
530
+ "group_guid": c,
531
+ "action": "UnsetAdmin",
532
+ "member_guid": user_id
533
+ },
534
+ "client": SetClines.android
535
+ }
536
+
537
+ while 1:
538
+ try:
539
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
540
+ break
541
+ except: continue
542
+
543
+ def setChannelAdmin(self, chat_id, user_id, access_list=[]):
544
+ inData = {
545
+ "method":"setGroupAdmin",
546
+ "input":{
547
+ "group_guid": chat_id,
548
+ "access_list": access_list,
549
+ "action": "SetAdmin",
550
+ "member_guid": user_id
551
+ },
552
+ "client": SetClines.android
553
+ }
554
+
555
+ while 1:
556
+ try:
557
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
558
+ break
559
+ except: continue
560
+
561
+ def getStickersByEmoji(self,emojee):
562
+ inData = {
563
+ "method":"getStickersByEmoji",
564
+ "input":{
565
+ "emoji_character": emojee,
566
+ "suggest_by": "All"
567
+ },
568
+ "client": SetClines.web
569
+ }
570
+
571
+ while 1:
572
+ try:
573
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
574
+ break
575
+ except: continue
576
+
577
+ def setActionChatun(self,guid):
578
+ inData = {
579
+ "method":"setActionChat",
580
+ "input":{
581
+ "action": "Unmute",
582
+ "object_guid": guid
583
+ },
584
+ "client": SetClines.android
585
+ }
586
+
587
+ while 1:
588
+ try:
589
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
590
+ break
591
+ except: continue
592
+
593
+ def setActionChatmut(self,guid):
594
+ inData = {
595
+ "method":"setActionChat",
596
+ "input":{
597
+ "action": "Mute",
598
+ "object_guid": guid
599
+ },
600
+ "client": SetClines.android
601
+ }
602
+
603
+ while 1:
604
+ try:
605
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
606
+ break
607
+ except: continue
608
+
609
+ def sendPoll(self,guid,SOAL,LIST):
610
+ inData = {
611
+ "method":"createPoll",
612
+ "input":{
613
+ "allows_multiple_answers": "false",
614
+ "is_anonymous": "true",
615
+ "object_guid": guid,
616
+ "options":LIST,
617
+ "question":SOAL,
618
+ "rnd":f"{randint(100000,999999999)}",
619
+ "type":"Regular"
620
+ },
621
+ "client": SetClines.android
622
+ }
623
+
624
+ while 1:
625
+ try:
626
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
627
+ break
628
+ except: continue
629
+
630
+ def getLinkFromAppUrl(self, app_url):
631
+ inData = {"method":"getLinkFromAppUrl","input":{"app_url":app_url},"client":SetClines.android}
632
+ while 1:
633
+ try:
634
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get("link").get("open_chat_data")
635
+ break
636
+ except:continue
637
+
638
+ def serch(self,object_guid, search_text):
639
+ inData = {"method":"searchChatMessages","input":{"object_guid":object_guid,"search_text":search_text,"type":"Text"},"client":SetClines.android}
640
+ while 1:
641
+ try:
642
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get("message_ids")[:5]
643
+ break
644
+ except:continue
645
+
646
+
647
+ def checkUserUsername(self, username):
648
+ inData = {"method":"checkUserUsername","input":{"username":username},"client": SetClines.web}
649
+ while 1:
650
+ try:
651
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
652
+ break
653
+ except:continue
654
+
655
+ def botget(self, bot_guid):
656
+ inData = {"method":"getBotInfo","input":{"bot_guid":bot_guid},"client": SetClines.web}
657
+ while 1:
658
+ try:
659
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
660
+ break
661
+ except:continue
662
+
663
+ def forwardMessages(self, From, message_ids, to):
664
+ inData = {
665
+ "method":"forwardMessages",
666
+ "input":{
667
+ "from_object_guid": From,
668
+ "message_ids": message_ids,
669
+ "rnd": f"{randint(100000,999999999)}",
670
+ "to_object_guid": to
671
+ },
672
+ "client": SetClines.android
673
+ }
674
+
675
+ while 1:
676
+ try:
677
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
678
+ break
679
+ except: continue
680
+
681
+ def chatGroupvisit(self,guid,visiblemsg):
682
+ inData = {
683
+ "method":"editGroupInfo",
684
+ "input":{
685
+ "chat_history_for_new_members": "Visible",
686
+ "group_guid": guid,
687
+ "updated_parameters": visiblemsg
688
+ },
689
+ "client": SetClines.android
690
+ }
691
+
692
+ while 1:
693
+ try:
694
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
695
+ break
696
+ except: continue
697
+
698
+ def chatGrouphidden(self,guid,hiddenmsg):
699
+ inData = {
700
+ "method":"editGroupInfo",
701
+ "input":{
702
+ "chat_history_for_new_members": "Hidden",
703
+ "group_guid": guid,
704
+ "updated_parameters": hiddenmsg
705
+ },
706
+ "client": SetClines.android
707
+ }
708
+
709
+ while 1:
710
+ try:
711
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
712
+ break
713
+ except: continue
714
+
715
+
716
+ def pin(self, chat_id, message_id):
717
+ inData = {
718
+ "method":"setPinMessage",
719
+ "input":{
720
+ "action":"Pin",
721
+ "message_id": message_id,
722
+ "object_guid": chat_id
723
+ },
724
+ "client": SetClines.android
725
+ }
726
+
727
+ while 1:
728
+ try:
729
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
730
+ break
731
+ except: continue
732
+
733
+ def unpin(self, chat_id, message_id):
734
+ inData = {
735
+ "method":"setPinMessage",
736
+ "input":{
737
+ "action":"Unpin",
738
+ "message_id": message_id,
739
+ "object_guid": chat_id
740
+ },
741
+ "client": SetClines.android
742
+ }
743
+
744
+ while 1:
745
+ try:
746
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
747
+ break
748
+ except: continue
749
+
750
+ def logout(self):
751
+ inData = {
752
+ "method":"logout",
753
+ "input":{},
754
+ "client": SetClines.android
755
+ }
756
+
757
+ while 1:
758
+ try:
759
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
760
+ break
761
+ except: continue
762
+
763
+ def joinGroup(self, link):
764
+ hashLink = link.split("/")[-1]
765
+ inData = {
766
+ "method":"joinGroup",
767
+ "input":{
768
+ "hash_link": hashLink
769
+ },
770
+ "client": SetClines.android
771
+ }
772
+
773
+ while 1:
774
+ try:
775
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
776
+ break
777
+ except: continue
778
+
779
+ def joinChannel(self, link):
780
+ hashLink = link.split("/")[-1]
781
+ inData = {
782
+ "method":"joinChannelByLink",
783
+ "input":{
784
+ "hash_link": hashLink
785
+ },
786
+ "client": SetClines.android
787
+ }
788
+
789
+ while 1:
790
+ try:
791
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
792
+ break
793
+ except: continue
794
+
795
+ def deleteChatHistory(self, chat_id, msg_id):
796
+ inData = {
797
+ "method":"deleteChatHistory",
798
+ "input":{
799
+ "last_message_id": msg_id,
800
+ "object_guid": chat_id
801
+ },
802
+ "client": SetClines.android
803
+ }
804
+
805
+ while 1:
806
+ try:
807
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
808
+ break
809
+ except: continue
810
+
811
+ def leaveGroup(self,chat_id):
812
+ inData = {
813
+ "method":"leaveGroup",
814
+ "input":{
815
+ "group_guid": chat_id
816
+ },
817
+ "client": SetClines.android
818
+ }
819
+
820
+ while 1:
821
+ try:
822
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
823
+ break
824
+ except: continue
825
+
826
+ def editnameGroup(self,groupgu,namegp,biogp=None):
827
+ inData = {
828
+ "method":"editGroupInfo",
829
+ "input":{
830
+ "description": biogp,
831
+ "group_guid": groupgu,
832
+ "title":namegp,
833
+ "updated_parameters":["title","description"]
834
+ },
835
+ "client": SetClines.android
836
+ }
837
+
838
+ while 1:
839
+ try:
840
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
841
+ break
842
+ except: continue
843
+
844
+ def editbioGroup(self,groupgu,biogp,namegp=None):
845
+ inData = {
846
+ "method":"editGroupInfo",
847
+ "input":{
848
+ "description": biogp,
849
+ "group_guid": groupgu,
850
+ "title":namegp,
851
+ "updated_parameters":["title","description"]
852
+ },
853
+ "client": SetClines.android
854
+ }
855
+
856
+ while 1:
857
+ try:
858
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
859
+ break
860
+ except: continue
861
+
862
+ def joinChannelByID(self, chat_id):
863
+ inData = {
864
+ "method":"joinChannelAction",
865
+ "input":{
866
+ "action": "Join",
867
+ "channel_guid": chat_id
868
+ },
869
+ "client": SetClines.android
870
+ }
871
+
872
+ while 1:
873
+ try:
874
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
875
+ break
876
+ except: continue
877
+
878
+ def LeaveChannel(self,chat_id):
879
+ inData = {
880
+ "method":"joinChannelAction",
881
+ "input":{
882
+ "action": "Leave",
883
+ "channel_guid": chat_id
884
+ },
885
+ "client": SetClines.android
886
+ }
887
+
888
+ while 1:
889
+ try:
890
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
891
+ break
892
+ except: continue
893
+
894
+ def block(self, chat_id):
895
+ inData = {
896
+ "method":"setBlockUser",
897
+ "input":{
898
+ "action": "Block",
899
+ "user_guid": chat_id
900
+ },
901
+ "client": SetClines.android
902
+ }
903
+
904
+ while 1:
905
+ try:
906
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
907
+ break
908
+ except: continue
909
+
910
+ def getBotInfo(self, chat_id):
911
+ inData = {
912
+ "method":"getBotInfo",
913
+ "input":{
914
+ "bot_guid":chat_id
915
+ },
916
+ "client": SetClines.web
917
+ }
918
+
919
+ while 1:
920
+ try:
921
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
922
+ break
923
+ except: continue
924
+
925
+ def unblock(self, chat_id):
926
+ inData = {
927
+ "method":"setBlockUser",
928
+ "input":{
929
+ "action": "Unblock",
930
+ "user_guid": chat_id
931
+ },
932
+ "client": SetClines.android
933
+ }
934
+
935
+ while 1:
936
+ try:
937
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
938
+ break
939
+ except: continue
940
+
941
+ def getChannelMembers(self, channel_guid, text=None, start_id=None):
942
+ inData = {
943
+ "method":"getChannelAllMembers",
944
+ "input":{
945
+ "channel_guid":channel_guid,
946
+ "search_text":text,
947
+ "start_id":start_id,
948
+ },
949
+ "client": SetClines.android
950
+ }
951
+
952
+ while 1:
953
+ try:
954
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
955
+ break
956
+ except: continue
957
+
958
+ def startVoiceChat(self, chat_id):
959
+ inData = {
960
+ "method":"createGroupVoiceChat",
961
+ "input":{
962
+ "chat_guid":chat_id
963
+ },
964
+ "client": SetClines.web
965
+ }
966
+
967
+ while 1:
968
+ try:
969
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
970
+ break
971
+ except: continue
972
+
973
+ def editVoiceChat(self,chat_id,voice_chat_id, title):
974
+ inData = {
975
+ "method":"setGroupVoiceChatSetting",
976
+ "input":{
977
+ "chat_guid":chat_id,
978
+ "voice_chat_id" : voice_chat_id,
979
+ "title" : title ,
980
+ "updated_parameters": ["title"]
981
+ },
982
+ "client": SetClines.web
983
+ }
984
+
985
+ while 1:
986
+ try:
987
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
988
+ break
989
+ except: continue
990
+
991
+ def getUserInfo(self, chat_id):
992
+ inData = {
993
+ "method":"getUserInfo",
994
+ "input":{
995
+ "user_guid":chat_id
996
+ },
997
+ "client": SetClines.web
998
+ }
999
+
1000
+ while 1:
1001
+ try:
1002
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1003
+ break
1004
+ except: continue
1005
+
1006
+
1007
+ def finishVoiceChat(self, chat_id, voice_chat_id):
1008
+ inData = {
1009
+ "method":"discardGroupVoiceChat",
1010
+ "input":{
1011
+ "chat_guid":chat_id,
1012
+ "voice_chat_id" : voice_chat_id
1013
+ },
1014
+ "client": SetClines.web
1015
+ }
1016
+
1017
+ while 1:
1018
+ try:
1019
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1020
+ break
1021
+ except: continue
1022
+
1023
+
1024
+ def getChatsUpdate(self):
1025
+ time_stamp = str(round(datetime.datetime.today().timestamp()) - 200)
1026
+ inData = {
1027
+ "method":"getChatsUpdates",
1028
+ "input":{
1029
+ "state":time_stamp,
1030
+ },
1031
+ "client": SetClines.web
1032
+ }
1033
+
1034
+ while 1:
1035
+ try:
1036
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data").get("chats")
1037
+ break
1038
+ except: continue
1039
+
1040
+ def getMessagesChats(self, start_id=None):
1041
+ time_stamp = str(round(datetime.datetime.today().timestamp()) - 200)
1042
+ inData = {
1043
+ "method":"getChats",
1044
+ "input":{
1045
+ "start_id":start_id
1046
+ },
1047
+ "client": SetClines.web
1048
+ }
1049
+
1050
+ while 1:
1051
+ try:
1052
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get('data').get('chats')
1053
+ break
1054
+ except: continue
1055
+
1056
+ def see_GH_whith_Linkes(self,link_gh):
1057
+ inData = {
1058
+ "method":"groupPreviewByJoinLink",
1059
+ "input":{
1060
+ "hash_link": link_gh
1061
+ },
1062
+ "client": SetClines.web
1063
+ }
1064
+
1065
+ while 1:
1066
+ try:
1067
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data")
1068
+ break
1069
+ except: continue
1070
+
1071
+ def _requestSendFile(self, file):
1072
+ inData = {
1073
+ "method":"requestSendFile",
1074
+ "input":{
1075
+ "file_name": str(file.split("/")[-1]),
1076
+ "mime": file.split(".")[-1],
1077
+ "size": Path(file).stat().st_size
1078
+ },
1079
+ "client": SetClines.web
1080
+ }
1081
+
1082
+ while 1:
1083
+ try:
1084
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._SendFile(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data")
1085
+ break
1086
+ except: continue
1087
+
1088
+ def _uploadFile(self, file):
1089
+ if not "http" in file:
1090
+ REQUES = Robot_Rubika._requestSendFile(self, file)
1091
+ bytef = open(file,"rb").read()
1092
+
1093
+ hash_send = REQUES["access_hash_send"]
1094
+ file_id = REQUES["id"]
1095
+ url = REQUES["upload_url"]
1096
+
1097
+ header = {
1098
+ 'auth':self.Auth,
1099
+ 'Host':url.replace("https://","").replace("/UploadFile.ashx",""),
1100
+ 'chunk-size':str(Path(file).stat().st_size),
1101
+ 'file-id':str(file_id),
1102
+ 'access-hash-send':hash_send,
1103
+ "content-type": "application/octet-stream",
1104
+ "content-length": str(Path(file).stat().st_size),
1105
+ "accept-encoding": "gzip",
1106
+ "user-agent": "okhttp/3.12.1"
1107
+ }
1108
+
1109
+ if len(bytef) <= 131072:
1110
+ header["part-number"], header["total-part"] = "1","1"
1111
+
1112
+ while True:
1113
+ try:
1114
+ j = post(data=bytef,url=url,headers=header).text
1115
+ j = loads(j)['data']['access_hash_rec']
1116
+ break
1117
+ except Exception as e:
1118
+ continue
1119
+
1120
+ return [REQUES, j]
1121
+ else:
1122
+ t = round(len(bytef) / 131072 + 1)
1123
+ for i in range(1,t+1):
1124
+ if i != t:
1125
+ k = i - 1
1126
+ k = k * 131072
1127
+ while True:
1128
+ try:
1129
+ header["chunk-size"], header["part-number"], header["total-part"] = "131072", str(i),str(t)
1130
+ o = post(data=bytef[k:k + 131072],url=url,headers=header).text
1131
+ o = loads(o)['data']
1132
+ break
1133
+ except Exception as e:
1134
+ continue
1135
+ else:
1136
+ k = i - 1
1137
+ k = k * 131072
1138
+ while True:
1139
+ try:
1140
+ header["chunk-size"], header["part-number"], header["total-part"] = str(len(bytef[k:])), str(i),str(t)
1141
+ p = post(data=bytef[k:],url=url,headers=header).text
1142
+ p = loads(p)['data']['access_hash_rec']
1143
+ break
1144
+ except Exception as e:
1145
+ continue
1146
+ return [REQUES, p]
1147
+ else:
1148
+ REQUES = {
1149
+ "method":"requestSendFile",
1150
+ "input":{
1151
+ "file_name": file.split("/")[-1],
1152
+ "mime": file.split(".")[-1],
1153
+ "size": len(get(file).content)
1154
+ },
1155
+ "client": SetClines.web
1156
+ }
1157
+
1158
+ while 1:
1159
+ try:
1160
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._SendFile(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc'))).get("data")
1161
+ break
1162
+ except: continue
1163
+
1164
+ hash_send = REQUES["access_hash_send"]
1165
+ file_id = REQUES["id"]
1166
+ url = REQUES["upload_url"]
1167
+ bytef = get(file).content
1168
+
1169
+ header = {
1170
+ 'auth':self.Auth,
1171
+ 'Host':url.replace("https://","").replace("/UploadFile.ashx",""),
1172
+ 'chunk-size':str(len(get(file).content)),
1173
+ 'file-id':str(file_id),
1174
+ 'access-hash-send':hash_send,
1175
+ "content-type": "application/octet-stream",
1176
+ "content-length": str(len(get(file).content)),
1177
+ "accept-encoding": "gzip",
1178
+ "user-agent": "okhttp/3.12.1"
1179
+ }
1180
+
1181
+ if len(bytef) <= 131072:
1182
+ header["part-number"], header["total-part"] = "1","1"
1183
+
1184
+ while True:
1185
+ try:
1186
+ j = post(data=bytef,url=url,headers=header).text
1187
+ j = loads(j)['data']['access_hash_rec']
1188
+ break
1189
+ except Exception as e:
1190
+ continue
1191
+
1192
+ return [REQUES, j]
1193
+ else:
1194
+ t = round(len(bytef) / 131072 + 1)
1195
+ for i in range(1,t+1):
1196
+ if i != t:
1197
+ k = i - 1
1198
+ k = k * 131072
1199
+ while True:
1200
+ try:
1201
+ header["chunk-size"], header["part-number"], header["total-part"] = "131072", str(i),str(t)
1202
+ o = post(data=bytef[k:k + 131072],url=url,headers=header).text
1203
+ o = loads(o)['data']
1204
+ break
1205
+ except Exception as e:
1206
+ continue
1207
+ else:
1208
+ k = i - 1
1209
+ k = k * 131072
1210
+ while True:
1211
+ try:
1212
+ header["chunk-size"], header["part-number"], header["total-part"] = str(len(bytef[k:])), str(i),str(t)
1213
+ p = post(data=bytef[k:],url=url,headers=header).text
1214
+ p = loads(p)['data']['access_hash_rec']
1215
+ break
1216
+ except Exception as e:
1217
+ continue
1218
+ return [REQUES, p]
1219
+
1220
+
1221
+ @staticmethod
1222
+ def _getThumbInline(image_bytes:bytes):
1223
+ import io, base64, PIL.Image
1224
+ im = PIL.Image.open(io.BytesIO(image_bytes))
1225
+ width, height = im.size
1226
+ if height > width:
1227
+ new_height = 40
1228
+ new_width = round(new_height * width / height)
1229
+ else:
1230
+ new_width = 40
1231
+ new_height = round(new_width * height / width)
1232
+ im = im.resize((new_width, new_height), PIL.Image.ANTIALIAS)
1233
+ changed_image = io.BytesIO()
1234
+ im.save(changed_image, format='PNG')
1235
+ changed_image = changed_image.getvalue()
1236
+ return base64.b64encode(changed_image)
1237
+
1238
+ @staticmethod
1239
+ def _getImageSize(image_bytes:bytes):
1240
+ import io, PIL.Image
1241
+ im = PIL.Image.open(io.BytesIO(image_bytes))
1242
+ width, height = im.size
1243
+ return [width , height]
1244
+
1245
+
1246
+
1247
+ def uploadAvatar_replay(self,myguid,files_ide):
1248
+ inData = {
1249
+ "method":"uploadAvatar",
1250
+ "input":{
1251
+ "object_guid":myguid,
1252
+ "thumbnail_file_id":files_ide,
1253
+ "main_file_id":files_ide
1254
+ },
1255
+ "client": SetClines.web
1256
+ }
1257
+
1258
+ while 1:
1259
+ try:
1260
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1261
+ break
1262
+ except: continue
1263
+
1264
+ def uploadAvatar(self,myguid,main,thumbnail=None):
1265
+ mainID = str(Robot_Rubika._uploadFile(self, main)[0]["id"])
1266
+ thumbnailID = str(Robot_Rubika._uploadFile(self, thumbnail or main)[0]["id"])
1267
+ inData = {
1268
+ "method":"uploadAvatar",
1269
+ "input":{
1270
+ "object_guid":myguid,
1271
+ "thumbnail_file_id":thumbnailID,
1272
+ "main_file_id":mainID
1273
+ },
1274
+ "client": SetClines.web
1275
+ }
1276
+
1277
+ while 1:
1278
+ try:
1279
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1280
+ break
1281
+ except: continue
1282
+
1283
+ def Devices_rubika(self):
1284
+ inData = {
1285
+ "method":"getMySessions",
1286
+ "input":{
1287
+
1288
+ },
1289
+ "client": SetClines.android
1290
+ }
1291
+
1292
+ while 1:
1293
+ try:
1294
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1295
+ break
1296
+ except: continue
1297
+
1298
+
1299
+ def sendDocument(self, chat_id, file, caption=None, message_id=None):
1300
+ uresponse = Robot_Rubika._uploadFile(self, file)
1301
+ file_id = str(uresponse[0]["id"])
1302
+ mime = file.split(".")[-1]
1303
+ dc_id = uresponse[0]["dc_id"]
1304
+ access_hash_rec = uresponse[1]
1305
+ file_name = file.split("/")[-1]
1306
+ size = str(len(get(file).content if "http" in file else open(file,"rb").read()))
1307
+
1308
+ inData = {
1309
+ "method":"sendMessage",
1310
+ "input":{
1311
+ "object_guid":chat_id,
1312
+ "reply_to_message_id":message_id,
1313
+ "rnd":f"{randint(100000,999999999)}",
1314
+ "file_inline":{
1315
+ "dc_id":str(dc_id),
1316
+ "file_id":str(file_id),
1317
+ "type":"File",
1318
+ "file_name":file_name,
1319
+ "size":size,
1320
+ "mime":mime,
1321
+ "access_hash_rec":access_hash_rec
1322
+ }
1323
+ },
1324
+ "client": SetClines.web
1325
+ }
1326
+
1327
+ if caption != None: inData["input"]["text"] = caption
1328
+
1329
+
1330
+ while 1:
1331
+ try:
1332
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._SendFile(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1333
+ break
1334
+ except: continue
1335
+
1336
+
1337
+ def sendDocument_rplay(self,chat_id,file_id,mime,dc_id,access_hash_rec,file_name,size,caption=None,message_id=None):
1338
+ inData = {
1339
+ "method":"sendMessage",
1340
+ "input":{
1341
+ "object_guid":chat_id,
1342
+ "reply_to_message_id":message_id,
1343
+ "rnd":f"{randint(100000,999999999)}",
1344
+ "file_inline":{
1345
+ "dc_id":str(dc_id),
1346
+ "file_id":str(file_id),
1347
+ "type":"File",
1348
+ "file_name":file_name,
1349
+ "size":size,
1350
+ "mime":mime,
1351
+ "access_hash_rec":access_hash_rec
1352
+ }
1353
+ },
1354
+ "client": SetClines.web
1355
+ }
1356
+
1357
+ if caption != None: inData["input"]["text"] = caption
1358
+
1359
+
1360
+ while 1:
1361
+ try:
1362
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._SendFile(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1363
+ break
1364
+ except: continue
1365
+
1366
+
1367
+
1368
+
1369
+ def sendVoice(self, chat_id, file, time, caption=None, message_id=None):
1370
+ uresponse = Robot_Rubika._uploadFile(self, file)
1371
+ file_id = str(uresponse[0]["id"])
1372
+ mime = file.split(".")[-1]
1373
+ dc_id = uresponse[0]["dc_id"]
1374
+ access_hash_rec = uresponse[1]
1375
+ file_name = file.split("/")[-1]
1376
+ size = str(len(get(file).content if "http" in file else open(file,"rb").read()))
1377
+
1378
+ inData = {
1379
+ "method":"sendMessage",
1380
+ "input":{
1381
+ "file_inline": {
1382
+ "dc_id": dc_id,
1383
+ "file_id": file_id,
1384
+ "type":"Voice",
1385
+ "file_name": file_name,
1386
+ "size": size,
1387
+ "time": time,
1388
+ "mime": mime,
1389
+ "access_hash_rec": access_hash_rec,
1390
+ },
1391
+ "object_guid":chat_id,
1392
+ "rnd":f"{randint(100000,999999999)}",
1393
+ "reply_to_message_id":message_id
1394
+ },
1395
+ "client": SetClines.web
1396
+ }
1397
+
1398
+ if caption != None: inData["input"]["text"] = caption
1399
+
1400
+
1401
+ while 1:
1402
+ try:
1403
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._SendFile(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1404
+ break
1405
+ except: continue
1406
+
1407
+
1408
+ def sendgif(self, chat_id, file, time, size=[], thumbnail=None, caption=None, message_id=None):
1409
+ uresponse = Robot_Rubika._uploadFile(self, file)
1410
+ if thumbnail == None: thumbnail = '/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAIQAABtbnRyUkdC\nIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAA\nAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlk\nZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAA\nAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAA\nAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAA\nAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3Bh\ncmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADT\nLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAw\nADEANv/bAEMAEAsMDgwKEA4NDhIREBMYKBoYFhYYMSMlHSg6Mz08OTM4N0BIXE5ARFdFNzhQbVFX\nX2JnaGc+TXF5cGR4XGVnY//bAEMBERISGBUYLxoaL2NCOEJjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj\nY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY//AABEIAFAAUAMBIgACEQEDEQH/xAAaAAADAQEB\nAQAAAAAAAAAAAAACAwUBBgQA/8QAJBAAAgICAgICAgMAAAAAAAAAAQIAAwQRBSESMRNBFSIyQmH/\nxAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/8QAGxEBAQEBAQADAAAAAAAAAAAAAAERIQIDEjH/2gAM\nAwEAAhEDEQA/ALAMMGJBhgxkcDCBiQYYMQNBhAxXlobnis5Hws8ddQCpubEU2ixAwjQYAYM2BuaD\nA0sRiqx+oCOAd6mtyVNZ0wjTr0JSx+o34wo2Yqrk6Cm/ITHzK7B0wiMGXcKk6kPJtLNuezLs899y\nU7P5/wCQCzxeT14mVgepy2NeVca9zo8O35axv3AHgwtwD1NBgaXuLsoSwdiHPoyeHIwlFRKsRqc9\nbm3UWFUc6E6fOYjHYD2ROOy67FsJYHuTV+M3r0jlLmOmaO/IMo/YbEj9g7jVu+m7EnWt8S/i1j51\nZ7HuW+PyPMgq0h8TgpldgdSxXxbUd1NLnWPuY6SrVtQ77gMpU6Mm4r30Eb7lSu1b1/YaMeIlSILt\n4jZhqvkZmQg8CBHJotxE5XONY2vqQ8nkltQgr3KfJ47aOuxIF2P31J9cvV+Z9psCr+RhopZwo7Jn\n1GMzH1Og4fja3cOx7H1JxpPk51V4TH+DFBI0TKgMSoCAAehDBlxlbpoMYra9RAMINAki3kPA6Bn1\nWX8n9pzdmWzd7ilyrEYMrTXZGWWujyCHBBkXMxiCWWUqbfnxhZ9iL2H6MLJYctifh2qr+LiVcNmX\nKU1/xM8rYKu216M9uFS9LjfqTlPYrNYVcA/caDMesWVhvsTB6ipwwGaDAmgyVP/Z\n'
1411
+ elif "." in thumbnail:thumbnail = str(Robot_Rubika._getThumbInline(open(file,"rb").read() if not "http" in file else get(file).content))
1412
+ size = str(len(get(file).content if "http" in file else open(file,"rb").read()))
1413
+ file_inline = {"file_id": uresponse[0]["id"],"mime":"mp4","dc_id": uresponse[0]["dc_id"],"access_hash_rec": uresponse[1],"file_name": file.split("/")[-1],"thumb_inline":thumbnail,"width": size[0],"height": size[1],"time":time,"size": size,"type":"Gif"}
1414
+ inData = {"method":"sendMessage","input":{"file_inline": file_inline,"object_guid": chat_id,"rnd": f"{randint(100000,999999999)}","reply_to_message_id": message_id},"client": SetClines.android}
1415
+ if caption != None: inData["input"]["text"] = caption
1416
+ while 1:
1417
+ try:
1418
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._SendFile(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1419
+ break
1420
+ except:continue
1421
+ def sendPhoto(self, chat_id, file, size=[], thumbnail=None, caption=None, message_id=None):
1422
+ uresponse = Robot_Rubika._uploadFile(self, file)
1423
+ if thumbnail == None: thumbnail = '/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAIQAABtbnRyUkdC\nIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAA\nAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlk\nZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAA\nAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAA\nAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAA\nAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3Bh\ncmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADT\nLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAw\nADEANv/bAEMAEAsMDgwKEA4NDhIREBMYKBoYFhYYMSMlHSg6Mz08OTM4N0BIXE5ARFdFNzhQbVFX\nX2JnaGc+TXF5cGR4XGVnY//bAEMBERISGBUYLxoaL2NCOEJjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj\nY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY//AABEIAFAAUAMBIgACEQEDEQH/xAAaAAADAQEB\nAQAAAAAAAAAAAAACAwUBBgQA/8QAJBAAAgICAgICAgMAAAAAAAAAAQIAAwQRBSESMRNBFSIyQmH/\nxAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/8QAGxEBAQEBAQADAAAAAAAAAAAAAAERIQIDEjH/2gAM\nAwEAAhEDEQA/ALAMMGJBhgxkcDCBiQYYMQNBhAxXlobnis5Hws8ddQCpubEU2ixAwjQYAYM2BuaD\nA0sRiqx+oCOAd6mtyVNZ0wjTr0JSx+o34wo2Yqrk6Cm/ITHzK7B0wiMGXcKk6kPJtLNuezLs899y\nU7P5/wCQCzxeT14mVgepy2NeVca9zo8O35axv3AHgwtwD1NBgaXuLsoSwdiHPoyeHIwlFRKsRqc9\nbm3UWFUc6E6fOYjHYD2ROOy67FsJYHuTV+M3r0jlLmOmaO/IMo/YbEj9g7jVu+m7EnWt8S/i1j51\nZ7HuW+PyPMgq0h8TgpldgdSxXxbUd1NLnWPuY6SrVtQ77gMpU6Mm4r30Eb7lSu1b1/YaMeIlSILt\n4jZhqvkZmQg8CBHJotxE5XONY2vqQ8nkltQgr3KfJ47aOuxIF2P31J9cvV+Z9psCr+RhopZwo7Jn\n1GMzH1Og4fja3cOx7H1JxpPk51V4TH+DFBI0TKgMSoCAAehDBlxlbpoMYra9RAMINAki3kPA6Bn1\nWX8n9pzdmWzd7ilyrEYMrTXZGWWujyCHBBkXMxiCWWUqbfnxhZ9iL2H6MLJYctifh2qr+LiVcNmX\nKU1/xM8rYKu216M9uFS9LjfqTlPYrNYVcA/caDMesWVhvsTB6ipwwGaDAmgyVP/Z\n'
1424
+ elif "." in thumbnail:thumbnail = str(Robot_Rubika._getThumbInline(open(file,"rb").read() if not "http" in file else get(file).content))
1425
+
1426
+ if size == []: size = Robot_Rubika._getImageSize(open(file,"rb").read() if not "http" in file else get(file).content)
1427
+
1428
+ file_inline = {
1429
+ "dc_id": uresponse[0]["dc_id"],
1430
+ "file_id": uresponse[0]["id"],
1431
+ "type":"Image",
1432
+ "file_name": file.split("/")[-1],
1433
+ "size": str(len(get(file).content if "http" in file else open(file,"rb").read())),
1434
+ "mime": file.split(".")[-1],
1435
+ "access_hash_rec": uresponse[1],
1436
+ "width": size[0],
1437
+ "height": size[1],
1438
+ "thumb_inline": thumbnail
1439
+ }
1440
+
1441
+ inData = {
1442
+ "method":"sendMessage",
1443
+ "input":{
1444
+ "file_inline": file_inline,
1445
+ "object_guid": chat_id,
1446
+ "rnd": f"{randint(100000,999999999)}",
1447
+ "reply_to_message_id": message_id
1448
+ },
1449
+ "client": SetClines.web
1450
+ }
1451
+ if caption != None: inData["input"]["text"] = caption
1452
+
1453
+ while 1:
1454
+ try:
1455
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._SendFile(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1456
+ break
1457
+ except: continue
1458
+
1459
+ def addGroup(self, title):
1460
+ inData = {"method":"addGroup","input":{"title":title},"client":SetClines.web}
1461
+ while 1:
1462
+ try:
1463
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1464
+ except:continue
1465
+ def getDCs():
1466
+ inData = {"method":"getDCs","input":{ },"client":SetClines.android}
1467
+ while 1:
1468
+ try:
1469
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1470
+ except:continue
1471
+ def addChannel(self, title):
1472
+ inData = {"method":"addChannel","input":{"channel_type":"Public","title":title},"client":SetClines.web}
1473
+ while 1:
1474
+ try:
1475
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._getURL(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1476
+ except:continue
1477
+ def sendMusic(self, chat_id, file, time, caption=None, message_id=None):
1478
+ uresponse = Robot_Rubika._uploadFile(self, file)
1479
+ file_id = str(uresponse[0]["id"])
1480
+ mime = file.split(".")[-1]
1481
+ dc_id = uresponse[0]["dc_id"]
1482
+ access_hash_rec = uresponse[1]
1483
+ file_name = file.split("/")[-1]
1484
+ size = str(len(get(file).content if "http" in file else open(file,"rb").read()))
1485
+
1486
+ inData = {
1487
+ "method":"sendMessage",
1488
+ "input":{
1489
+ "file_inline": {
1490
+ "dc_id": dc_id,
1491
+ "file_id": file_id,
1492
+ "type":"Music",
1493
+ "music_performer":"",
1494
+ "file_name": file_name,
1495
+ "size": size,
1496
+ "time": time,
1497
+ "mime": mime,
1498
+ "access_hash_rec": access_hash_rec,
1499
+ },
1500
+ "object_guid":chat_id,
1501
+ "rnd":f"{randint(100000,999999999)}",
1502
+ "reply_to_message_id":message_id
1503
+ },
1504
+ "client": SetClines.android
1505
+ }
1506
+
1507
+ if caption != None: inData["input"]["text"] = caption
1508
+
1509
+
1510
+ while 1:
1511
+ try:
1512
+ return loads(self.enc.decrypt(loads(request.urlopen(request.Request(Robot_Rubika._SendFile(), data=dumps({"api_version":"5","auth": self.Auth,"data_enc":self.enc.encrypt(dumps(inData))}).encode(), headers={'Content-Type': 'application/json'})).read()).get('data_enc')))
1513
+ break
1514
+ except: continue
app.py CHANGED
@@ -1,85 +1,73 @@
1
- import gradio as gr
2
- import plotly.graph_objects as go
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
- import torch
5
- from tqdm.auto import tqdm
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
- from point_e.diffusion.configs import DIFFUSION_CONFIGS, diffusion_from_config
8
- from point_e.diffusion.sampler import PointCloudSampler
9
- from point_e.models.download import load_checkpoint
10
- from point_e.models.configs import MODEL_CONFIGS, model_from_config
11
- from point_e.util.plotting import plot_point_cloud
12
 
13
- device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
14
 
15
- print('creating base model...')
16
- base_name = 'base40M-textvec'
17
- base_model = model_from_config(MODEL_CONFIGS[base_name], device)
18
- base_model.eval()
19
- base_diffusion = diffusion_from_config(DIFFUSION_CONFIGS[base_name])
20
 
21
- print('creating upsample model...')
22
- upsampler_model = model_from_config(MODEL_CONFIGS['upsample'], device)
23
- upsampler_model.eval()
24
- upsampler_diffusion = diffusion_from_config(DIFFUSION_CONFIGS['upsample'])
25
 
26
- print('downloading base checkpoint...')
27
- base_model.load_state_dict(load_checkpoint(base_name, device))
28
-
29
- print('downloading upsampler checkpoint...')
30
- upsampler_model.load_state_dict(load_checkpoint('upsample', device))
31
-
32
- sampler = PointCloudSampler(
33
- device=device,
34
- models=[base_model, upsampler_model],
35
- diffusions=[base_diffusion, upsampler_diffusion],
36
- num_points=[1024, 4096 - 1024],
37
- aux_channels=['R', 'G', 'B'],
38
- guidance_scale=[3.0, 0.0],
39
- model_kwargs_key_filter=('texts', ''), # Do not condition the upsampler at all
40
- )
41
-
42
- def inference(prompt):
43
- samples = None
44
- for x in sampler.sample_batch_progressive(batch_size=1, model_kwargs=dict(texts=[prompt])):
45
- samples = x
46
- pc = sampler.output_to_point_clouds(samples)[0]
47
- pc = sampler.output_to_point_clouds(samples)[0]
48
- colors=(238, 75, 43)
49
- fig = go.Figure(
50
- data=[
51
- go.Scatter3d(
52
- x=pc.coords[:,0], y=pc.coords[:,1], z=pc.coords[:,2],
53
- mode='markers',
54
- marker=dict(
55
- size=2,
56
- color=['rgb({},{},{})'.format(r,g,b) for r,g,b in zip(pc.channels["R"], pc.channels["G"], pc.channels["B"])],
57
- )
58
- )
59
- ],
60
- layout=dict(
61
- scene=dict(
62
- xaxis=dict(visible=False),
63
- yaxis=dict(visible=False),
64
- zaxis=dict(visible=False)
65
- )
66
- ),
67
- )
68
- return fig
69
-
70
- demo = gr.Interface(
71
- fn=inference,
72
- inputs="text",
73
- outputs=gr.Plot(),
74
- examples=[
75
- ["a red motorcycle"],
76
- ["a RED pumpkin"],
77
- ["a yellow rubber duck"]
78
- ],
79
- title="Point-E demo: text to 3D",
80
- description="""Generated 3D Point Cloiuds with [Point-E](https://github.com/openai/point-e/tree/main). This demo uses a small, worse quality text-to-3D model to produce 3D point clouds directly from text descriptions.
81
- Check out the [notebook](https://github.com/openai/point-e/blob/main/point_e/examples/text2pointcloud.ipynb).
82
- """
83
- )
84
- demo.queue(max_size=30)
85
- demo.launch(debug=True)
1
+ import time
2
+ from requests import get
3
+ from re import findall
4
+ import os
5
+ import glob
6
+ from Arsein import Robot_Rubika
7
+ import requests
8
+ from gtts import gTTS
9
+ from mutagen.mp3 import MP3
10
+ import json
11
+ from datetime import datetime
12
+ from json import loads , dumps
13
+ import time
14
+ from time import sleep
15
+ import random
16
+ import urllib.request
17
+ import io
18
+ from random import choice,randint
19
+ from PIL import Image
20
+ from colorama import Fore
21
 
22
+ green = '\033[32m'
23
+ red = '\033[31m'
24
+ blue = '\033[36m'
25
+ pink = '\033[35m'
26
+ yellow = '\033[93m'
27
+ darkblue = '\033[34m'
28
+ white = '\033[00m'
29
+ # اگه خواستید با چند اکانت کار کنید به جای auth که در قسمت bot هس این وارد کنید auth2 برای مثال اینجوری
30
+ # bot= Robot_Rubika(auth2)
31
+ auth = ["","","",""]
32
+ auth2 = choice(auth)
33
+ bot = Robot_Rubika("rkabvswhuiqriyjbjnnfiuamugjjufos")
34
+ #چنلی که میخواهید اخرین پست را بگیرد و سین بزنع
35
+ channels = "c0BPnR90d2db54fe9bb805aea3bf65c6"
36
 
37
+ channell_sin_tabl = ["c0Ee9X09008b057804dadf8f941e305a","c0HGkO0951a2f9159b86470742c0b5d0","c0Btyq095a83abe72ecf41080c6f1c35","c0MTeU0f77bd1c780b8b7509797bfd68","c0BTXy05d5dbf4aa17e8c92e7e260973","c0RSKL05e95414cec64d48b54f2e943e","c0Os2U04e474afa9d597a71959dc8b7e"]
38
+ channells = choice(channell_sin_tabl)
 
 
 
39
 
 
40
 
41
+ answered, sleeped, retries,forward_Channell, answer,lock_fosh,st,list_gap,sttab2,st_tabl,deletergap = [] , False , {} , True , [] , False , False , [] , False , False , True
42
+ alerts, blacklist, stars, alert_stickers, alert_Gif, lock_GIF,lock_Sticker,star_sinza,sin_time,tab_time = [] , [] , [] , [] , [] , False , False , False , False , False
 
 
 
43
 
 
 
 
 
44
 
45
+ sum = 0
46
+ while True:
47
+ try:
48
+ last_chat1 = bot.getChannelInfo(channels)["data"]["chat"]["last_message_id"]
49
+ print(last_chat1)
50
+ last_chat = bot.getChannelInfo(channells)["data"]["chat"]["last_message_id"]
51
+ messages_channell = bot.getMessages(channells,last_chat)
52
+ for chat in messages_channell:
53
+ try:
54
+ chat = chat['text']
55
+ link_Group = findall(r"https://rubika.ir/joing/\w{32}", chat)
56
+ for linkes in link_Group:
57
+ list_gap.append(linkes)
58
+ randomli = choice(list_gap)
59
+ tabeligh = bot.joinGroup(randomli)
60
+ tabrligh = tabeligh['data']['group']['group_guid']
61
+ info = tabeligh['data']['group']['group_title']
62
+ momber = tabeligh['data']['group']['count_members']
63
+ sum += 1
64
+ bot.forwardMessages(channels,[last_chat1],tabrligh)
65
+ res1 = bot.getMessagesInfo(channels, [last_chat1])
66
+ for n in res1:
67
+ sen = n['count_seen']
68
+ print(green+f" forward mag : <{randomli}> \n {blue}name gap : <{info}> \n {yellow}forward : <{sum}> \n {blue}member group : <{momber}> \n {red}seen <{sen}>")
69
+ bot.leaveGroup(tabrligh)
70
+ time.sleep(3)
71
+ except:continue
72
+
73
+ except:pass
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
requirements.txt CHANGED
@@ -1,2 +1,14 @@
1
- git+https://github.com/openai/point-e
2
- plotly
 
 
 
 
 
 
 
 
 
 
 
 
1
+ requests
2
+ tqdm
3
+ libraryArsein
4
+ pycryptodome
5
+ urllib3
6
+ mutagen
7
+ gtts
8
+ pillow
9
+ colorama
10
+ rubika
11
+ rubiran
12
+ rubpy==3.1.1
13
+ pyfiglet
14
+ rubpy