63 lines
1.9 KiB
Python
Executable File
63 lines
1.9 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import sys
|
|
|
|
import bs4
|
|
|
|
from selenium import webdriver
|
|
from selenium.webdriver.common.by import By
|
|
from selenium.webdriver.common.keys import Keys
|
|
from selenium.webdriver.common.action_chains import ActionChains
|
|
|
|
def initialize_webdriver():
|
|
return webdriver.Firefox()
|
|
|
|
def navigate_to_filegarden(browser):
|
|
browser.get("https://filegarden.com/login")
|
|
|
|
def input_email(browser, email):
|
|
emailInput = browser.find_element(By.ID, "email")
|
|
emailInput.send_keys(email)
|
|
emailInput.send_keys(Keys.RETURN)
|
|
|
|
def click_password_button(browser):
|
|
passwordButton = browser.find_element(By.XPATH, "/html/body/div[2]/div[3]/div[1]/form/div[1]/span/button[3]")
|
|
passwordButton.click()
|
|
|
|
def input_password(browser, password):
|
|
passwordInput = browser.find_element(By.ID, "password")
|
|
passwordInput.send_keys(password)
|
|
passwordInput.send_keys(Keys.RETURN)
|
|
|
|
def login_with_password(browser, email, password):
|
|
input_email(browser, email)
|
|
click_password_button(browser)
|
|
input_password(browser, password)
|
|
|
|
def click_go_to_your_garden(browser):
|
|
browser.implicitly_wait(100)
|
|
goToYourGardenButton = browser.find_element(By.LINK_TEXT, "GO TO YOUR GARDEN")
|
|
goToYourGardenButton.click()
|
|
|
|
def get_garden_filenames(browser):
|
|
titles = []
|
|
soup = bs4.BeautifulSoup(browser.page_source, "lxml")
|
|
|
|
for item in soup.find_all(attrs={"class": "name"}):
|
|
titles.append(item.text)
|
|
|
|
return titles
|
|
|
|
def main(email, password):
|
|
browser = initialize_webdriver()
|
|
navigate_to_filegarden(browser)
|
|
login_with_password(browser, email, password)
|
|
click_go_to_your_garden(browser)
|
|
garden_filenames = get_garden_filenames(browser)
|
|
# Get list of files in target upload directory that don't exist in File Garden (test based on filename? size? file contents?)
|
|
# For each file in the second list, go through the file upload process
|
|
#browser.close()
|
|
|
|
if __name__ == "__main__":
|
|
main(sys.argv[1], sys.argv[2])
|