Advertisement
Guest User

Untitled

a guest
Sep 1st, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. import cfscrape
  2. from selenium import webdriver
  3. from selenium.webdriver.common.keys import Keys
  4. from time import sleep
  5. from datetime import datetime
  6.  
  7. with open("info.txt", "r") as f:
  8. info = f.read().split()
  9.  
  10. EMAIL, PASSWORD, USERNAME = info[0], info[1], info[2]
  11. TRADE_URL = f'https://rocket-league.com/trades/{USERNAME}'
  12.  
  13. def initial_setup():
  14. '''Signs user into website, sets up Selenium'''
  15.  
  16. scraper = cfscrape.create_scraper()
  17. tokens = scraper.get_tokens('https://rocket-league.com')
  18.  
  19. driver = webdriver.PhantomJS(service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any'])
  20. driver.add_cookie({
  21. 'domain': '.rocket-league.com',
  22. 'name': tokens[0]['__cfduid'],
  23. 'value': tokens[0]['cf_clearance'],
  24. 'path': '/',
  25. 'expires': None
  26. })
  27.  
  28. driver.get('http://rocket-league.com/training/')
  29. sleep(10)
  30.  
  31. email = driver.find_element_by_name('email')
  32. email.send_keys(EMAIL)
  33.  
  34. password = driver.find_element_by_name('password')
  35. password.send_keys(PASSWORD)
  36. password.send_keys(Keys.RETURN)
  37.  
  38. return driver
  39.  
  40.  
  41. def check_items(driver):
  42. '''Checks each item in the users trade page, if older than 15 mins
  43. edits it'''
  44.  
  45. driver.get(TRADE_URL)
  46. trade_amt = driver.find_elements_by_class_name('rlg-trade-display-header') # Finds how many trades the user currently has
  47.  
  48. # Loops through each trade
  49. for i in range(1, len(trade_amt) + 1):
  50. try:
  51. text = driver.find_element_by_xpath(f"/html/body/main/div/div/div/div[4]/div[{i}]/div[1]/div/div/span").text.split()
  52. print(f'Trade {i} was last updated {text[1]} {text[2]} ago')
  53.  
  54. if text[2] == "seconds":
  55. continue
  56.  
  57. else:
  58. if text[2] in ["hour", "hours"] or int(text[1]) >= 15:
  59. # Goes to actual trade
  60. driver.find_element_by_xpath(f'/html/body/main/div/div/div/div[4]/div[{i}]/div[1]/a/div').click()
  61. sleep(2)
  62.  
  63. # Goes to edit page
  64. driver.find_element_by_xpath('/html/body/main/div/div/div/div[2]/a[1]').click()
  65. sleep(2)
  66.  
  67. # Edits the text with an extra dot if a dot is not there
  68. # Otherwise removes the dot
  69. textbox = driver.find_element_by_name('note')
  70.  
  71. if textbox.text.endswith('.'):
  72. textbox.send_keys(Keys.BACKSPACE)
  73. else:
  74. textbox.send_keys('.')
  75.  
  76. # Save changes button
  77. driver.find_element_by_name('btnSubmit').click()
  78.  
  79. # Sleep for 2 seconds to ensure it works
  80. # Return to trade page to go onto next trade
  81. sleep(2)
  82. driver.get(TRADE_URL)
  83.  
  84. except Exception as e:
  85. # If anything fails, it will just go back to the trade page
  86. # and continute the loop
  87. driver.get(TRADE_URL)
  88. print(e)
  89.  
  90.  
  91. def main():
  92. driver = initial_setup()
  93.  
  94. while True:
  95. now = datetime.now()
  96. print(f'Running: {now.hour}:{now.minute} - {now.day}/{now.month}/{now.year}')
  97. check_items(driver)
  98. print("\n")
  99.  
  100. sleep(15)
  101.  
  102. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement