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()