from playwright.sync_api import sync_playwright, expect, Page from playwright_stealth import stealth_sync from logging import * from actions.checks import check_logged_in from actions.quiz import play_quiz_2, play_quiz_4, play_quiz_8, play_poll, detect_quiz_type, play from actions.login import login from actions.websearch import pc_search basicConfig(encoding='utf-8', level=DEBUG) def daily_cards(page: Page): for i in range(1, 4): card = page.locator(f'#daily-sets > mee-card-group:nth-child(7) > div > mee-card:nth-child({i}) > div') with page.expect_popup() as page1_info: card.click() page1 = page1_info.value stealth_sync(page1) page1.wait_for_load_state('load') try: selector = page1.get_by_role("button", name="Accepter") expect(selector).to_be_visible(timeout=10_000) selector.click() except AssertionError as e: pass # The RGPD button should not be there in the first place play(page1) page1.close() page.reload() info(f'Carte {i} : {not "mee-icon-AddMedium" in card.inner_html()}') def more_cards(page: Page): c = 1 while c < 15: # todo I don't really know why it stops without raising any errors, but I guess it's fine card = page.locator(f"#more-activities > div > mee-card:nth-child({c})") try: "mee-icon-AddMedium" in card.inner_html() except AssertionError as e: break if "mee-icon-AddMedium" in card.inner_html(): info(f"Playing more cards {c}.") with page.expect_popup() as page1_info: card.click() page1 = page1_info.value stealth_sync(page1) page1.wait_for_load_state('load') play(page1) page1.close() page.reload() info(f'Carte {c} : {not "mee-icon-AddMedium" in card.inner_html()}') c += 1 def all_cards(page: Page): # input("1") page.goto("https://rewards.bing.com") page.wait_for_load_state('load') daily_cards(page) more_cards(page) def routine(page: Page) -> None: all_cards(page) pc_search(page) with sync_playwright() as p: browser = p.firefox.launch_persistent_context("./data/", headless=False) page = browser.new_page() stealth_sync(page) login(page, input("mail ? "), input("password ? ")) all_cards(page) browser.close() """ TODO : Fidelity management. Daily search custom start vnc mobile search """