Advertisement
Guest User

Untitled

a guest
Jan 18th, 2019
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.13 KB | None | 0 0
  1. import time
  2. import asyncio
  3. import string
  4. import sys
  5. import codecs
  6. import random
  7. import socket
  8. import pickle
  9. import os
  10. import datetime
  11. import pyperclip
  12. from random import randrange
  13. from random import randint
  14. import selenium as se
  15. from selenium import webdriver
  16. from selenium.webdriver.common.keys import Keys
  17. from selenium.webdriver.common.by import By
  18. from selenium.webdriver.support.ui import WebDriverWait
  19. from selenium.common.exceptions import NoSuchElementException
  20. from selenium.webdriver.support import expected_conditions as ec
  21. from selenium.webdriver.common.action_chains import ActionChains
  22. import unittest, time, re
  23.  
  24. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  25. try:
  26. dataRead = open('C:\\BOT\\join\\VERIFY_ACCOUNTS\\EXPORT.txt', 'r')
  27. read_lines = dataRead.readlines()
  28. username1 = read_lines[int(str(sys.argv[1]))]
  29. password1 = username1.partition('@')[0] + "123"
  30.  
  31. if '\n' in password1:
  32. password1 = password1[:-1]
  33. if '\n' in username1:
  34. username1 = username1[:-1]
  35.  
  36. PREFIX_FILE_PATH = 'C:\\BOT\\'
  37. PREFIX_FILE_PATH_BF = 'C:\\BOT\\'
  38. PREFIX_FILE_PATH_PICKLE = 'C:\\BOT\\' + "Profile 1"
  39. serverATMsend = ""
  40.  
  41. breaker = False
  42. memberi = []
  43. max_number_members = 0
  44. next_member = 0
  45. servers_list_check = []
  46. data = 0
  47. cnt = 1
  48. userFile = open(PREFIX_FILE_PATH_BF + "accountConfig.txt", "r")
  49.  
  50.  
  51. configLoad = userFile.readlines()
  52. username = configLoad[0]
  53. password = configLoad[1]
  54. userFile.close()
  55. serverFile = open(PREFIX_FILE_PATH_BF + "serverProtocolConfig.txt", "r")
  56. serverLoad = serverFile.readlines()
  57. IPadress = serverLoad[0]
  58. portLoader = serverLoad[1]
  59. serverFile.close()
  60. messageSend = []
  61. host = IPadress
  62. port = int(portLoader)
  63. print('HOST : ', host)
  64. print('PORT : ', port)
  65.  
  66. oServersF = codecs.open(PREFIX_FILE_PATH_BF + "oservers.txt",'r','utf8')
  67. oServersX = oServersF.readlines()
  68. oServersF.close()
  69.  
  70. for it in range(0, len(oServersX)):
  71. itt = oServersX[it]
  72. if ord(itt[len(itt) - 1]) == ord('\n'):
  73. itt = itt[:-1]
  74. if ord(itt[len(itt) - 1]) == ord('\r'):
  75. itt = itt[:-1]
  76. oServersX[it] = itt
  77.  
  78.  
  79.  
  80. cachedKicks = []
  81. kicksToPerform = []
  82.  
  83.  
  84. def mwconn(host, port):
  85. try:
  86. s.connect(('116.203.59.204', port))
  87. except socket.error as exc:
  88. print('Caught exception socket.error:' + exc)
  89.  
  90.  
  91. mwconn(host, port)
  92.  
  93. iskoristi = False
  94.  
  95.  
  96. async def start_process():
  97. print('Startujem bota ')
  98. global iskoristi
  99. if iskoristi == False:
  100. iskoristi = True
  101. await start_bot()
  102.  
  103.  
  104. def init_client():
  105. print("USAO U INIT")
  106. global s
  107. sFileName = PREFIX_FILE_PATH_PICKLE + 'dict.pickle'
  108. messageConfigure = "GIVE_PICKLE"
  109. boolForSend = 3
  110. global messageSend
  111. while True:
  112. if boolForSend == 0:
  113. BUFFER_SIZE = 1024
  114. s.send(messageConfigure.encode())
  115. print('Poslao pickleFile request serveru')
  116. fDownloadFile = PREFIX_FILE_PATH_PICKLE + "dict.pickle"
  117. with open(fDownloadFile, 'wb') as fw:
  118. msg = s.recv(BUFFER_SIZE)
  119. fsize = int(msg.decode('utf-8').strip())
  120. rsize = 0
  121. while True:
  122. data = s.recv(BUFFER_SIZE)
  123. rsize = rsize + len(data)
  124. fw.write(data)
  125. if rsize >= fsize:
  126. break
  127. print("Zavrseno skidanje pickle-a")
  128. messageConfigure = 'GIVE_MESSAGE'
  129. sFileName = PREFIX_FILE_PATH + 'porukaZaSlanje.txt'
  130. boolForSend = boolForSend + 1
  131. time.sleep(0.1) # MORA ZBOG TPP
  132. continue # MORA ZBOG TPP extra layer
  133. if boolForSend == 1:
  134. s.send(messageConfigure.encode())
  135. print('Poslao messageFile request serveru')
  136. sData = s.recv(1024)
  137. fDownloadFile = open(sFileName, "wb")
  138. while sData:
  139. if 'done031337' in str(sData):
  140. break
  141. fDownloadFile.write(sData)
  142. sData = s.recv(1024)
  143. print(str(sData))
  144. print("Zavrseno skidanje poruke")
  145. fDownloadFile.close()
  146. messageFile = open(PREFIX_FILE_PATH + "porukaZaSlanje.txt", "r")
  147. lineRead = messageFile.readlines()
  148. for line in lineRead:
  149. print('PORUKA : ', line, ' ZAVRSENO')
  150. messageSend.append(line)
  151. boolForSend = boolForSend + 1
  152. messageConfigure = 'GIVE_PICKLE2'
  153. messageFile.close()
  154. sFileName = PREFIX_FILE_PATH + 'serverMe8mbersConfig.txt'
  155. time.sleep(0.1)
  156. continue
  157. if boolForSend == 2:
  158. BUFFER_SIZE = 1024
  159. messageConfigure = 'GIVE_PICKLE2'
  160. s.send(messageConfigure.encode())
  161.  
  162. print('Poslao serverListFile request serveru')
  163. fDownloadFile = PREFIX_FILE_PATH + "remembServers.pickle"
  164. with open(fDownloadFile, 'wb') as fw:
  165. msg = s.recv(BUFFER_SIZE)
  166. fsize = int(msg.decode('utf-8').strip())
  167. rsize = 0
  168. while True:
  169. data = s.recv(BUFFER_SIZE)
  170. rsize = rsize + len(data)
  171. fw.write(data)
  172. if rsize >= fsize:
  173. break
  174. print("Zavrseno skidanje pickle-a 2")
  175. messageConfigure = 'GIVE_MESSAGE'
  176. sFileName = PREFIX_FILE_PATH + 'porukaZaSlanje.txt'
  177. boolForSend = boolForSend + 1
  178. time.sleep(0.1)
  179. continue
  180. if boolForSend == 3:
  181. messageConfigure1 = 'SET_USER ' + str(username1)
  182. s.send(messageConfigure1.encode())
  183. time.sleep(1)
  184. messageFile = open(PREFIX_FILE_PATH + "porukaZaSlanje.txt", "r")
  185. lineRead = messageFile.readlines()
  186. for line in lineRead:
  187. print('PORUKA : ', line, ' ZAVRSENO')
  188. messageSend.append(line)
  189. messageFile.close()
  190. print('LOGUJEM SE IN...')
  191. loop = asyncio.get_event_loop()
  192. loop.run_until_complete(start_process())
  193.  
  194. return
  195.  
  196.  
  197. def BMP(s):
  198. return "".join((i if ord(i) < 10000 else '\ufffd' for i in s))
  199.  
  200.  
  201.  
  202.  
  203. def random_string(length):
  204. return ''.join(random.choice(string.ascii_letters) for m in range(1, length))
  205.  
  206.  
  207. def configure_message(message, length, idx):
  208. global messageSend
  209. message = messageSend[idx]
  210. message = message[:-1]
  211. message1 = ''
  212. message2 = ''
  213. messageo = message
  214. for i in range(1, randint(1, 30)):
  215. message2 += ''
  216. messageo = messageo.replace('!!!', message2)
  217. for i in range(1, randint(1, 50)):
  218. message1 += ''
  219. return message + '' + message2
  220.  
  221.  
  222. check_flaw = 0
  223.  
  224. def vremePOCETAK(a1):
  225. end_time = datetime.datetime.now().time().strftime('%H:%M:%S')
  226. total_time=(datetime.datetime.strptime(end_time,'%H:%M:%S') - datetime.datetime.strptime(a1,'%H:%M:%S'))
  227. REZULTAT_DELAY = int(total_time.total_seconds())
  228. return REZULTAT_DELAY
  229.  
  230. async def start_bot():
  231. global cnt
  232. while True:
  233. cnt = 0
  234. print('ZAPOCINJEM NOVU SESIJU')
  235. RUN_SYSTEM()
  236.  
  237. def check_exists_by_xpath(webdriver, xpath):
  238. try:
  239. webdriver.find_element_by_xpath(xpath)
  240. except NoSuchElementException:
  241. return False
  242. return True
  243.  
  244. def RUN_SYSTEM():
  245. options = webdriver.ChromeOptions()
  246. options.add_argument('headless')
  247. options.add_argument("--window-size=1920,1080");
  248. options.add_argument("--disable-gpu");
  249. options.add_argument("--disable-extensions");
  250.  
  251. options.add_argument("--proxy-server='direct://'");
  252. options.add_argument("--proxy-bypass-list=*");
  253. options.add_argument("--starzed");
  254. chrome_options = webdriver.ChromeOptions()
  255. chrome_options.add_extension("ext.crx")
  256. prefs = {"profile.managed_default_content_settings.images": 2}
  257. chrome_options.add_experimental_option("prefs", prefs)
  258. chrome_options.add_argument("--disable-plugins-discovery");
  259. chrome_options.add_argument("--disable-bundled-ppapi-flash");
  260. driver = webdriver.Chrome(chrome_options=chrome_options)
  261. driver.implicitly_wait(30)
  262.  
  263.  
  264. global username1
  265. global password1
  266. print(username1 + ' ' + password1)
  267. driver.get("https://discordapp.com/")
  268. driver.find_element_by_link_text("Login").click()
  269. driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Email'])[1]/following::input[1]").clear()
  270. driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Email'])[1]/following::input[1]").send_keys(username1)
  271. driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Password'])[1]/following::input[1]").clear()
  272. driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Password'])[1]/following::input[1]").send_keys('test123')
  273. while check_exists_by_xpath(driver, "(.//*[normalize-space(text()) and normalize-space(.)='Password'])[1]/following::input[1]") == True:
  274. driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Password'])[1]/following::input[1]").send_keys(Keys.ENTER)
  275. time.sleep(2 + randint(1, 5))
  276.  
  277. print("DOSAO")
  278. serverListReader = open(PREFIX_FILE_PATH + "remembServers.pickle", "rb")
  279. loadListReader = pickle.load(serverListReader)
  280. dict_remember = {}
  281. for passout in loadListReader:
  282. dict_remember[passout] = 0
  283. serverListReader.close()
  284. random_seed = [5, 1 , 1, 3 , 3, 4]
  285. global check_flaw1
  286. regularMESSAGE = 'GIVE_DATA'
  287. formatMESSAGE = ''
  288. global messageSend
  289. global s
  290. global cnt
  291. if len(messageSend[0]) < 6:
  292. formatMESSAGE = 'MALA PORUKA, GASIM SE'
  293. s.send(formatMESSAGE.encode())
  294. s.close()
  295. print('GASIM SE')
  296. print('Duzina poruke '+ str(len(messageSend)))
  297. sys.exit(0)
  298. time.sleep(10)
  299.  
  300. driver.minimize_window()
  301. global_failure = 0
  302. notJoined = False
  303. joined = {}
  304. global serverATMsend
  305. while True:
  306. try:
  307. s.send(regularMESSAGE.encode())
  308. data = s.recv(2048)
  309.  
  310.  
  311. getSTR = str(data.decode('utf-8').strip())
  312. if getSTR == 'WAIT':
  313. print("SPAVAM DOBIO WAIT")
  314. time.sleep(61)
  315. continue
  316.  
  317. getSTRpart = getSTR.split(";")
  318. print(getSTR)
  319. if 'INVITE' == getSTRpart[0]:
  320. serverATMsend = getSTRpart[2]
  321. driver.maximize_window()
  322. driver.get(getSTRpart[1])
  323. try:
  324. res1 = WebDriverWait(driver, 10).until(ec.presence_of_element_located((By.XPATH, "//*[contains(text(), 'Accept Invite')]")))
  325. driver.execute_script('arguments[0].click()', res1)
  326. time.sleep(3)
  327. driver.get("chrome://extensions")
  328. time.sleep(1)
  329. driver.get("https://www.discordapp.com/activity")
  330. print('ATM SERVER = ', serverATMsend, ' ', len(serverATMsend))
  331. time.sleep(10)
  332. driver.minimize_window()
  333. except Exception as e:
  334. driver.get("https://www.discordapp.com/activity")
  335. time.sleep(5)
  336. driver.minimize_window()
  337. time.sleep(61)
  338. continue
  339.  
  340. gl = driver.find_elements_by_xpath(
  341. "//div[@class='guildSeparator-1X4GQ1']/following-sibling::div[contains(@class, 'guild-1EfMGQ')]/descendant::a")
  342. res = driver.find_element_by_tag_name("body")
  343.  
  344. if cnt >= 110:
  345. driver.quit()
  346. return
  347. start_time = datetime.datetime.now().time().strftime('%H:%M:%S')
  348. rnd = randint(0, len(random_seed) - 1)
  349.  
  350. try:
  351. WebDriverWait(driver, 20).until(
  352. ec.presence_of_element_located((By.XPATH, "//div[@class='guildSeparator-1X4GQ1']")))
  353. except Exception as e:
  354. print('Nisam nasao GUILDe, gasim se')
  355. formatMESSAGE = 'BANOVAN SAM, PROVERI'
  356. s.send(formatMESSAGE.encode())
  357. s.close()
  358. sys.exit(1)
  359. continue
  360. #print('ZAVRSIO SA GILDAMA ', vremePOCETAK(start_time))
  361.  
  362. cursrvs = []
  363. serverFound = False
  364.  
  365. for guild in gl:
  366. srvr = str(guild.get_attribute('aria-label'))
  367. cursrvs.append(srvr)
  368. if srvr in serverATMsend:
  369. serverFound = True
  370.  
  371. if serverFound == False:
  372. print("KIKOVAN SAM SA SERVERA")
  373. por = 'LOSE ' + serverATMsend
  374. s.send(por.encode())
  375. time.sleep(60)
  376. continue
  377. kmpDATA = str(data.decode('utf-8').strip())
  378. if 'stop' == kmpDATA:
  379. print('USAO')
  380. print('Stopirana sesija')
  381. s.close()
  382. sys.exit(1)
  383. return
  384. if 'napusti' in str(data):
  385. time.sleep((60 * 60) * 6)
  386. print('VRATIO SAM SE IZ OKIDANJA')
  387. if not data:
  388. time.sleep(5)
  389. continue
  390. next_member = str(data.decode('utf-8').strip())
  391. print('MEMBER DOBIJEN ', next_member)
  392.  
  393. time.sleep(1)
  394. res.send_keys(Keys.CONTROL + 'k')
  395.  
  396. time.sleep(2)
  397. res4 = 0
  398. bul = True
  399. if bul == True:
  400. res4 = driver.find_element_by_xpath(
  401. "//input[@class='input-2VB9rf']")
  402. bul = False
  403.  
  404. try:
  405. mname = str(next_member)
  406. firstPART = mname[:-5]
  407. secondPART = mname[len(mname) - 4:]
  408. res4.send_keys('@')
  409. for j in range(len(mname)):
  410. res4.send_keys(mname[j])
  411. time.sleep(1)
  412.  
  413. except Exception as e:
  414. formatMESSAGE = 'Poslao ' + str(cnt) + '. poruku memberu ' + BMP(mname) + '- u na serveru ' + ' FAILURE1 ' + datetime.datetime.now().strftime(
  415. '%Y-%m-%d %H:%M:%S')
  416. s.send(formatMESSAGE.encode())
  417.  
  418. continue
  419.  
  420. try:
  421. time.sleep(2)
  422. res4.send_keys(Keys.ENTER)
  423. time.sleep(2)
  424. res3 = driver.find_element_by_xpath(
  425. "//textarea[@placeholder='Message @" + firstPART + "']")
  426.  
  427. time.sleep(1)
  428. end_time = datetime.datetime.now().time().strftime('%H:%M:%S')
  429. total_time=(datetime.datetime.strptime(end_time,'%H:%M:%S') - datetime.datetime.strptime(start_time,'%H:%M:%S'))
  430. REZULTAT_DELAY = int(total_time.total_seconds())
  431. pyperclip.copy('OpTic Craft finally merged into BookaCraft! It is releasing tomorrow 3PM EST! Join soon to be one of the best Mineacraft faction servers. There are also rewards for new players, check out YouTube description. https://youtu.be/nKDciAXv7Ko ')
  432. res3.send_keys(Keys.CONTROL, 'c') #copy
  433. res3.send_keys(Keys.CONTROL, 'v') #paste
  434. if (91 - REZULTAT_DELAY) > 0:
  435. time.sleep(91 - REZULTAT_DELAY)
  436. start_time = datetime.datetime.now().time().strftime('%H:%M:%S')
  437. res3.send_keys('\n')
  438. res3.send_keys('\n')
  439. cnt = cnt + 1
  440. print('Poslao ', cnt, '. poruku memberu ', BMP(firstPART), ' ', start_time)
  441. formatMESSAGE = 'Poslao ' + str(cnt) + '. poruku memberu ' + BMP(
  442. BMP(firstPART)) + ' ' + start_time
  443. s.send(formatMESSAGE.encode())
  444. except Exception as e:
  445. print(str(e))
  446. ActionChains(driver).send_keys(Keys.ESCAPE).perform()
  447. time.sleep(1)
  448. ActionChains(driver).send_keys(Keys.ESCAPE).perform()
  449. form = 'Poslao ' + str(cnt) + '. poruku memberu ' + BMP(
  450. firstPART) + ' FAILURE ' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  451. print('Nije moguce poslati poruku ', BMP(firstPART), ' greska = ', str(e),
  452. datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
  453. print('RAZLOG: Nisam nasao memebera u listi...')
  454. s.send(form.encode())
  455. continue
  456. except Exception as e:
  457. global_failure = global_failure + 1
  458. if global_failure == 10:
  459. driver.quit()
  460. return
  461. porukaLOG = 'Nije moguce poslati poruku ' + BMP(firstPART) + ' greska = ' + str(
  462. e) + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  463. print('Nije moguce poslati poruku ', BMP(firstPART+secondPART), ' greska = ', str(e),
  464. datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
  465. s.send(porukaLOG.encode())
  466. time.sleep(3)
  467.  
  468. print('Bot zavrsio sa radom')
  469. s.close()
  470. sys.exit(0)
  471. init_client()
  472.  
  473. except Exception as e:
  474. s.close()
  475. print(str(e))
  476. print('GASIM SE1')
  477. sys.exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement