From b918bec547d50b8c89011dfa6cdc30cb0dfffa41 Mon Sep 17 00:00:00 2001 From: Airwave1981 <32637309+Airwave1981@users.noreply.github.com> Date: Sun, 17 Sep 2023 15:10:03 +0200 Subject: [PATCH] Now the program checks if the user is already logged in (#203) Co-authored-by: Sebastian Thomschke --- kleinanzeigen_bot/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/kleinanzeigen_bot/__init__.py b/kleinanzeigen_bot/__init__.py index b5ebfe5..80e0e87 100644 --- a/kleinanzeigen_bot/__init__.py +++ b/kleinanzeigen_bot/__init__.py @@ -350,6 +350,10 @@ class KleinanzeigenBot(SeleniumMixin): LOG.info("Logging in as [%s]...", self.config["login"]["username"]) self.web_open(f"{self.root_url}/m-einloggen.html?targetUrl=/") + if self.is_logged_in(): + LOG.info("Already logged in as [%s]. Skipping login.", self.config["login"]["username"]) + return + # close redesign banner try: self.web_click(By.XPATH, '//*[@id="pre-launch-comms-interstitial-frontend"]//button[.//*[text()[contains(.,"nicht mehr anzeigen")]]]') @@ -378,6 +382,16 @@ class KleinanzeigenBot(SeleniumMixin): except NoSuchElementException: pass + def is_logged_in(self) -> bool: + try: + user_email_elem = self.web_find(By.ID, "user-email") + email_text = user_email_elem.text + if f"angemeldet als: {self.config['login']['username']}" == email_text: + return True + except NoSuchElementException: + return False + return False + def handle_captcha_if_present(self, captcha_element_id:str, msg:str) -> None: try: self.web_click(By.XPATH, f"//*[@id='{captcha_element_id}']")