I need a better solution

This commit is contained in:
piair338 2022-10-25 08:03:24 +00:00
parent 0af267e628
commit c665144b28
2 changed files with 95 additions and 100 deletions

181
V4.py
View File

@ -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:

View File

@ -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,6 +23,7 @@ def send_keys_wait(element, keys):
else :
sleep(uniform(0.1, 0.3))
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:
@ -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))