mirror of
				https://gitea.augustin64.fr/piair/MsRewards-Reborn.git
				synced 2025-11-03 23:23:53 +01:00 
			
		
		
		
	new handeling method for fidelity. Need deeper testing, but should be fine.
This commit is contained in:
		
							
								
								
									
										61
									
								
								V5.py
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								V5.py
									
									
									
									
									
								
							@@ -33,7 +33,7 @@ def firefox_driver(mobile=False, headless=False):
 | 
				
			|||||||
    if mobile :
 | 
					    if mobile :
 | 
				
			||||||
        options.set_preference("general.useragent.override", MOBILE_USER_AGENT)
 | 
					        options.set_preference("general.useragent.override", MOBILE_USER_AGENT)
 | 
				
			||||||
        driver = webdriver.Firefox(options=options)
 | 
					        driver = webdriver.Firefox(options=options)
 | 
				
			||||||
        driver.set_window_size(1070 + hash(g._mail)%20 , 1900 + hash(g._password + "salt")%10) # mobile resolution are crazy high now, right ?
 | 
					        driver.set_window_size(1070 + hash(g._mail)%10 , 1900 + hash(g._password + "salt")%20) # mobile resolution are crazy high now, right ?
 | 
				
			||||||
    else :
 | 
					    else :
 | 
				
			||||||
        options.set_preference("general.useragent.override", PC_USER_AGENT)
 | 
					        options.set_preference("general.useragent.override", PC_USER_AGENT)
 | 
				
			||||||
        driver = webdriver.Firefox(options=options)
 | 
					        driver = webdriver.Firefox(options=options)
 | 
				
			||||||
@@ -407,7 +407,7 @@ def cookie_login(ldriver):
 | 
				
			|||||||
        printf("No cookies file Found.")
 | 
					        printf("No cookies file Found.")
 | 
				
			||||||
        return(False)
 | 
					        return(False)
 | 
				
			||||||
    except Exception as e:
 | 
					    except Exception as e:
 | 
				
			||||||
        log_error(f"error performing cookies login. Trying with password instead. {str(e)}", driver)
 | 
					        log_error(f"Error performing cookies login. Trying with password instead. \n{str(e)}", driver)
 | 
				
			||||||
        return(False)
 | 
					        return(False)
 | 
				
			||||||
    try :
 | 
					    try :
 | 
				
			||||||
        ldriver.refresh()
 | 
					        ldriver.refresh()
 | 
				
			||||||
@@ -579,39 +579,17 @@ def log_points(account="unknown"):
 | 
				
			|||||||
    if g.sql_enabled :
 | 
					    if g.sql_enabled :
 | 
				
			||||||
        add_to_database(account_name, points, g.sql_host, g.sql_usr, g.sql_pwd, g.sql_database)
 | 
					        add_to_database(account_name, points, g.sql_host, g.sql_usr, g.sql_pwd, g.sql_database)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
def fidelity():
 | 
					def fidelity():
 | 
				
			||||||
 | 
					    def sub_fidelity(): 
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
        while 1: #close all tabs
 | 
					 | 
				
			||||||
            try:
 | 
					 | 
				
			||||||
                close_tab(1)
 | 
					 | 
				
			||||||
            except:
 | 
					 | 
				
			||||||
                break
 | 
					 | 
				
			||||||
        try : 
 | 
					 | 
				
			||||||
            fidelity_link_page = get(g.fidelity_link) #get the url of fidelity page
 | 
					 | 
				
			||||||
        except Exception as e :
 | 
					 | 
				
			||||||
            printf(e)
 | 
					 | 
				
			||||||
            fidelity_link_page = False
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if fidelity_link_page : 
 | 
					 | 
				
			||||||
            fidelity_link = fidelity_link_page.content.decode("UTF-8")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (fidelity_link.split(":")[0] == "https") or (fidelity_link.split(":")[0] == "http") : 
 | 
					 | 
				
			||||||
                driver.get(fidelity_link)
 | 
					 | 
				
			||||||
            wait_until_visible(By.CSS_SELECTOR, 'div[class="pull-left spacer-48-bottom punchcard-row"]', browser=driver)
 | 
					            wait_until_visible(By.CSS_SELECTOR, 'div[class="pull-left spacer-48-bottom punchcard-row"]', browser=driver)
 | 
				
			||||||
                try : 
 | 
					 | 
				
			||||||
                    choix = driver.find_element(By.CSS_SELECTOR, 'div[class="pull-left spacer-48-bottom punchcard-row"]')  # pull-left spacer-48-bottom punchcard-row? USELESS ?
 | 
					 | 
				
			||||||
                except : # tentative de fix
 | 
					 | 
				
			||||||
                    driver.execute_script("location.reload(true);")
 | 
					 | 
				
			||||||
                    wait_until_visible(By.CSS_SELECTOR, 'div[class="pull-left spacer-48-bottom punchcard-row"]', browser=driver)
 | 
					 | 
				
			||||||
                    choix = driver.find_element(By.CSS_SELECTOR, 'div[class="pull-left spacer-48-bottom punchcard-row"]')
 | 
					 | 
				
			||||||
            answer_number = search("([0-9]) of ([0-9]) completed", driver.page_source)
 | 
					            answer_number = search("([0-9]) of ([0-9]) completed", driver.page_source)
 | 
				
			||||||
 | 
					            if answer_number is None :
 | 
				
			||||||
 | 
					                answer_number = search("([0-9]) défi\(s\) terminé\(s\) sur ([0-9])", driver.page_source)
 | 
				
			||||||
            if answer_number is None:
 | 
					            if answer_number is None:
 | 
				
			||||||
                answer_number = search("([0-9]) de ([0-9]) finalisé", driver.page_source)
 | 
					                answer_number = search("([0-9]) de ([0-9]) finalisé", driver.page_source)
 | 
				
			||||||
            if answer_number is None :
 | 
					            if answer_number is None :
 | 
				
			||||||
                answer_number = search("([0-9]) licence\(s\) sur ([0-9]) disponible\(s\)", driver.page_source)
 | 
					                answer_number = search("([0-9]) licence\(s\) sur ([0-9]) disponible\(s\)", driver.page_source)
 | 
				
			||||||
                if answer_number is None :
 | 
					 | 
				
			||||||
                    answer_number = search("([0-9]) défi\(s\) terminé\(s\) sur ([0-9])", driver.page_source)
 | 
					 | 
				
			||||||
            if answer_number is None :
 | 
					            if answer_number is None :
 | 
				
			||||||
                answer_number = [0,0,0]
 | 
					                answer_number = [0,0,0]
 | 
				
			||||||
            for _ in range(int(answer_number[2]) - int(answer_number[1])):
 | 
					            for _ in range(int(answer_number[2]) - int(answer_number[1])):
 | 
				
			||||||
@@ -630,20 +608,36 @@ def fidelity():
 | 
				
			|||||||
                        log_error(f"fidélité - double erreur - e1 : {format_error(e1)} - e2 {format_error(e2)}")
 | 
					                        log_error(f"fidélité - double erreur - e1 : {format_error(e1)} - e2 {format_error(e2)}")
 | 
				
			||||||
                        break
 | 
					                        break
 | 
				
			||||||
                custom_sleep(uniform(3, 5))
 | 
					                custom_sleep(uniform(3, 5))
 | 
				
			||||||
                    driver.switch_to.window(driver.window_handles[1])
 | 
					                driver.switch_to.window(driver.window_handles[2])
 | 
				
			||||||
                try_play(driver.title)
 | 
					                try_play(driver.title)
 | 
				
			||||||
                    driver.get(fidelity_link) # USELESS ?
 | 
					 | 
				
			||||||
                custom_sleep(uniform(3, 5))
 | 
					                custom_sleep(uniform(3, 5))
 | 
				
			||||||
                try:
 | 
					                try:
 | 
				
			||||||
                        close_tab(driver.window_handles[1])
 | 
					                    close_tab(driver.window_handles[2], 1)
 | 
				
			||||||
                except Exception as e:
 | 
					                except Exception as e:
 | 
				
			||||||
                    printf(e)
 | 
					                    printf(e)
 | 
				
			||||||
            printf("fidelity - done")
 | 
					            printf("fidelity - done")
 | 
				
			||||||
            else :
 | 
					 | 
				
			||||||
                printf("invalid fidelity link.")
 | 
					 | 
				
			||||||
        except Exception as e:
 | 
					        except Exception as e:
 | 
				
			||||||
            log_error(e)
 | 
					            log_error(e)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pause = driver.find_element(By.CSS_SELECTOR, f'[class="c-action-toggle c-glyph f-toggle glyph-pause"]') # mettre le truc en pause
 | 
				
			||||||
 | 
					    pause.click()
 | 
				
			||||||
 | 
					    cartes = driver.find_elements(By.CSS_SELECTOR, f'[ng-repeat="item in $ctrl.transcludedItems"]')
 | 
				
			||||||
 | 
					    nb_cartes = len(cartes)
 | 
				
			||||||
 | 
					    checked_list_all = driver.find_elements(By.CSS_SELECTOR, f'[ng-if="$ctrl.complete"]')
 | 
				
			||||||
 | 
					    for i in range(nb_cartes):
 | 
				
			||||||
 | 
					        cartes[i].click() # affiche la bonne carte
 | 
				
			||||||
 | 
					        checked_txt = checked_list_all[i].get_attribute("innerHTML")
 | 
				
			||||||
 | 
					        ok = checked_txt.count("StatusCircleOuter checkmark")
 | 
				
			||||||
 | 
					        total = checked_txt.count("StatusCircleOuter")
 | 
				
			||||||
 | 
					        if (ok != total) :
 | 
				
			||||||
 | 
					            elm = driver.find_elements(By.CLASS_NAME, 'clickable-link')[i]
 | 
				
			||||||
 | 
					            if not "moviesandtv" in elm.get_attribute("innerHTML"): # not the film card
 | 
				
			||||||
 | 
					                elm.click()
 | 
				
			||||||
 | 
					                driver.switch_to.window(driver.window_handles[len(driver.window_handles)-1])
 | 
				
			||||||
 | 
					                sub_fidelity()
 | 
				
			||||||
 | 
					                close_tab(driver.window_handles[1])
 | 
				
			||||||
 | 
					        custom_sleep(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def mobile_alert_popup():
 | 
					def mobile_alert_popup():
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
@@ -723,7 +717,8 @@ def daily_routine(custom = False):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def dev():
 | 
					def dev():
 | 
				
			||||||
    input("dev pause")
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def CustomStart():
 | 
					def CustomStart():
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user