jardin/jardin.py

76 lines
2.2 KiB
Python
Executable File

#!/usr/bin/python3
import os, 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 get_local_filenames(directory):
return os.listdir(directory)
def get_missing_filenames(localFiles, gardenFiles):
missingFilenames = []
for localFile in localFiles:
if localFile not in gardenFiles:
missingFilenames.append(localFile)
return missingFilenames
def main(email, password, directory):
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)
local_filenames = get_local_filenames(directory)
get_missing_filenames(local_filenames, garden_filenames)
# 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], sys.argv[3])