canvasapp/tempget.py

136 lines
4.0 KiB
Python

#
#
# Fetcher for my otter and pinterest accounts. And whatever else.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import re
import time
from canvas_secrets import banner_url1, banner_url2, GOO, GOO_PIN, otter_login, otter_pw
# Use Firefox and log in to ssb and get full schedule
def login():
#todo: my data here.... secret
url = banner_url2
un = GOO
pw = GOO_PIN
text = ''
try:
driver = webdriver.Firefox()
driver.get(url)
driver.find_element_by_id("username").clear()
driver.find_element_by_id("username").send_keys(un)
driver.find_element_by_name("password").send_keys(pw)
driver.find_element_by_name("loginForm").submit()
driver.implicitly_wait(5)
print(driver.title)
driver.find_element_by_link_text("Students").click()
driver.implicitly_wait(5)
print(driver.title)
driver.find_element_by_link_text("Registration").click()
driver.implicitly_wait(5)
print(driver.title)
driver.find_element_by_link_text("Search for Classes").click()
driver.implicitly_wait(15)
print(driver.title)
dd = Select(driver.find_element_by_name("p_term"))
if (dd):
dd.select_by_visible_text(SEMESTER)
driver.find_element_by_xpath("/html/body/div/div[4]/form").submit()
driver.implicitly_wait(15)
print(driver.title)
driver.find_element_by_xpath("/html/body/div/div[4]/form/input[18]").click()
driver.implicitly_wait(10)
print(driver.title)
driver.find_element_by_name("SUB_BTN").click()
driver.implicitly_wait(10)
print(driver.title)
text = driver.page_source
except Exception as e:
print("Got an exception: ", e)
finally:
print("")
driver.quit()
return text
def filename_friendly(str):
str1 = re.sub(r'\s+','_',str)
return "".join([c for c in str1 if c.isalpha() or c.isdigit() or c==' ']).rstrip()
def otter():
driver = webdriver.Firefox()
driver.get("https://otter.ai/signin")
#assert "Python" in driver.title
elem = driver.find_element_by_css_selector('#mat-input-0')
elem.clear()
elem.send_keys(otter_login)
elem.send_keys(Keys.RETURN)
elem = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "#mat-input-1")))
elem.clear()
elem.send_keys(otter_pw)
elem.send_keys(Keys.RETURN)
time.sleep(5)
#driver.implicitly_wait(15)
driver.get("https://otter.ai/my-notes")
driver.implicitly_wait(10)
items = driver.find_elements_by_css_selector('div.__conversation-title')
print("I found %i conversations" % len(items))
titles = []
for i in items:
print(i.text)
titles.append(i.text)
count = len(items)
n = 0
while n < count:
items[n].click()
element = WebDriverWait(driver, 15).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "div.conversation-detail__content")))
date_elem = driver.find_element_by_css_selector('.conversation-detail__title__meta')
kw_elem = driver.find_element_by_css_selector('.conversation-detail__title__keywords-list')
myfile = filename_friendly(date_elem.text) + '_' + filename_friendly(titles[n]) + '.txt'
ff = open('otter/%i.txt' % n, 'w')
ff.write("Title: %s\n" % titles[n])
ff.write("Keywords: %s\n\n" % kw_elem.text)
ff.write(element.text)
ff.close()
driver.get("https://otter.ai/my-notes")
driver.implicitly_wait(10)
items = driver.find_elements_by_css_selector('div.__conversation-title')
n += 1
driver.close()
print("OK")
#otter()
print(login() )