diff --git a/V6.py b/V6.py index 2bf3ddb..cbede0c 100755 --- a/V6.py +++ b/V6.py @@ -199,42 +199,67 @@ def do_poll(): # Find each playable card and tries to click on it to earn points def all_cards(): driver = config.WebDriver.driver - - def check_welcome_tour() -> bool: - if "rewards.bing.com/welcometour" not in driver.current_url: - return False - - info("Popup 'Explorer le programme' reçue") - wait_until_visible(By.ID, "welcome-tour", timeout=5, browser=driver) - custom_sleep(1.5) - - welcome_tour = driver.find_element(By.ID, "welcome-tour") - interest_button_box = welcome_tour.find_element(By.CLASS_NAME, "interest-buttons") - interests = interest_button_box.find_elements(By.CLASS_NAME, "ng-binding") - debug("Got the following interests: " + str(interests)) - random.choice(interests).click() # Choose interest - custom_sleep(1.5) - - claim_button = welcome_tour.find_element(By.ID, "claim-button") - claim_button.click() # submit - custom_sleep(1.5) - return True - - def check_streak_protection() -> bool: + + def check_popups() -> bool: """ - Ne perdez plus jamais votre série ! + Check various annoying popups """ - try: - streak_protection_close = driver.find_element(By.ID, "streak-protection-popup-close-cross") - streak_protection_activate = driver.find_elements(By.CLASS_NAME, "earningPagePopUpPopUpSelectButton") - streak_protection_activate[0].click() - info("Popup 'Streak Protection' reçue") + def check_welcome_tour() -> bool: + if "rewards.bing.com/welcometour" not in driver.current_url: + return False + + info("Popup 'Explorer le programme' reçue") + wait_until_visible(By.ID, "welcome-tour", timeout=5, browser=driver) custom_sleep(1.5) + welcome_tour = driver.find_element(By.ID, "welcome-tour") + interest_button_box = welcome_tour.find_element(By.CLASS_NAME, "interest-buttons") + interests = interest_button_box.find_elements(By.CLASS_NAME, "ng-binding") + debug("Got the following interests: " + str(interests)) + random.choice(interests).click() # Choose interest + custom_sleep(1.5) + + claim_button = welcome_tour.find_element(By.ID, "claim-button") + claim_button.click() # submit + custom_sleep(1.5) return True - except (exceptions.NoSuchElementException, exceptions.ElementNotInteractableException, IndexError): - # les éléments sont présents dans le DOM même quand la popup n'est pas visible apparemment - return False + + def check_streak_protection() -> bool: + """ + Ne perdez plus jamais votre série ! + """ + try: + streak_protection_close = driver.find_element(By.ID, "streak-protection-popup-close-cross") + streak_protection_activate = driver.find_elements(By.CLASS_NAME, "earningPagePopUpPopUpSelectButton") + streak_protection_activate[0].click() + info("Popup 'Streak Protection' reçue") + custom_sleep(1.5) + + return True + except (exceptions.NoSuchElementException, exceptions.ElementNotInteractableException, IndexError): + # les éléments sont présents dans le DOM même quand la popup n'est pas visible apparemment + return False + + def check_streak_protection_expired() -> bool: + """ + Non, vous avez utilisé tous vos jours de protection contre les séries ! + """ + try: + streak_protection_close = driver.find_element(By.ID, "streak-protection-popup-close-cross") + ok_sad_button = driver.find_elements(By.CLASS_NAME, "dashboardPopUpPopUpSelectButton") + ok_sad_button[0].click() + info("Popup 'Streak Protection fully used' reçue") + custom_sleep(1.5) + + return True + except (exceptions.NoSuchElementException, exceptions.ElementNotInteractableException, IndexError): + return False + + return ( + check_welcome_tour() + or check_streak_protection() + or check_streak_protection_expired() + ) driver.get("https://rewards.bing.com") wait_until_visible(By.CLASS_NAME, "c-card-content", 10, driver) @@ -289,8 +314,7 @@ def all_cards(): activity = "" custom_sleep(1.5) - check_welcome_tour() - check_streak_protection() + check_popups() driver.execute_script("arguments[0].scrollIntoView();", card_list[i]) custom_sleep(1.5) card_list[i].click() @@ -307,8 +331,7 @@ def all_cards(): if "mee-icon-AddMedium" not in card_list[i].get_attribute("innerHTML"): continue - check_welcome_tour() - check_streak_protection() + check_popups() driver.execute_script("arguments[0].scrollIntoView();", card_list[i]) card_list[i].click()