diff --git a/panera_sync/login.py b/panera_sync/login.py index 3411279..f7d1e63 100644 --- a/panera_sync/login.py +++ b/panera_sync/login.py @@ -1,19 +1,27 @@ from lxml.html import fromstring as lxml_from_string from urllib.parse import urljoin - +import requests from panera_sync.saml_check import saml_check from panera_sync.fill_form import get_form_fields +PANERA_URL = "https://pantry.panerabread.com" + + +def get_login_page(session: requests.Session): + landing = session.get(PANERA_URL) + return saml_check(session, landing) -def login_user(session, response, username, password): + +def login_user(session, username, password): + response = get_login_page(session) parsed = lxml_from_string(response.text) form = parsed.xpath("//form")[0] post_url, to_send = get_form_fields(form) to_send["username"] = username to_send["password"] = password - print(to_send) + post_url = urljoin(response.url, post_url) - print(post_url) + headers = { "Host": "iso3.panerabread.com", "Referer": "https://pantry.panerabread.com/", diff --git a/panera_sync/main_loop.py b/panera_sync/main_loop.py index 3c59ccd..d44aa37 100644 --- a/panera_sync/main_loop.py +++ b/panera_sync/main_loop.py @@ -1,6 +1,7 @@ +import datetime + import lxml import requests -import datetime from panera_sync.saml_check import saml_check from panera_sync.login import login_user @@ -11,18 +12,10 @@ from panera_sync.oauth_required import ( get_shifts, ) -PANERA_URL = "https://pantry.panerabread.com" - - -def get_login_page(session: requests.Session): - landing = session.get(PANERA_URL) - return saml_check(session, landing) - def login(username, password): session = requests.Session() - login_page = get_login_page(session) - login_user(session, login_page, username, password) + login_user(session, username, password) return session diff --git a/panera_sync/saml_check.py b/panera_sync/saml_check.py index f26bc16..838fc04 100644 --- a/panera_sync/saml_check.py +++ b/panera_sync/saml_check.py @@ -20,6 +20,6 @@ def saml_submit(session, response): def saml_check(session, response, response_text=None): parsed = lxml_from_string(response.text) witness = parsed.xpath('//form//input[contains(@name,"SAML")]') - print(witness) + if len(witness) != 0: return saml_submit(session, response)