diff --git a/commandor_page.py b/commandor_page.py index 08138ca..e07984a 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -3,9 +3,11 @@ import random import string import threading import time +from typing import Union from playwright.sync_api import sync_playwright +import params from params import PROXY_SERVER, PROXY_PASSWORD from pojo.ReserveResultPojo import ReserveResultPojo, PublishType from pojo.contact_pojo import ContactPojo @@ -40,7 +42,17 @@ class CommandorPage: # elif "firefox" in user_agent.lower(): # self.browser = pwright.firefox.launch(headless=False, timeout=90000, proxy=proxy) # else: - self.start_brower(proxy, pwright, user_agent) + first_page = None + while first_page is None: + first_page = self.start_brower(proxy, pwright, user_agent) + proxy_username = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() + self.logger.info("proxy_username is " + proxy_username) + proxy = { + "server": params.PROXY_SERVER, + "username": proxy_username, + "password": params.PROXY_PASSWORD + } + self._setPhoneCountryAndStore() self._setPhoneNumber(contact.phone) self._setName(contact.last_name, contact.first_name) @@ -51,7 +63,7 @@ class CommandorPage: self.clickOnValidBtn() # self.page.goto("file:///Users/lpan/Downloads/input_otp.html") otp_input = self.page.locator(OTP_FIELD_ID) - otp_input.wait_for(state='visible',timeout=90000) + otp_input.wait_for(state='visible', timeout=90000) on_ready_for_otp(e, self) event_is_set = e.wait() logging.info('event set: %s', event_is_set) @@ -72,7 +84,7 @@ class CommandorPage: self.reset_air_plan_mode() # check and send successful event - def start_brower(self, proxy, pwright, user_agent): + def start_brower(self, proxy, pwright, user_agent) -> Union[str, None]: try: self.browser = pwright.firefox.launch(headless=False, timeout=90000, proxy=proxy) self.logger.info("user_agent is " + user_agent) @@ -82,8 +94,10 @@ class CommandorPage: self.page.add_init_script("""() => Object.defineProperty(navigator,'webdriver',{get: () => undefined}""") self.page.on("load", self._on_page_loaded) self.page.goto(RDV_URL, timeout=90000) + return self.page.content() except Exception as error: self.logger.exception(error) + return None def start_page(self, proxy, contact: ContactPojo, on_ready_for_otp, on_sucess) -> threading.Event: e = threading.Event() diff --git a/main.py b/main.py index 5496924..6418be1 100644 --- a/main.py +++ b/main.py @@ -9,7 +9,7 @@ from typing import Union from gsmmodem import GsmModem import params -from commandor_page import CommandorPage, get_random_id_number_for_proxy +from commandor_page import CommandorPage from logs.AppLogging import init_logger from modems.ModemPool import ModemPool from modems.card_pool import CardPool