ScrapTFRaffleBotSelenium/main.py

90 lines
4.3 KiB
Python

import time
import sys
from termcolor import colored
from classes.browser import Browser
from selenium.webdriver.common.by import By
SCRAPTF = ''
USERNAME = ''
COOKIE_DOMAIN = '.scrap.tf'
BASE_URL = 'https://scrap.tf'
RAFFLE_URL = '/raffles/'
PAGINATION_ATTEMPTS = 0
BROWSER = None
def load_arguments():
global SCRAPTF, USERNAME
SCRAPTF = sys.argv[1]
USERNAME = sys.argv[2]
def start_browser():
global BROWSER
try:
BROWSER = Browser()
except KeyboardInterrupt as e:
print(
colored(f"Received an interrupt signal (Ctrl+C) during browser instance creation, assuming panic and shutting down. {e}", "yellow"))
sys.exit()
except Exception as e:
print(
colored(f"Fatal error during browser instance creation: {e}", "red"))
def set_cookies():
global BROWSER
BROWSER.open(BASE_URL + RAFFLE_URL)
BROWSER.add_cookie('scraptf', SCRAPTF, COOKIE_DOMAIN, BASE_URL)
BROWSER.add_cookie('ncmp-cc', '', COOKIE_DOMAIN, BASE_URL)
BROWSER.add_cookie('ncmp', 'CP3FdEAP3FdEADyvJAENAeEgAP_gAEPgACiQg1NX_H__bX9v-Xr36ft0eY1f99j77sQxBhfJs-4FyLvW_JwX32EyNE26tqYKmRIEu3ZBIQFtHJnURVihaogVrzHsYkGcgTNKJ-BkgHMRa2dYCF5vmYtj-QKZ5_p_d3f52T_9_dv-3dzzz9Vnv3e9fmdlcKida59tH_n_bRKb-7Ie9_7-_4v09N_rk2_eTVv_9evv71-u_t____9_9__AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEQamr_j__tr-3_L179P26PMav--x992IYgwvk2fcC5F3rfk4L77CZGibdW1MFTIkCXbsgkIC2jkzqIqxQtUQK15j2MSDOQJmlE_AyQDmItbOsBC83zMWx_IFM8_0_u7v87J_-_u3_bu555-qz37vevzOyuFROtc-2j_z_tolN_dkPe_9_f8X6em_1ybfvJq3_-vX396_Xf2____-_-__gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACAA.YAAAAAAAAAAA', COOKIE_DOMAIN, BASE_URL)
def close_browser():
global BROWSER
if BROWSER:
BROWSER.quit()
def check_notifications():
global BROWSER
notices = BROWSER.get_element('.user-notices-count').text
if notices != '0':
print(colored('You have ' + notices + ' new notices!', 'red'))
def unentered_raffles():
global BROWSER
BROWSER.open(BASE_URL + RAFFLE_URL)
for x in range(0, PAGINATION_ATTEMPTS):
BROWSER.scroll_down()
if BROWSER.element_exists('.panel-body raffle-pagination-done'):
break
raffles = BROWSER.get_elements('#raffles-list .panel-raffle:not(.raffle-entered)')
raffle_list = []
for element in raffles:
link_element = element.find_element(By.CSS_SELECTOR, 'a')
relative_url = link_element.get_attribute('href').replace(BASE_URL, '').replace(RAFFLE_URL, '')
if relative_url:
raffle_list.append(relative_url)
print(colored('There are ' + str(len(raffle_list)) + ' raffles to enter for ' + USERNAME + '...', 'blue'))
check_notifications()
return raffle_list
def enter_raffle(raffle):
global BROWSER
BROWSER.open(BASE_URL + RAFFLE_URL + raffle)
result = BROWSER.click_element('button.btn-lg:not(#raffle-enter)')
if result:
if BROWSER.find_element('.raffle-entered-msg', True):
print(colored('Succesfully entered ' + BROWSER.get_element('title').text[:-19] + ' (' + raffle + ')!', 'green'))
time.sleep(5)
else:
print(colored('Couldn\'t enter ' + BROWSER.get_element('title').text[:-19] + ' (' + raffle + '), check the browser instance for Captcha!', 'red'))
input("Press Enter to continue...")
return result
def enter_raffles():
raffles = unentered_raffles()
for raffle in raffles:
enter_raffle(raffle)
load_arguments()
start_browser()
set_cookies()
enter_raffles()
close_browser()