qiwichupa

change_title_via_restream.io.py

Oct 28th, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.39 KB | None | 0 0
  1. #!/usr/bin/python3
  2. #
  3. # Change titles (dash) via restream.io
  4. # v.1.01
  5. #######################################################
  6. # REQUIREMENTS:
  7. #--------------
  8. # pip: pyvirtualdisplay, selenium
  9. # soft: chromium-chromedriver, chromium-browser, xvfb
  10. #######################################################
  11. import sys
  12. from pyvirtualdisplay import Display
  13. from selenium import webdriver
  14. from selenium.webdriver.common.keys import Keys
  15. from selenium.webdriver.common.by import By
  16. from selenium.webdriver.support.ui import WebDriverWait
  17. from selenium.webdriver.support import expected_conditions as EC
  18.  
  19. ############
  20. # SETTINGS #
  21. ############
  22. re_login = "[email protected]"
  23. re_pass = "PASSWORD"
  24. re_id = "000000" # account id, look at url in browser
  25. chromedriver_path = "/usr/lib/chromium-browser/chromedriver"
  26.  
  27. ############
  28. #   MAIN   #
  29. ############
  30. # get dash from first arg
  31. newDash = sys.argv[1]
  32.  
  33. # create virtual display for chrome
  34. display = Display(visible=0, size=(800, 600))
  35. display.start()
  36.  
  37. # create chrome object
  38. driver = webdriver.Chrome(chromedriver_path)
  39.  
  40. # open login page
  41. driver.get("https://restream.io/login")
  42. # select form fields by html tags names
  43. login_form_email = driver.find_element_by_name("email")
  44. login_form_pass = driver.find_element_by_name("password")
  45. # sent login and password to fields
  46. login_form_email.send_keys(re_login)
  47. login_form_pass.send_keys(re_pass)
  48. # press Enter in password field to logon
  49. login_form_pass.send_keys(Keys.RETURN)
  50.  
  51. try:
  52.   # check loading page by tag with ID "jsChannelList" (must present on main page of profile)
  53.   element = WebDriverWait(driver, 10).until(
  54.     EC.presence_of_element_located((By.ID, "jsChannelList"))
  55.   )
  56. finally:
  57.   # click link of title change page
  58.   reDashLinkSelector = "a[href='/titles/" + re_id + "']"
  59.   driver.find_element_by_css_selector(reDashLinkSelector).click()
  60.  
  61.  
  62. try:
  63.   # another check
  64.   element = WebDriverWait(driver, 10).until(
  65.     EC.presence_of_element_located((By.ID, "jsChannelTitleList"))
  66.   )
  67. finally:
  68.   # select main title field
  69.   title = driver.find_element_by_name("all-titles")
  70.   # click on it
  71.   title.click()
  72.   # send our title to field
  73.   title.send_keys(newDash)
  74.   # select  and click update button
  75.   driver.find_element_by_css_selector("input[value='Update All']").click()
  76.   title.send_keys(Keys.RETURN)
  77.  
  78. # close browser
  79. driver.close()
  80.  
  81. # close virtual display
  82. display.stop()
Add Comment
Please, Sign In to add comment