Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from selenium import webdriver
- import time
- import threading
- import json
- from selenium.common.exceptions import TimeoutException
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- import imaplib
- from selenium.webdriver.common.proxy import Proxy, ProxyType
- from selenium.common.exceptions import StaleElementReferenceException
- read = open('data.json', 'r')
- people = json.loads(read.read())
- read.close()
- browsers = []
- threads = []
- proxies = []
- proxy_getter = webdriver.Firefox(executable_path = r"geckodriver.exe")
- proxy_getter.get('https://free-proxy-list.net/')
- try:
- WebDriverWait(proxy_getter, 100).until(EC.presence_of_element_located((By.ID, 'proxylisttable')))
- except TimeoutException:
- print('Errx')
- for i in range(3):
- page = proxy_getter.find_elements_by_xpath('//table[@id="proxylisttable"]/tbody/tr/td[1]')
- ports = proxy_getter.find_elements_by_xpath('//table[@id="proxylisttable"]/tbody/tr/td[2]')
- for i in range(len(page)):
- proxies.append(page[i].text + ':' + ports[i].text)
- button = proxy_getter.find_element_by_xpath('//a[@data-dt-idx="9"]')
- button.click()
- time.sleep(.3)
- proxy_getter.quit()
- mt = threading.Lock()
- def createBrowser(proxy_ip):
- PROXY_HOST, PROXY_PORT = proxy_ip.split(':')
- fp = webdriver.FirefoxProfile()
- fp.set_preference("network.proxy.type", 1)
- fp.set_preference("network.proxy.http",PROXY_HOST)
- fp.set_preference("network.proxy.http_port",int(PROXY_PORT))
- fp.set_preference("network.proxy.ssl",PROXY_HOST)
- fp.set_preference("network.proxy.ssl_port",int(PROXY_PORT))
- fp.set_preference("general.useragent.override","whater_useragent")
- fp.update_preferences()
- browser = webdriver.Firefox(executable_path = r"geckodriver.exe", firefox_profile = fp)
- browser.maximize_window()
- mt.acquire()
- browsers.append(browser)
- mt.release()
- for i in range(len(people)):
- thread = threading.Thread(target = createBrowser, args = (proxies[i],))
- threads.append(thread)
- thread.start()
- for t in threads:
- t.join()
- threads = []
- def authorize(browser, person):
- mt.acquire()
- browser.get('https://meowskins.cc/oauth/steam/redirect')
- #mt.release()
- while True:
- print('Entered logging in')
- try:
- WebDriverWait(browser, 100).until(EC.presence_of_element_located((By.XPATH, '//input[@name="username"]')))
- except TimeoutException:
- print('Err2')
- username = browser.find_element_by_xpath('//input[@name="username"]')
- password = browser.find_element_by_xpath('//input[@name="password"]')
- username.send_keys(person['username'])
- password.send_keys(person['password'])
- #mt.acquire()
- username.submit()
- fl = True
- try:
- WebDriverWait(browser, 5).until(EC.visibility_of_element_located((By.XPATH, '//input[@class="authcode_entry_input authcode_placeholder"]')))
- except TimeoutException:
- browser.get('https://meowskins.cc/oauth/steam/redirect')
- button = browser.find_element_by_xpath('//input[@class="btn_green_white_innerfade"]')
- button.click()
- fl = False
- if fl:
- time.sleep(3)
- mail = imaplib.IMAP4_SSL('imap.mail.ru')
- mail.login('vadimkoch2003@mail.ru', '1ir6d26t99v167ng')
- mail.list()
- mail.select('inbox')
- result, data = mail.search(None, "ALL")
- ids = data[0]
- id_list = ids.split()
- latest_email_id = id_list[-1]
- result, data = mail.fetch(latest_email_id, "(RFC822)")
- raw_email = str(data[0][1])
- pos = raw_email.find(':\\r\\n\\r\\n')
- guard = raw_email[pos + 9 : pos + 14]
- mt.release()
- if fl:
- guardinp = browser.find_element_by_xpath('//input[@class="authcode_entry_input authcode_placeholder"]')
- guardinp.send_keys(guard)
- guardinp.submit()
- try:
- WebDriverWait(browser, 100).until(EC.visibility_of_element_located((By.ID, 'success_continue_btn')))
- except TimeoutException:
- print('Err6')
- auth_button = browser.find_element_by_id('success_continue_btn')
- auth_button.click()
- try:
- WebDriverWait(browser, 100).until(EC.presence_of_element_located((By.XPATH, '//div[@class="mini-profile-ava"]//img')))
- break
- except TimeoutException:
- print('Err7')
- mt.acquire()
- browser.refresh()
- ava = browser.find_element_by_xpath('//div[@class="mini-profile-ava"]//img')
- ava.click()
- try:
- WebDriverWait(browser, 100).until(EC.presence_of_element_located((By.XPATH, ' ')))
- except TimeoutException:
- print('Err8')
- for i in range(len(people)):
- thread = threading.Thread(target = authorize, args = (browsers[i], people[i]))
- threads.append(thread)
- thread.start()
- for t in threads:
- t.join()
- def inputCode(browser, code):
- while True:
- try:
- WebDriverWait(browser, 100).until(EC.presence_of_element_located((By.XPATH, '//input[@data-v-e6fade42]')))
- except TimeoutException:
- print('Err8')
- form = browser.find_element_by_xpath('//input[@data-v-e6fade42]')
- form.clear()
- form.send_keys(code)
- form.submit()
- try:
- WebDriverWait(browser, 100).until(EC.presence_of_element_located((By.XPATH, '//div[@class="noty_body"]')))
- except TimeoutException:
- print('Err9')
- errors = browser.find_elements_by_xpath('//div[@class="noty_body"]')
- fl1 = True
- for error in errors:
- try:
- if not ('Предупреждение' in error.text):
- fl1 = False
- break
- except StaleElementReferenceException:
- pass
- if not fl1:
- break
- time.sleep(.5)
- print('kk')
- while True:
- print('Введи промокод: ')
- code = input()
- if code == 'exit':
- break
- threads = []
- for browser in browsers:
- thread = threading.Thread(target = inputCode, args = (browser, code))
- threads.append(thread)
- thread.start()
- for t in threads:
- t.join()
- for b in browsers:
- b.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement