diff --git a/check_results.py b/check_results.py index 884a2a7..e5c6632 100644 --- a/check_results.py +++ b/check_results.py @@ -1,14 +1,18 @@ +import random from enum import Enum from playwright.sync_api import sync_playwright import params +from commandor_page import get_random_id_number_for_proxy from logs.LogSender import TYPE_EVENT_CHECK_RESULTS, LOG_SUBJECT_EVENT from pojo.ReserveResultPojo import ReserveResultPojo +from utils.excel_reader import ExcelHelper SORRY_SENTENCE = "nous sommes sincèrement désolés de n'avoir pu vous satisfaire cette fois-ci" PENDING_SENTENCE = "Ce soir, entre 20:00 et 20:30, vous obtiendrez une réponse par e-mail." +user_agent_list = ExcelHelper().read_user_agent_list() class ResultEnum(Enum): ACCEPTED = "ACCEPTED" @@ -23,24 +27,35 @@ def check_result_page(url) -> ResultEnum: def run(playwright, url) -> ResultEnum: - browser = playwright.webkit.launch(headless=False) + 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="Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Mobile Safari/537.36") + 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) + page.goto(url_to_check,timeout=90000) content = page.content() print(content) browser.close() if SORRY_SENTENCE in content: - print("result is REFUSED") + print("status is REFUSED") return ResultEnum.REFUSED elif PENDING_SENTENCE in content: - print("result is PENDING") + print("status is PENDING") return ResultEnum.PENDING else: - print("result is ACCEPTED") + print("status is ACCEPTED") return ResultEnum.ACCEPTED