From c665144b28782e4a97a31ce7cba0d3ee680c54d4 Mon Sep 17 00:00:00 2001 From: piair338 Date: Tue, 25 Oct 2022 08:03:24 +0000 Subject: [PATCH] I need a better solution --- V4.py | 181 +++++++++++++++++++++++------------------------ modules/tools.py | 14 ++-- 2 files changed, 95 insertions(+), 100 deletions(-) diff --git a/V4.py b/V4.py index ed39c10..2697000 100755 --- a/V4.py +++ b/V4.py @@ -69,14 +69,14 @@ def claim_amazon(): webhookFailure.send(_mail +" - "+ fcode) return(1) else : - LogError("impossible de localiser le code ", driver) + LogError("impossible de localiser le code ", driver, _mail) return(1) else : - LogError("la recuperation ne peux pas être automatique", driver) + LogError("la recuperation ne peux pas être automatique", driver, _mail) return(0) except Exception as e : - LogError(f'problème dans la recuperation : {str(e)}', driver) + LogError(f'problème dans la recuperation : {str(e)}', driver, _mail) def setup_proxy(ip, port) : @@ -133,7 +133,7 @@ def CustomSleep(temps): else: sleep(temps) except KeyboardInterrupt : - printf("attente annulée") + printf("attente annulée", _mail) @@ -171,7 +171,7 @@ PlayQuiz[N]([int : override]) make the quizz with N choice each time. They usual override is the number of question, by default, it's the number of question in this specific quizz. Can be usefull in some case, where the programm crashes before finishing the quizz """ def PlayQuiz2(override=10): - printf("début de PlayQuiz2") + printf("début de PlayQuiz2", _mail) for j in range(override): try: RGPD() @@ -200,13 +200,13 @@ def PlayQuiz2(override=10): driver.execute_script("arguments[0].click();", elem) except Exception as e: - LogError("PlayQuiz2" + str(e), driver) + LogError("PlayQuiz2" + str(e), driver, _mail) break - printf("PlayQuiz2 finis") + printf("PlayQuiz2 finis", _mail) def PlayQuiz8(override=3): - printf(f"PlayQuiz8 : start, override : {override}") + printf(f"PlayQuiz8 : start, override : {override}", _mail) try: c = 0 for i in range(override): @@ -219,7 +219,7 @@ def PlayQuiz8(override=3): if 'iscorrectoption="True" ' in Card.get_attribute("outerHTML"): ListeOfGood.append(f"rqAnswerOption{i-1}") # premier div = 3 ? except Exception as e: - LogError(f"playquiz8 - 1 - {e}", driver) + LogError(f"playquiz8 - 1 - {e}", driver, _mail) shuffle(ListeOfGood) for i in ListeOfGood: @@ -233,7 +233,7 @@ def PlayQuiz8(override=3): try: driver.execute_script("arguments[0].click();", elem) except Exception as e: - LogError(f"playquizz8 - 2 - {e}", driver) + LogError(f"playquizz8 - 2 - {e}", driver, _mail) except exceptions.NoSuchElementException as e : try : driver.refresh() @@ -241,25 +241,25 @@ def PlayQuiz8(override=3): elem = driver.find_element(By.ID, i) elem.click() except Exception as e : - LogError(f"playquizz8 - 5 - {e}", driver) + LogError(f"playquizz8 - 5 - {e}", driver, _mail) except Exception as e: if CUSTOM_START: - printf(f"playquiz8 - 3 - {e}") # may append during + printf(f"playquiz8 - 3 - {e}", _mail) # may append during else: - LogError(f"playquizz8 - 3 - {e}", driver) + LogError(f"playquizz8 - 3 - {e}", driver, _mail) except Exception as e: - LogError(f"PlayQuiz8 - 4 - {e} \n ListOfGood : {str(ListeOfGood)}", driver) + LogError(f"PlayQuiz8 - 4 - {e} \n ListOfGood : {str(ListeOfGood)}", driver, _mail) - printf("PlayQuiz8 : fin ") + printf("PlayQuiz8 : fin ", _mail) def PlayQuiz4(override=None): - printf("PlayQuiz4 : start") + printf("PlayQuiz4 : start", _mail) if not override: try: # permet de gerer les truc de fidélité, qui sont plus long override = int(findall('rqQuestionState([\d]{1,2})"', driver.page_source)[-1]) - printf(f"Override : {override}") + printf(f"Override : {override}", _mail) except: override = 3 @@ -270,8 +270,8 @@ def PlayQuiz4(override=None): RGPD() reponse = search('correctAnswer":"([^"]+)', txt)[1] # je suis pas sur qu'il y ait un espace reponse = reponse.replace("\\u0027", "'") # il faut cancel l'unicode avec un double \ (on replacer les caracteres en unicode en caracteres utf-8) - printf(f"validation de la reponse ") - printf(f"validation de la reponse {i+1}/{override} {reponse}") + printf(f"validation de la reponse ", _mail) + printf(f"validation de la reponse {i+1}/{override} {reponse}", _mail) try: elem = driver.find_element( By.CSS_SELECTOR, f'[data-option="{reponse}"]' @@ -281,16 +281,16 @@ def PlayQuiz4(override=None): driver.execute_script("arguments[0].click();", elem) except Exception as e: - LogError(f"PlayQuiz4 {str(e)}", driver) + LogError(f"PlayQuiz4 {str(e)}", driver, _mail) raise ValueError(e) - printf("PlayQuiz4 : end") + printf("PlayQuiz4 : end", _mail) """ PlayPoll() reply a random thing to poll, on of daily activities """ def PlayPoll(): - printf("PlayPoll : start") + printf("PlayPoll : start", _mail) try: try: elem = driver.find_element(By.ID, f"btoption{choice([0,1])}") @@ -299,9 +299,9 @@ def PlayPoll(): driver.execute_script("arguments[0].click();", elem) CustomSleep(uniform(2, 2.5)) except Exception as e: - LogError("PlayPoll" + str(e), driver) + LogError("PlayPoll" + str(e), driver, _mail) raise ValueError(e) - printf("PlayPoll : end") + printf("PlayPoll : end", _mail) def AllCard(): # fonction qui clique sur les cartes @@ -314,7 +314,7 @@ def AllCard(): # fonction qui clique sur les cartes ).click() else: driver.switch_to.window(driver.window_handles[1]) - printf(f"fermeture : {driver.current_url}") + printf(f"fermeture : {driver.current_url}", _mail) driver.close() driver.switch_to.window(driver.window_handles[0]) reset(Partie2) @@ -324,7 +324,7 @@ def AllCard(): # fonction qui clique sur les cartes for i in range(3): CustomSleep(uniform(3, 5)) try: - printf("dailycards - show pannels") + printf("dailycards - show pannels", _mail) titre = "erreur" driver.find_element( By.XPATH,f"/html/body/div/div/div[3]/div[2]/div[1]/div[2]/div/div[{i+1}]/a/div/div[2]", @@ -334,16 +334,16 @@ def AllCard(): # fonction qui clique sur les cartes TryPlay(titre) sleep(1) reset() - printf(f"DailyCard {titre} ok ") + printf(f"DailyCard {titre} ok ", _mail) except Exception as e: - printf(f"Allcard card {titre} error ({e})") + printf(f"Allcard card {titre} error ({e})", _mail) except Exception as e: - LogError(f"Dailycards {e}", driver) + LogError(f"Dailycards {e}", driver, _mail) try: dailyCards() except Exception as e: - printf(f"erreur dans les quetes de la semaine {e}") + printf(f"erreur dans les quetes de la semaine {e}", _mail) def weekly_cards(): try: @@ -360,12 +360,12 @@ def AllCard(): # fonction qui clique sur les cartes pass for i in range(20): - printf("début de l'une des cartes") + printf("début de l'une des cartes", _mail) driver.find_element( By.XPATH, "/html/body/div/div/div[3]/div[2]/div[2]/div[3]/div/div[1]/a/div/div[2]", ).click() - printf("carte cliquée") + printf("carte cliquée", _mail) driver.switch_to.window(driver.window_handles[len(driver.window_handles) - 1]) sleep(1) titre = driver.title @@ -384,7 +384,7 @@ def AllCard(): # fonction qui clique sur les cartes weekly_cards() break except Exception as e: - LogError(f"weekly_cards, try n°{i+1} \n {e}", driver) + LogError(f"weekly_cards, try n°{i+1} \n {e}", driver, _mail) if i == 0 : driver.refresh() else : @@ -400,7 +400,7 @@ it uses global variable _mail and _password to login def login(): global driver def sub_login(): - printf("sublogin : start") + printf("sublogin : start", _mail) driver.get("https://www.bing.com/rewardsapp/flyout") try: driver.find_element(By.CSS_SELECTOR, f'[title="Rejoindre"]').click() # depend of the language of the page @@ -429,7 +429,7 @@ def login(): elm.send_keys(Keys.ENTER) except : pass - printf("login completed") + printf("login completed", _mail) RGPD() CustomSleep(uniform(3,5)) driver.get("https://www.bing.com/rewardsapp/flyout") @@ -440,7 +440,7 @@ def login(): sub_login() return (driver.current_window_handle) except Exception as e: - LogError("login - 3 - " + str(e), driver) + LogError("login - 3 - " + str(e), driver, _mail) driver.close() CustomSleep(1200) driver = FirefoxDriver() @@ -467,7 +467,7 @@ def BingPcSearch(override=randint(35, 40)): send_keys_wait(driver.find_element(By.ID, "sb_form_q"), mot) driver.find_element(By.ID, "sb_form_q").send_keys(Keys.ENTER) except Exception as e : - printf(e) + printf(e, _mail) sleep(10) driver.get('https://www.bing.com/search?q=pls') sleep(3) @@ -480,12 +480,12 @@ def BingPcSearch(override=randint(35, 40)): try: driver.find_element(By.ID, "sb_form_q").clear() except Exception as e: - printf(e) + printf(e, _mail) try: driver.get('https://www.bing.com/search?q=pls') driver.find_element(By.ID, "sb_form_q").clear() except Exception as e: - LogError(f"BingPcSearch - clear la barre de recherche - {e}", driver) + LogError(f"BingPcSearch - clear la barre de recherche - {e}", driver, _mail) print("\n\n") @@ -494,34 +494,34 @@ def BingPcSearch(override=randint(35, 40)): def TryPlay(nom="inconnu"): RGPD() - printf("TryPlay en cours") + printf("TryPlay en cours", _mail) def play(number, override=None): if number == 8 or number == 9: try: - printf(f"\033[96m Quiz 8 détecté sur la page {nom} \033[0m") + printf(f"\033[96m Quiz 8 détecté sur la page {nom} \033[0m", _mail) PlayQuiz8() - printf(f"\033[92m Quiz 8 reussit sur {nom} \033[0m") + printf(f"\033[92m Quiz 8 reussit sur {nom} \033[0m", _mail) except Exception as e: - printf(f"echec de PlayQuiz 8. Aborted {e} \033[0m") + printf(f"echec de PlayQuiz 8. Aborted {e} \033[0m", _mail) elif number == 5 or number == 4: try: - printf(f"\033[96m Quiz 4 détecté sur la page {nom} \033[0m") + printf(f"\033[96m Quiz 4 détecté sur la page {nom} \033[0m", _mail) PlayQuiz4() - printf(f"\033[92m Quiz 4 reussit sur {nom} \033[0m") + printf(f"\033[92m Quiz 4 reussit sur {nom} \033[0m", _mail) except Exception as e: - printf(f"echec de PlayQuiz 4. Aborted {e} \033[0m") + printf(f"echec de PlayQuiz 4. Aborted {e} \033[0m", _mail) elif number == 3 or number == 2: try: - printf(f"\033[96m Quiz 2 détecté sur la page {nom}\033[0m") + printf(f"\033[96m Quiz 2 détecté sur la page {nom}\033[0m", _mail) PlayQuiz2() - printf(f"\033[92m Quiz 2 reussit sur la page {nom}\033[0m") + printf(f"\033[92m Quiz 2 reussit sur la page {nom}\033[0m", _mail) except Exception as e: - printf(f"echec de PlayQuiz 2. Aborted {e}") + printf(f"echec de PlayQuiz 2. Aborted {e}", _mail) else: - LogError("probleme dans la carte : il y a un bouton play et aucun quiz detecté", driver) + LogError("probleme dans la carte : il y a un bouton play et aucun quiz detecté", driver, _mail) try: driver.find_element(By.ID, "rqStartQuiz").click() # start the quiz @@ -529,15 +529,15 @@ def TryPlay(nom="inconnu"): play(number) except Exception as e: - # printf(e) normal error here + # printf(e, _mail) normal error here if "bt_PollRadio" in driver.page_source: try: - printf("Poll détected", end="\r") + printf("Poll détected", _mail) RGPD() PlayPoll() - printf("Poll reussit ") + printf("Poll reussit ", _mail) except Exception as e: - printf(f"TryPlay - 1 - Poll aborted {e}") + printf(f"TryPlay - 1 - Poll aborted {e}", _mail) elif "rqQuestionState" in driver.page_source: try: @@ -549,10 +549,10 @@ def TryPlay(nom="inconnu"): '"rqQuestionState.?." class="filledCircle"', driver.page_source ) ) - printf(f"recovery détecté. quiz : {number}, restant : {restant +1}") + printf(f"recovery détecté. quiz : {number}, restant : {restant +1}", _mail) play(number-1, override=restant + 1) except Exception as e: - printf("TryPlay - 2 - " + e) + printf("TryPlay - 2 - " + e, _mail) elif search("([0-9]) de ([0-9]) finalisée", driver.page_source): print("fidélité") @@ -560,7 +560,7 @@ def TryPlay(nom="inconnu"): Fidelite() else: - printf(f"rien à faire sur la page {nom}") + printf(f"rien à faire sur la page {nom}", _mail) RGPD() CustomSleep(uniform(3, 5)) @@ -592,11 +592,11 @@ def LogPoint(account="unknown"): # log des points sur discord break except Exception as e: CustomSleep(300) - printf(f"LogPoints : {e}") + printf(f"LogPoints : {e}", _mail) points = None if not points : - LogError(f"impossible d'avoir les points : {e}", driver) + LogError(f"impossible d'avoir les points : {e}", driver, _mail) CustomSleep(uniform(3, 20)) account = account.split("@")[0] @@ -630,12 +630,12 @@ def Fidelite(): try : result = get(FidelityLink) #get the url of fidelity page except Exception as e : - printf(e) + printf(e, _mail) result = False if result : lien = result.content.decode("UTF-8") - printf(lien) + printf(lien, _mail) if (lien.split(":")[0] == "https") or (lien.split(":")[0] == "http") : @@ -663,7 +663,7 @@ def Fidelite(): t = driver.find_element(By.XPATH,'/html/body/div[1]/div[2]/main/div[2]/div[2]/div[7]/div[3]/div[1]') t.click() except Exception as e2 : - LogError(f"fidélité - double erreur - e1 : {e1} - e2 {e2}", driver) + LogError(f"fidélité - double erreur - e1 : {e1} - e2 {e2}", driver, _mail) break CustomSleep(uniform(3, 5)) driver.switch_to.window(driver.window_handles[1]) @@ -673,19 +673,19 @@ def Fidelite(): try: Close(driver.window_handles[1]) except Exception as e: - printf(e) - printf("fidelité - done") + printf(e, _mail) + printf("fidelité - done", _mail) else : - printf("lien invalide") + printf("lien invalide", _mail) except Exception as e: - LogError("Fidélité" + str(e), driver) + LogError("Fidélité" + str(e), driver, _mail) def Mlogin(echec): try: MobileDriver.get("https://www.bing.com/search?q=test+speed") MRGPD() - printf("début du login") + printf("début du login", _mail) MobileDriver.find_element(By.ID, "mHamburger").click() CustomSleep(uniform(1, 2)) MobileDriver.find_element(By.ID, "hb_s").click() @@ -710,19 +710,17 @@ def Mlogin(echec): MobileDriver.find_element(By.ID, "idSIButton9").click() except Exception as e: pass - printf("fin du Mlogin") + printf("fin du Mlogin", _mail) except Exception as e: echec += 1 if echec <= 3: - printf( - f"echec du login sur la version mobile. on reesaye ({echec}/3), {e}" - ) + printf(f"echec du login sur la version mobile. on reesaye ({echec}/3), {e}", _mail) CustomSleep(uniform(5, 10)) Mlogin(echec) else: LogError( - f"login impossible 3 fois de suite. {e}", MobileDriver + f"login impossible 3 fois de suite. {e}", MobileDriver, _mail ) MobileDriver.quit() return True @@ -744,10 +742,7 @@ def Alerte(): except exceptions.NoAlertPresentException as e: pass except Exception as e: - LogError( - f"mobile.py -> Alerte : {e}", - driver=MobileDriver, - ) + LogError(f"mobile.py -> Alerte : {e}", MobileDriver, _mail) def BingMobileSearch(override=randint(22, 25)): @@ -758,7 +753,7 @@ def BingMobileSearch(override=randint(22, 25)): MobileDriver = FirefoxDriver(mobile=True) MobileDriver.implicitly_wait(15) except Exception as e: - LogError("BingMobileSearch - 1 - echec de la creation du driver mobile", MobileDriver) + LogError("BingMobileSearch - 1 - echec de la creation du driver mobile", MobileDriver, _mail) echec = 0 if not Mlogin(echec): @@ -773,7 +768,7 @@ def BingMobileSearch(override=randint(22, 25)): send_keys_wait(MobileDriver.find_element(By.ID, "sb_form_q"), mot) MobileDriver.find_element(By.ID, "sb_form_q").send_keys(Keys.ENTER) progressBar(i, override, name="Mobile") - printf(MobileDriver.current_url) + printf(MobileDriver.current_url, _mail) CustomSleep(uniform(5, 20)) Alerte() # verifie si il y a des alertes (demande de positions ....) @@ -786,7 +781,7 @@ def BingMobileSearch(override=randint(22, 25)): MobileDriver.quit() except Exception as e: - LogError("BingMobileSearch - 4 - " + str(e), MobileDriver) + LogError("BingMobileSearch - 4 - " + str(e), MobileDriver, _mail) MobileDriver.quit() @@ -800,31 +795,31 @@ def DailyRoutine(custom = False): try: AllCard() except Exception as e: - LogError(f"DailyRoutine - AllCard - \n{e}", driver) + LogError(f"DailyRoutine - AllCard - \n{e}", driver, _mail) try: BingPcSearch() except Exception as e: - LogError(f"DailyRoutine - BingPcSearch - \n{e}", driver) + LogError(f"DailyRoutine - BingPcSearch - \n{e}", driver, _mail) CustomSleep(uniform(3, 20)) try: Fidelite() except Exception as e: - LogError(f"DailyRoutine - Fidelité - \n{e}", driver) + LogError(f"DailyRoutine - Fidelité - \n{e}", driver, _mail) try: BingMobileSearch() except Exception as e: - LogError(f"DailyRoutine - BingMobileSearch - \n{e}", driver) + LogError(f"DailyRoutine - BingMobileSearch - \n{e}", driver, _mail) CustomSleep(uniform(3, 20)) try: LogPoint(_mail) except Exception as e: - LogError(f"DailyRoutine - LogPoint - \n{e}", driver) + LogError(f"DailyRoutine - LogPoint - \n{e}", driver, _mail) else : - LogError(f"probleme de login sur le comte {_mail}", driver) + LogError(f"probleme de login sur le comte {_mail}", driver, _mail) def close(): @@ -865,31 +860,31 @@ def CustomStart(Credentials): try: AllCard() except Exception as e: - LogError(f"AllCards - {e} -- override", driver) + LogError(f"AllCards - {e} -- override", driver, _mail) if "pc" in Actions: try: BingPcSearch() except Exception as e: - LogError(f"il y a eu une erreur dans BingPcSearch, {e} -- override", driver) + LogError(f"il y a eu une erreur dans BingPcSearch, {e} -- override", driver, _mail) if "mobile" in Actions: try: BingMobileSearch() except Exception as e: - LogError(f"BingMobileSearch - {e} -- override", driver) + LogError(f"BingMobileSearch - {e} -- override", driver, _mail) if "Fidelite" in Actions: try : Fidelite() except Exception as e : - LogError(f"Fidelite - {e} -- override", driver) + LogError(f"Fidelite - {e} -- override", driver, _mail) if "dev" in Actions: try: dev() except Exception as e: - printf(e) + printf(e, _mail) break if not "tout" in Actions: @@ -914,16 +909,16 @@ else: print("\n\n") print(_mail) CustomSleep(1) - printf("début du driver") + printf("début du driver", _mail) driver = FirefoxDriver() - printf("driver demarré") + printf("driver demarré", _mail) driver.implicitly_wait(7) try: DailyRoutine() driver.quit() attente = uniform(1200, 3600) - printf(f"finis. attente de {round(attente/60)}min") + printf(f"finis. attente de {round(attente/60)}min", _mail) CustomSleep(attente) except KeyboardInterrupt: diff --git a/modules/tools.py b/modules/tools.py index 2d0a28b..bcb27b8 100644 --- a/modules/tools.py +++ b/modules/tools.py @@ -8,8 +8,9 @@ from discord import ( # Importing discord.Webhook and discord.RequestsWebhookAd ) from modules.config import * -global _mail + _mail = "undefined" + """ send_keys_wait([selenium element:element, str:keys]) send the different keys to the field element, with a random time between each press to simulate human action. keys can be an string, but alos selenium keys @@ -22,7 +23,8 @@ def send_keys_wait(element, keys): else : sleep(uniform(0.1, 0.3)) -def LogError(message, driver,_mail, log=FULL_LOG): + +def LogError(message, driver, _mail, log=FULL_LOG): print(f"\n\n\033[93m Erreur : {str(message)} \033[0m\n\n") if DISCORD_ENABLED_ERROR: with open("page.html", "w") as f: @@ -50,19 +52,17 @@ def LogError(message, driver,_mail, log=FULL_LOG): - # add the time arround the text given in [text] # [text] : string -def Timer(text="undefined"): +def Timer(text="undefined", mail=_mail): return(f"[{_mail} - {timedelta(seconds = round(float(time() - START_TIME)))}] " + str(text)) # replace the function print, with more options # [txt] : string, [driver] : selenium wbdriver -def printf(txt, LOG = LOG): +def printf(txt, mail = _mail, LOG = LOG): if LOG: - print(Timer(txt)) - + print(Timer(txt, _mail))