Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import asyncio
- import string
- import sys
- import codecs
- import random
- import socket
- import pickle
- import os
- import datetime
- import pyperclip
- from random import randrange
- from random import randint
- import selenium as se
- from selenium import webdriver
- from selenium.webdriver.common.keys import Keys
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.common.exceptions import NoSuchElementException
- from selenium.webdriver.support import expected_conditions as ec
- from selenium.webdriver.common.action_chains import ActionChains
- import unittest, time, re
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- try:
- dataRead = open('C:\\BOT\\join\\VERIFY_ACCOUNTS\\EXPORT.txt', 'r')
- read_lines = dataRead.readlines()
- username1 = read_lines[int(str(sys.argv[1]))]
- password1 = username1.partition('@')[0] + "123"
- if '\n' in password1:
- password1 = password1[:-1]
- if '\n' in username1:
- username1 = username1[:-1]
- PREFIX_FILE_PATH = 'C:\\BOT\\'
- PREFIX_FILE_PATH_BF = 'C:\\BOT\\'
- PREFIX_FILE_PATH_PICKLE = 'C:\\BOT\\' + "Profile 1"
- serverATMsend = ""
- breaker = False
- memberi = []
- max_number_members = 0
- next_member = 0
- servers_list_check = []
- data = 0
- cnt = 1
- userFile = open(PREFIX_FILE_PATH_BF + "accountConfig.txt", "r")
- configLoad = userFile.readlines()
- username = configLoad[0]
- password = configLoad[1]
- userFile.close()
- serverFile = open(PREFIX_FILE_PATH_BF + "serverProtocolConfig.txt", "r")
- serverLoad = serverFile.readlines()
- IPadress = serverLoad[0]
- portLoader = serverLoad[1]
- serverFile.close()
- messageSend = []
- host = IPadress
- port = int(portLoader)
- print('HOST : ', host)
- print('PORT : ', port)
- oServersF = codecs.open(PREFIX_FILE_PATH_BF + "oservers.txt",'r','utf8')
- oServersX = oServersF.readlines()
- oServersF.close()
- for it in range(0, len(oServersX)):
- itt = oServersX[it]
- if ord(itt[len(itt) - 1]) == ord('\n'):
- itt = itt[:-1]
- if ord(itt[len(itt) - 1]) == ord('\r'):
- itt = itt[:-1]
- oServersX[it] = itt
- cachedKicks = []
- kicksToPerform = []
- def mwconn(host, port):
- try:
- s.connect(('116.203.59.204', port))
- except socket.error as exc:
- print('Caught exception socket.error:' + exc)
- mwconn(host, port)
- iskoristi = False
- async def start_process():
- print('Startujem bota ')
- global iskoristi
- if iskoristi == False:
- iskoristi = True
- await start_bot()
- def init_client():
- print("USAO U INIT")
- global s
- sFileName = PREFIX_FILE_PATH_PICKLE + 'dict.pickle'
- messageConfigure = "GIVE_PICKLE"
- boolForSend = 3
- global messageSend
- while True:
- if boolForSend == 0:
- BUFFER_SIZE = 1024
- s.send(messageConfigure.encode())
- print('Poslao pickleFile request serveru')
- fDownloadFile = PREFIX_FILE_PATH_PICKLE + "dict.pickle"
- with open(fDownloadFile, 'wb') as fw:
- msg = s.recv(BUFFER_SIZE)
- fsize = int(msg.decode('utf-8').strip())
- rsize = 0
- while True:
- data = s.recv(BUFFER_SIZE)
- rsize = rsize + len(data)
- fw.write(data)
- if rsize >= fsize:
- break
- print("Zavrseno skidanje pickle-a")
- messageConfigure = 'GIVE_MESSAGE'
- sFileName = PREFIX_FILE_PATH + 'porukaZaSlanje.txt'
- boolForSend = boolForSend + 1
- time.sleep(0.1) # MORA ZBOG TPP
- continue # MORA ZBOG TPP extra layer
- if boolForSend == 1:
- s.send(messageConfigure.encode())
- print('Poslao messageFile request serveru')
- sData = s.recv(1024)
- fDownloadFile = open(sFileName, "wb")
- while sData:
- if 'done031337' in str(sData):
- break
- fDownloadFile.write(sData)
- sData = s.recv(1024)
- print(str(sData))
- print("Zavrseno skidanje poruke")
- fDownloadFile.close()
- messageFile = open(PREFIX_FILE_PATH + "porukaZaSlanje.txt", "r")
- lineRead = messageFile.readlines()
- for line in lineRead:
- print('PORUKA : ', line, ' ZAVRSENO')
- messageSend.append(line)
- boolForSend = boolForSend + 1
- messageConfigure = 'GIVE_PICKLE2'
- messageFile.close()
- sFileName = PREFIX_FILE_PATH + 'serverMe8mbersConfig.txt'
- time.sleep(0.1)
- continue
- if boolForSend == 2:
- BUFFER_SIZE = 1024
- messageConfigure = 'GIVE_PICKLE2'
- s.send(messageConfigure.encode())
- print('Poslao serverListFile request serveru')
- fDownloadFile = PREFIX_FILE_PATH + "remembServers.pickle"
- with open(fDownloadFile, 'wb') as fw:
- msg = s.recv(BUFFER_SIZE)
- fsize = int(msg.decode('utf-8').strip())
- rsize = 0
- while True:
- data = s.recv(BUFFER_SIZE)
- rsize = rsize + len(data)
- fw.write(data)
- if rsize >= fsize:
- break
- print("Zavrseno skidanje pickle-a 2")
- messageConfigure = 'GIVE_MESSAGE'
- sFileName = PREFIX_FILE_PATH + 'porukaZaSlanje.txt'
- boolForSend = boolForSend + 1
- time.sleep(0.1)
- continue
- if boolForSend == 3:
- messageConfigure1 = 'SET_USER ' + str(username1)
- s.send(messageConfigure1.encode())
- time.sleep(1)
- messageFile = open(PREFIX_FILE_PATH + "porukaZaSlanje.txt", "r")
- lineRead = messageFile.readlines()
- for line in lineRead:
- print('PORUKA : ', line, ' ZAVRSENO')
- messageSend.append(line)
- messageFile.close()
- print('LOGUJEM SE IN...')
- loop = asyncio.get_event_loop()
- loop.run_until_complete(start_process())
- return
- def BMP(s):
- return "".join((i if ord(i) < 10000 else '\ufffd' for i in s))
- def random_string(length):
- return ''.join(random.choice(string.ascii_letters) for m in range(1, length))
- def configure_message(message, length, idx):
- global messageSend
- message = messageSend[idx]
- message = message[:-1]
- message1 = ''
- message2 = ''
- messageo = message
- for i in range(1, randint(1, 30)):
- message2 += ''
- messageo = messageo.replace('!!!', message2)
- for i in range(1, randint(1, 50)):
- message1 += ''
- return message + '' + message2
- check_flaw = 0
- def vremePOCETAK(a1):
- end_time = datetime.datetime.now().time().strftime('%H:%M:%S')
- total_time=(datetime.datetime.strptime(end_time,'%H:%M:%S') - datetime.datetime.strptime(a1,'%H:%M:%S'))
- REZULTAT_DELAY = int(total_time.total_seconds())
- return REZULTAT_DELAY
- async def start_bot():
- global cnt
- while True:
- cnt = 0
- print('ZAPOCINJEM NOVU SESIJU')
- RUN_SYSTEM()
- def check_exists_by_xpath(webdriver, xpath):
- try:
- webdriver.find_element_by_xpath(xpath)
- except NoSuchElementException:
- return False
- return True
- def RUN_SYSTEM():
- options = webdriver.ChromeOptions()
- options.add_argument('headless')
- options.add_argument("--window-size=1920,1080");
- options.add_argument("--disable-gpu");
- options.add_argument("--disable-extensions");
- options.add_argument("--proxy-server='direct://'");
- options.add_argument("--proxy-bypass-list=*");
- options.add_argument("--starzed");
- chrome_options = webdriver.ChromeOptions()
- chrome_options.add_extension("ext.crx")
- prefs = {"profile.managed_default_content_settings.images": 2}
- chrome_options.add_experimental_option("prefs", prefs)
- chrome_options.add_argument("--disable-plugins-discovery");
- chrome_options.add_argument("--disable-bundled-ppapi-flash");
- driver = webdriver.Chrome(chrome_options=chrome_options)
- driver.implicitly_wait(30)
- global username1
- global password1
- print(username1 + ' ' + password1)
- driver.get("https://discordapp.com/")
- driver.find_element_by_link_text("Login").click()
- driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Email'])[1]/following::input[1]").clear()
- driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Email'])[1]/following::input[1]").send_keys(username1)
- driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Password'])[1]/following::input[1]").clear()
- driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Password'])[1]/following::input[1]").send_keys('test123')
- while check_exists_by_xpath(driver, "(.//*[normalize-space(text()) and normalize-space(.)='Password'])[1]/following::input[1]") == True:
- driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Password'])[1]/following::input[1]").send_keys(Keys.ENTER)
- time.sleep(2 + randint(1, 5))
- print("DOSAO")
- serverListReader = open(PREFIX_FILE_PATH + "remembServers.pickle", "rb")
- loadListReader = pickle.load(serverListReader)
- dict_remember = {}
- for passout in loadListReader:
- dict_remember[passout] = 0
- serverListReader.close()
- random_seed = [5, 1 , 1, 3 , 3, 4]
- global check_flaw1
- regularMESSAGE = 'GIVE_DATA'
- formatMESSAGE = ''
- global messageSend
- global s
- global cnt
- if len(messageSend[0]) < 6:
- formatMESSAGE = 'MALA PORUKA, GASIM SE'
- s.send(formatMESSAGE.encode())
- s.close()
- print('GASIM SE')
- print('Duzina poruke '+ str(len(messageSend)))
- sys.exit(0)
- time.sleep(10)
- driver.minimize_window()
- global_failure = 0
- notJoined = False
- joined = {}
- global serverATMsend
- while True:
- try:
- s.send(regularMESSAGE.encode())
- data = s.recv(2048)
- getSTR = str(data.decode('utf-8').strip())
- if getSTR == 'WAIT':
- print("SPAVAM DOBIO WAIT")
- time.sleep(61)
- continue
- getSTRpart = getSTR.split(";")
- print(getSTR)
- if 'INVITE' == getSTRpart[0]:
- serverATMsend = getSTRpart[2]
- driver.maximize_window()
- driver.get(getSTRpart[1])
- try:
- res1 = WebDriverWait(driver, 10).until(ec.presence_of_element_located((By.XPATH, "//*[contains(text(), 'Accept Invite')]")))
- driver.execute_script('arguments[0].click()', res1)
- time.sleep(3)
- driver.get("chrome://extensions")
- time.sleep(1)
- driver.get("https://www.discordapp.com/activity")
- print('ATM SERVER = ', serverATMsend, ' ', len(serverATMsend))
- time.sleep(10)
- driver.minimize_window()
- except Exception as e:
- driver.get("https://www.discordapp.com/activity")
- time.sleep(5)
- driver.minimize_window()
- time.sleep(61)
- continue
- gl = driver.find_elements_by_xpath(
- "//div[@class='guildSeparator-1X4GQ1']/following-sibling::div[contains(@class, 'guild-1EfMGQ')]/descendant::a")
- res = driver.find_element_by_tag_name("body")
- if cnt >= 110:
- driver.quit()
- return
- start_time = datetime.datetime.now().time().strftime('%H:%M:%S')
- rnd = randint(0, len(random_seed) - 1)
- try:
- WebDriverWait(driver, 20).until(
- ec.presence_of_element_located((By.XPATH, "//div[@class='guildSeparator-1X4GQ1']")))
- except Exception as e:
- print('Nisam nasao GUILDe, gasim se')
- formatMESSAGE = 'BANOVAN SAM, PROVERI'
- s.send(formatMESSAGE.encode())
- s.close()
- sys.exit(1)
- continue
- #print('ZAVRSIO SA GILDAMA ', vremePOCETAK(start_time))
- cursrvs = []
- serverFound = False
- for guild in gl:
- srvr = str(guild.get_attribute('aria-label'))
- cursrvs.append(srvr)
- if srvr in serverATMsend:
- serverFound = True
- if serverFound == False:
- print("KIKOVAN SAM SA SERVERA")
- por = 'LOSE ' + serverATMsend
- s.send(por.encode())
- time.sleep(60)
- continue
- kmpDATA = str(data.decode('utf-8').strip())
- if 'stop' == kmpDATA:
- print('USAO')
- print('Stopirana sesija')
- s.close()
- sys.exit(1)
- return
- if 'napusti' in str(data):
- time.sleep((60 * 60) * 6)
- print('VRATIO SAM SE IZ OKIDANJA')
- if not data:
- time.sleep(5)
- continue
- next_member = str(data.decode('utf-8').strip())
- print('MEMBER DOBIJEN ', next_member)
- time.sleep(1)
- res.send_keys(Keys.CONTROL + 'k')
- time.sleep(2)
- res4 = 0
- bul = True
- if bul == True:
- res4 = driver.find_element_by_xpath(
- "//input[@class='input-2VB9rf']")
- bul = False
- try:
- mname = str(next_member)
- firstPART = mname[:-5]
- secondPART = mname[len(mname) - 4:]
- res4.send_keys('@')
- for j in range(len(mname)):
- res4.send_keys(mname[j])
- time.sleep(1)
- except Exception as e:
- formatMESSAGE = 'Poslao ' + str(cnt) + '. poruku memberu ' + BMP(mname) + '- u na serveru ' + ' FAILURE1 ' + datetime.datetime.now().strftime(
- '%Y-%m-%d %H:%M:%S')
- s.send(formatMESSAGE.encode())
- continue
- try:
- time.sleep(2)
- res4.send_keys(Keys.ENTER)
- time.sleep(2)
- res3 = driver.find_element_by_xpath(
- "//textarea[@placeholder='Message @" + firstPART + "']")
- time.sleep(1)
- end_time = datetime.datetime.now().time().strftime('%H:%M:%S')
- total_time=(datetime.datetime.strptime(end_time,'%H:%M:%S') - datetime.datetime.strptime(start_time,'%H:%M:%S'))
- REZULTAT_DELAY = int(total_time.total_seconds())
- 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 ')
- res3.send_keys(Keys.CONTROL, 'c') #copy
- res3.send_keys(Keys.CONTROL, 'v') #paste
- if (91 - REZULTAT_DELAY) > 0:
- time.sleep(91 - REZULTAT_DELAY)
- start_time = datetime.datetime.now().time().strftime('%H:%M:%S')
- res3.send_keys('\n')
- res3.send_keys('\n')
- cnt = cnt + 1
- print('Poslao ', cnt, '. poruku memberu ', BMP(firstPART), ' ', start_time)
- formatMESSAGE = 'Poslao ' + str(cnt) + '. poruku memberu ' + BMP(
- BMP(firstPART)) + ' ' + start_time
- s.send(formatMESSAGE.encode())
- except Exception as e:
- print(str(e))
- ActionChains(driver).send_keys(Keys.ESCAPE).perform()
- time.sleep(1)
- ActionChains(driver).send_keys(Keys.ESCAPE).perform()
- form = 'Poslao ' + str(cnt) + '. poruku memberu ' + BMP(
- firstPART) + ' FAILURE ' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
- print('Nije moguce poslati poruku ', BMP(firstPART), ' greska = ', str(e),
- datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
- print('RAZLOG: Nisam nasao memebera u listi...')
- s.send(form.encode())
- continue
- except Exception as e:
- global_failure = global_failure + 1
- if global_failure == 10:
- driver.quit()
- return
- porukaLOG = 'Nije moguce poslati poruku ' + BMP(firstPART) + ' greska = ' + str(
- e) + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
- print('Nije moguce poslati poruku ', BMP(firstPART+secondPART), ' greska = ', str(e),
- datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
- s.send(porukaLOG.encode())
- time.sleep(3)
- print('Bot zavrsio sa radom')
- s.close()
- sys.exit(0)
- init_client()
- except Exception as e:
- s.close()
- print(str(e))
- print('GASIM SE1')
- sys.exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement