Advertisement
Guest User

Untitled

a guest
Jul 17th, 2016
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.55 KB | None | 0 0
  1. import pickle
  2. import glob
  3. from selenium import webdriver
  4. from selenium.webdriver.chrome.options import Options
  5. from selenium.webdriver.common.keys import Keys
  6. from selenium.webdriver.firefox.webdriver import FirefoxProfile
  7. from selenium.webdriver.support import expected_conditions as EC
  8. from selenium.common.exceptions import StaleElementReferenceException, NoSuchElementException, NoSuchWindowException
  9. from selenium.webdriver.support.ui import WebDriverWait
  10. from selenium.webdriver.support.ui import Select
  11. import time
  12. import os
  13. import sys
  14. import winsound
  15. from os import listdir
  16. from os.path import isfile, join
  17. import requests
  18.  
  19. def soundTTS(sound):
  20. winsound.PlaySound('%s.mp3' % sound, winsound.SND_FILENAME)
  21. winsound.PlaySound('%s.mp3' % sound, winsound.SND_FILENAME)
  22. winsound.PlaySound('%s.mp3' % sound, winsound.SND_FILENAME)
  23.  
  24. def getAccList(filename):
  25. accsFile = open(filename, 'r').read()
  26. return accsFile.split(chr(10))
  27.  
  28. def countdownSleeper(count):
  29. for i in xrange(count,0,-1):
  30. time.sleep(1)
  31. print "-> " + str(i)
  32.  
  33. def GetNumAccounts(accs_file): # Return Number of Accounts
  34. num_accs = sum(1 for line in open(accs_file))
  35. return num_accs
  36.  
  37. def GetImageFile(index):# Return Number of Accounts
  38. onlyfiles = [f for f in listdir('imgs') if isfile(join('imgs', f))]
  39. return 'imgs\\' + onlyfiles[index]
  40.  
  41. def removeUserLine(line):
  42. f = open("input.txt","r+")
  43. d = f.readlines()
  44. f.seek(0)
  45. for i in d:
  46. if i != line + "\n":
  47. f.write(i)
  48. f.truncate()
  49. f.close()
  50.  
  51. def switchToChallengeFrame(drv, e, u, num, indexSWCF, accsnumberSWCF):
  52. try:
  53. content_iframe = '#recaptcha-anchor'
  54.  
  55. drv.switch_to_frame(drv.find_element_by_tag_name(e))
  56. elem_captcha = drv.find_element_by_css_selector(content_iframe)
  57. elem_captcha.click()
  58. time.sleep(1)
  59. soundTTS('imready')
  60. findChallenge(drv, u, indexSWCF, accsnumberSWCF)
  61. except NoSuchElementException:
  62. time.sleep(1)
  63. if num < 5:
  64. num = num + 1
  65. switchToChallengeFrame(drv, e, u, num, indexSWCF, accsnumberSWCF)
  66.  
  67. def findChallenge(drv, user, index, accsnumber):
  68. try:
  69. content_success = 'span#recaptcha-anchor.recaptcha-checkbox-checked'
  70.  
  71. drv.find_element_by_css_selector(content_success)
  72. except NoSuchElementException:
  73. print '[' + str(index+1) + ' of ' + str(accsnumber) + '] Waiting for Challenge => ' + user
  74. time.sleep(1)
  75. findChallenge(drv, user, index, accsnumber)
  76.  
  77. def findAuthorizeLoaded(drv, user, i, wait):
  78. time.sleep(wait)
  79. try:
  80. elem_authorize = drv.find_element_by_css_selector('button.button.primary.button')
  81. time.sleep(0.5)
  82. elem_authorize.click()
  83. findOAUTH(drv, user, i)
  84. except NoSuchElementException:
  85. time.sleep(1)
  86. findAuthorizeLoaded(drv, user, i, wait)
  87. except StaleElementReferenceException:
  88. time.sleep(1)
  89. findAuthorizeLoaded(drv, user, i, wait)
  90.  
  91. def WriteLineToFile(data):
  92. with open('output.txt','a') as f:
  93. f.write("{}\n".format(data))
  94. f.close()
  95.  
  96. def findOAUTH(drv, u, i):
  97. try:
  98. oauth_elem = drv.find_element_by_css_selector('input#oauth2merge.span9')
  99. acc = u + ':oauth:' + oauth_elem.get_attribute('value')
  100.  
  101. print 'Account => ' + acc
  102. WriteLineToFile(acc)
  103. time.sleep(1)
  104. goSettings(drv, u, i)
  105. except NoSuchElementException:
  106. time.sleep(1)
  107. findOAUTH(drv, u, i)
  108. except StaleElementReferenceException:
  109. time.sleep(1)
  110. findOAUTH(drv, u, i)
  111.  
  112. def goSettings(drv, u, i):
  113. try:
  114. drv.get("https://www.twitch.tv/settings")
  115. time.sleep(3)
  116. accname = drv.find_element_by_css_selector('input#user_displayname')
  117. accname.clear()
  118. accname.send_keys(u)
  119.  
  120. setProfileImage(drv, i, u)
  121. except NoSuchElementException:
  122. time.sleep(1)
  123. goSettings(drv, u, i)
  124.  
  125. def setProfileImage(drv, i, user):
  126. try:
  127. imagePath = os.path.abspath(GetImageFile(i))
  128. imageField = drv.find_element_by_css_selector('input#user_profile_image')
  129. imageField.clear()
  130. imageField.send_keys(imagePath)
  131.  
  132. save = drv.find_element_by_css_selector('button#user_settings_submit')
  133. save.click()
  134. time.sleep(5)
  135. os.remove(imagePath)
  136. removeUserLine(user)
  137. time.sleep(3)
  138. drv.close()
  139. except NoSuchElementException:
  140. time.sleep(1)
  141. setProfileImage(drv, i)
  142.  
  143. def setMDY(driver, selector, option):
  144. try:
  145. select = Select(driver.find_element_by_css_selector(selector))
  146. select.select_by_visible_text(option)
  147. except NoSuchElementException:
  148. time.sleep(1)
  149. print 'Script executed for the date'
  150. driver.execute_script("document.querySelector('select[name=\"birthday.month\"] > [value=\"8\"]').selected = true; document.querySelector('select[name=\"birthday.day\"] > [value=\"31\"]').selected = true; document.querySelector('select[name=\"birthday.year\"] > [value=\"1990\"]').selected = true; ")
  151.  
  152. def getDriver(num, p1, p2, p3):
  153. if (num == 1):
  154. print 'INFO: Using Proxy 1'
  155. driver = webdriver.Chrome(executable_path='C:\Python27\Scripts\chromedriver.exe')
  156. return driver
  157. else:
  158. if (num == 2):
  159. print 'INFO: Using Proxy 2'
  160. driver = webdriver.Chrome(executable_path='C:\Python27\Scripts\chromedriver.exe', chrome_options=p1)
  161. return driver
  162. else:
  163. if (num == 3):
  164. print 'INFO: Using Proxy 3'
  165. driver = webdriver.Chrome(executable_path='C:\Python27\Scripts\chromedriver.exe', chrome_options=p2)
  166. return driver
  167.  
  168. def ClickDatButton(d, elem):
  169. try:
  170. d.switch_to.default_content()
  171. elem_login = d.find_element_by_css_selector(elem)
  172. time.sleep(1)
  173. elem_login.click()
  174. except NoSuchElementException:
  175. time.sleep(1)
  176. ClickDatButton(d, elem)
  177. except StaleElementReferenceException:
  178. print 'Do not click on this button manually!'
  179.  
  180. def checkStatusCode(c):
  181. if (int(c) == 200):
  182. print 'Please wait...'
  183. else:
  184. time.sleep(1)
  185. checkStatusCode(c)
  186.  
  187. def getCIR(cid, d, counter):
  188. c = counter
  189. r = requests.get('http://2captcha.com/res.php?key=f992c9894d4dbe1bd4179760b2703278&action=get&id='+cid)
  190. #checkStatusCode(r.status_code)
  191. resp = r.text
  192.  
  193. if(c > 19):
  194. getCID(d)
  195. else:
  196. c = c + 1
  197.  
  198. if(resp == "CAPCHA_NOT_READY"):
  199. print 'Please wait, captcha not solved yet...'
  200. time.sleep(5)
  201. getCIR(cid, d, c)
  202. else:
  203. data = resp.split("|")
  204. if (data[0] == "OK"):
  205. print 'Captcha code acquire successfully!'
  206. d.execute_script("document.getElementById('g-recaptcha-response').value = '"+data[1]+"';")
  207. else:
  208. print 'An error has been occurred: ' + data[0]
  209. time.sleep(5)
  210. getCID(d)
  211.  
  212.  
  213. def getCID(d):
  214. r = requests.get('http://2captcha.com/in.php?key=f992c9894d4dbe1bd4179760b2703278&method=userrecaptcha&googlekey=6Ld65QcTAAAAAMBbAE8dkJq4Wi4CsJy7flvKhYqX')
  215. resp = r.text
  216.  
  217. data = resp.split("|")
  218. if (data[0] == "OK"):
  219. print 'Captcha ID acquire successfully, getting captcha code...'
  220. time.sleep(5)
  221. getCIR(data[1], d, 0)
  222. else:
  223. print 'Please wait, getting captcha id...'
  224. time.sleep(5)
  225. getCID(d)
  226.  
  227. def Go2Page(u, p, i, p1, p2, p3, it):
  228. #Referential Var
  229. itref = it
  230.  
  231. #Setup Chrome Driver
  232. driver = getDriver(it, p1, p2, p3)
  233.  
  234. if (it == 3):
  235. itref = 1
  236. else:
  237. itref = itref + 1
  238.  
  239. #Open Page and Begin
  240. driver.get("https://api.twitch.tv/kraken/oauth2/authorize?response_type=token&client_id=f6kmpmaak0do2mmb9ho8qd5l435stou&redirect_uri=http://www.sao-shopping.comxa.com/reborn.php&scope=chat_login+user_follows_edit")
  241. time.sleep(2)
  242. ClickDatButton(driver, 'li#signup_tab > a')
  243.  
  244. time.sleep(3)
  245. elem_user = driver.find_element_by_css_selector('input#username.text')
  246. elem_pass = driver.find_element_by_css_selector('input#password.text')
  247. elem_mail = driver.find_element_by_name('email')
  248. elem_user.send_keys(u)
  249. elem_pass.send_keys(p)
  250. elem_mail.send_keys('justonerandomdude@gmail.com')
  251. setMDY(driver, 'div.dropdown.month_contain > select', 'August')
  252. setMDY(driver, 'div.dropdown.day_contain > select', '31')
  253. setMDY(driver, 'div.dropdown.year_contain > select', '1990')
  254.  
  255. driver.execute_script("document.getElementsByTagName('DIV')[26].style.display = 'none'; document.getElementById('g-recaptcha-response').style.display = 'block'; document.getElementsByTagName('DIV')[27].style.marginTop = '70px';")
  256. getCID(driver)
  257.  
  258. elem_login = driver.find_element_by_css_selector('button.primary.button.js-signup-button')
  259. time.sleep(1)
  260. elem_login.click()
  261.  
  262. findAuthorizeLoaded(driver, u, i, 6)
  263.  
  264. #Restart Process
  265. i = i + 1
  266. accsSplit = getAccList('input.txt')
  267. Go2Page(accsSplit[0], 'dark3108', i, p1, p2, p3, itref)
  268.  
  269. index_ref = 1
  270. accsSplit = getAccList('input.txt')
  271.  
  272. proxy1 = Options()
  273. proxy1.add_extension("proxy1.zip")
  274.  
  275. proxy2 = Options()
  276. proxy2.add_extension("proxy2.zip")
  277.  
  278. proxy3 = Options()
  279. proxy3.add_extension("proxy3.zip")
  280.  
  281. Go2Page(accsSplit[0], 'dark3108', 0, proxy1, proxy2, proxy3, index_ref)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement