diff --git a/check_results.py b/check_results.py index e5c6632..274ea31 100644 --- a/check_results.py +++ b/check_results.py @@ -1,5 +1,6 @@ import random from enum import Enum +from typing import Union from playwright.sync_api import sync_playwright @@ -14,6 +15,7 @@ PENDING_SENTENCE = "Ce soir, entre 20:00 et 20:30, vous obtiendrez une réponse user_agent_list = ExcelHelper().read_user_agent_list() + class ResultEnum(Enum): ACCEPTED = "ACCEPTED" REFUSED = "REFUSED" @@ -28,24 +30,11 @@ def check_result_page(url) -> ResultEnum: def run(playwright, url) -> ResultEnum: browser = playwright.firefox.launch(headless=False) - PROXY_USERNAME = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() - proxy = { - "server": params.PROXY_SERVER, - "username": PROXY_USERNAME, - "password": params.PROXY_PASSWORD - } - firefox_user_agents = filter(lambda user_agent: "firefox" in user_agent.lower(), user_agent_list) - firefox_user_agents_list = list(firefox_user_agents) - user_agent = random.choice(firefox_user_agents_list) - page = browser.new_page( - user_agent=user_agent, - proxy=proxy) - page.add_init_script("""() => Object.defineProperty(navigator,'webdriver',{get: () => undefined}""") url_to_check = url.replace("register/", "") url_to_check = url_to_check + "?lang=fr" - print(url_to_check) - page.goto(url_to_check,timeout=90000) - content = page.content() + content = None + while content is None: + content = load_page(browser, url_to_check) print(content) browser.close() if SORRY_SENTENCE in content: @@ -59,6 +48,28 @@ def run(playwright, url) -> ResultEnum: return ResultEnum.ACCEPTED +def load_page(browser, url) -> Union[str, None]: + try: + PROXY_USERNAME = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() + proxy = { + "server": params.PROXY_SERVER, + "username": PROXY_USERNAME, + "password": params.PROXY_PASSWORD + } + firefox_user_agents = filter(lambda user_agent: "firefox" in user_agent.lower(), user_agent_list) + firefox_user_agents_list = list(firefox_user_agents) + user_agent = random.choice(firefox_user_agents_list) + page = browser.new_page( + user_agent=user_agent, + proxy=proxy) + page.add_init_script("""() => Object.defineProperty(navigator,'webdriver',{get: () => undefined}""") + page.goto(url, timeout=90000) + return page.content() + except Exception as error: + print(error) + return None + + # need to start at 21h00 if __name__ == '__main__': # get the list @@ -71,7 +82,8 @@ if __name__ == '__main__': reserve_pojo = ReserveResultPojo.from_firestore_dict(appointment.to_dict()) if reserve_pojo.accepted: print("status is " + reserve_pojo.accepted) - if reserve_pojo.accepted is None or ResultEnum.PENDING.value == reserve_pojo.accepted: + if reserve_pojo.accepted is None: + # or ResultEnum.PENDING.value == reserve_pojo.accepted: result = check_result_page(reserve_pojo.url) collection.document(reserve_pojo.id).update({u'accepted': result.name}) print(count) diff --git a/commandor_page.py b/commandor_page.py index 8aac263..7949b18 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -101,8 +101,8 @@ class CommandorPage: print("on_document_loaded called") def _setPhoneCountryAndStore(self): + # document.getElementById("prefer").value = \"faubourg\"; self.page.evaluate("""()=>{ - document.getElementById("prefer").value = \"faubourg\"; document.getElementById("phone_country").value = \"FR\" }""") def _setPhoneNumber(self, phoneNumber): diff --git a/wait_for_sms.py b/wait_for_sms.py index 58d494a..fa2196a 100644 --- a/wait_for_sms.py +++ b/wait_for_sms.py @@ -13,7 +13,6 @@ from modems.card_pool import CardPool from params import MODEM_POOL_PORTS, CARD_POOL_PORT from pojo.serial_modem import SerialModem from utils.excel_reader import ExcelHelper -from utils.operator import check_operator, Operator OTP_TIMEOUT = 40 commandor = CommandorPage() @@ -46,8 +45,6 @@ def timeout_occurred(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem): global current_gsm_modem current_gsm_modem = serial_modem.modem - # if check_operator(serial_modem.ccid) == Operator.LYCAMOBILE: - # lycamobile try: current_gsm_modem.deleteMultipleStoredSms(memory="SM") except Exception as error: @@ -87,8 +84,8 @@ def init_modems() -> list: def start_waiting_sms(): # logger = logging.getLogger() - slot_number = 1 - slot_sum = 28 + slot_number = 12 + slot_sum = 32 for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i))