oh, f*ck, what have I done
This commit is contained in:
parent
27237354b2
commit
66de4dbbd2
143
V5.py
143
V5.py
@ -15,7 +15,7 @@ from selenium.webdriver.firefox.options import Options
|
|||||||
from selenium.webdriver.support.ui import WebDriverWait
|
from selenium.webdriver.support.ui import WebDriverWait
|
||||||
from selenium.webdriver.support import expected_conditions as EC
|
from selenium.webdriver.support import expected_conditions as EC
|
||||||
from selenium.webdriver.support.ui import Select
|
from selenium.webdriver.support.ui import Select
|
||||||
|
from pyotp import TOTP
|
||||||
from pyvirtualdisplay import Display
|
from pyvirtualdisplay import Display
|
||||||
from pyvirtualdisplay.smartdisplay import SmartDisplay
|
from pyvirtualdisplay.smartdisplay import SmartDisplay
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ import modules.progress
|
|||||||
|
|
||||||
global driver
|
global driver
|
||||||
driver = None
|
driver = None
|
||||||
global _mail, _password
|
global _mail, _password, _otp, display
|
||||||
|
|
||||||
# TODO : replace by a better print (with logging, cf https://realpython.com/python-logging/)
|
# TODO : replace by a better print (with logging, cf https://realpython.com/python-logging/)
|
||||||
def printf(e, f = ""):
|
def printf(e, f = ""):
|
||||||
@ -37,13 +37,40 @@ def printf(e, f = ""):
|
|||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
# handle "panda"'s error: error while logging in preventing some task to be done
|
# handle "panda"'s error: error while logging in preventing some task to be done
|
||||||
# replace driver's screenshot by Display's one
|
# check that each card worked (lot of misses lately) -- test that
|
||||||
# test PlayQuiz8 fix
|
|
||||||
# check that each card worked (lot of misses lately)
|
|
||||||
# add date and account before print
|
# add date and account before print
|
||||||
|
|
||||||
custom_sleep = CustomSleep
|
custom_sleep = CustomSleep
|
||||||
|
|
||||||
|
|
||||||
|
def log_error(error, driver=driver log=FULL_LOG):
|
||||||
|
if type(error) != str :
|
||||||
|
error = format_error(error)
|
||||||
|
print(f"\n\n\033[93m Erreur : {str(error)} \033[0m\n\n")
|
||||||
|
if DISCORD_ENABLED_ERROR:
|
||||||
|
with open("page.html", "w") as f:
|
||||||
|
f.write(driver.page_source)
|
||||||
|
img = display.waitgrab()
|
||||||
|
img.save("screenshot.png")
|
||||||
|
if not log:
|
||||||
|
embed = discord.Embed(
|
||||||
|
title="An Error has occured",
|
||||||
|
description=str(error),
|
||||||
|
colour=Colour.red(),
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
embed = discord.Embed(
|
||||||
|
title="Full log is enabled",
|
||||||
|
description=str(error),
|
||||||
|
colour=Colour.blue(),
|
||||||
|
)
|
||||||
|
|
||||||
|
file = discord.File("screenshot.png")
|
||||||
|
embed.set_image(url="attachment://screenshot.png")
|
||||||
|
embed.set_footer(text=_mail)
|
||||||
|
webhookFailure.send(embed=embed, file=file)
|
||||||
|
webhookFailure.send(file=discord.File("page.html"))
|
||||||
|
|
||||||
# Wait for the presence of the element identifier or [timeout]s
|
# Wait for the presence of the element identifier or [timeout]s
|
||||||
def wait_until_visible(search_by: str, identifier: str, timeout = 20, browser = driver) -> None:
|
def wait_until_visible(search_by: str, identifier: str, timeout = 20, browser = driver) -> None:
|
||||||
try :
|
try :
|
||||||
@ -145,7 +172,7 @@ def play_quiz2(override=10) -> None:
|
|||||||
except exceptions.ElementNotInteractableException as e:
|
except exceptions.ElementNotInteractableException as e:
|
||||||
driver.execute_script("arguments[0].click();", answer_elem)
|
driver.execute_script("arguments[0].click();", answer_elem)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
break
|
break
|
||||||
printf("play_quiz2 done")
|
printf("play_quiz2 done")
|
||||||
|
|
||||||
@ -187,7 +214,7 @@ def play_quiz8(task = None):
|
|||||||
correct_answers.append(answer_id)
|
correct_answers.append(answer_id)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(f"{format_error(e)} \n Good answers : {' '.join(correct_answers)}", driver, _mail)
|
log_error(f"{format_error(e)} \n Good answers : {' '.join(correct_answers)}")
|
||||||
printf("play_quiz8 : fin ")
|
printf("play_quiz8 : fin ")
|
||||||
|
|
||||||
|
|
||||||
@ -214,7 +241,7 @@ def play_quiz4(override=None):
|
|||||||
driver.execute_script("arguments[0].click();", answer_element)
|
driver.execute_script("arguments[0].click();", answer_element)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
raise ValueError(e)
|
raise ValueError(e)
|
||||||
printf("play_quiz4 : end")
|
printf("play_quiz4 : end")
|
||||||
|
|
||||||
@ -230,7 +257,7 @@ def do_poll():
|
|||||||
driver.execute_script("arguments[0].click();", answer_elem)
|
driver.execute_script("arguments[0].click();", answer_elem)
|
||||||
custom_sleep(uniform(2, 2.5))
|
custom_sleep(uniform(2, 2.5))
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
log_error(error , driver, _mail)
|
log_error(error)
|
||||||
raise ValueError(error)
|
raise ValueError(error)
|
||||||
printf("do_poll : end")
|
printf("do_poll : end")
|
||||||
|
|
||||||
@ -272,15 +299,19 @@ def all_cards():
|
|||||||
printf(f"DailyCard {titre} ok")
|
printf(f"DailyCard {titre} ok")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
printf(f"all_cards card {titre} error ({e})")
|
printf(f"all_cards card {titre} error ({e})")
|
||||||
""" Check if everything worked fine TODO
|
|
||||||
try : # devrait renvoyer vrai si la carte i est faite ou pas, a l'aide su symbole en haut a droite de la carte
|
try : # devrait renvoyer vrai si la carte i est faite ou pas, a l'aide su symbole en haut a droite de la carte
|
||||||
elm = driver.get(By.XPATH, f"/html/body/div/div/div[3]/div[2]/div[1]/div[2]/div/div[{i+1}]/a/div/div[2]/div[1]/div[2]/div")
|
elm = 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]/div[1]/div[2]/div")
|
||||||
print("complete" in elm.get_attribute("innerHTML"))
|
if not ("correctCircle" in elm.get_attribute("innerHTML")):
|
||||||
except :
|
print(f"missed card {i}")
|
||||||
pass
|
try_play(titre, task=task["daily"][f"carte{i}"])
|
||||||
"""
|
sleep(3)
|
||||||
|
reset()
|
||||||
|
except :
|
||||||
|
pass # if it fail, it's probably okay
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
|
|
||||||
def weekly_cards():
|
def weekly_cards():
|
||||||
@ -328,17 +359,17 @@ def all_cards():
|
|||||||
try :
|
try :
|
||||||
top_cards()
|
top_cards()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
daily_cards()
|
daily_cards()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
try :
|
try :
|
||||||
weekly_cards()
|
weekly_cards()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
|
|
||||||
# Find out which type of action to do
|
# Find out which type of action to do
|
||||||
@ -373,7 +404,7 @@ def try_play(nom="inconnu", task = None):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
printf(f"fail of PlayQuiz 2. Aborted {e}")
|
printf(f"fail of PlayQuiz 2. Aborted {e}")
|
||||||
else:
|
else:
|
||||||
log_error("There is an error. rqAnswerOption present in page but no action to do. skipping.", driver, _mail)
|
log_error("There is an error. rqAnswerOption present in page but no action to do. skipping.")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
driver.find_element(By.ID, "rqStartQuiz").click() # start the quiz
|
driver.find_element(By.ID, "rqStartQuiz").click() # start the quiz
|
||||||
@ -424,10 +455,19 @@ def login():
|
|||||||
pwd_elem = driver.find_element(By.ID, "i0118")
|
pwd_elem = driver.find_element(By.ID, "i0118")
|
||||||
send_keys_wait(pwd_elem, _password)
|
send_keys_wait(pwd_elem, _password)
|
||||||
pwd_elem.send_keys(Keys.ENTER)
|
pwd_elem.send_keys(Keys.ENTER)
|
||||||
|
custom_sleep(2)
|
||||||
|
if "Entrez le code de sécurité" in driver.page_source :
|
||||||
|
try :
|
||||||
|
a2f_elem = driver.find_element(By.ID, "idTxtBx_SAOTCC_OTC")
|
||||||
|
a2f_elem.send_keys(_otp.now())
|
||||||
|
a2f_elem.send_keys(Keys.ENTER)
|
||||||
|
except Exception as e :
|
||||||
|
log_error(e)
|
||||||
custom_sleep(5)
|
custom_sleep(5)
|
||||||
|
|
||||||
|
|
||||||
if ('Abuse' in driver.current_url) :
|
if ('Abuse' in driver.current_url) :
|
||||||
log_error("account suspended", driver, _mail)
|
log_error("account suspended")
|
||||||
raise Banned()
|
raise Banned()
|
||||||
|
|
||||||
for id in ["KmsiCheckboxField","iLooksGood", "idSIButton9", "iCancel"]:
|
for id in ["KmsiCheckboxField","iLooksGood", "idSIButton9", "iCancel"]:
|
||||||
@ -438,10 +478,11 @@ def login():
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
try :
|
try :
|
||||||
body_elem = driver.find_element(By.TAG_NAME, "body")
|
body_elem = driver.find_element(By.TAG_NAME, "body") # in case of any random popup
|
||||||
body_elem.send_keys(Keys.ENTER)
|
body_elem.send_keys(Keys.ENTER)
|
||||||
except :
|
except :
|
||||||
pass
|
pass
|
||||||
|
|
||||||
printf("login completed - going to MsRewards")
|
printf("login completed - going to MsRewards")
|
||||||
custom_sleep(uniform(3,5))
|
custom_sleep(uniform(3,5))
|
||||||
driver.get("https://www.bing.com/rewardsapp/flyout")
|
driver.get("https://www.bing.com/rewardsapp/flyout")
|
||||||
@ -469,7 +510,7 @@ def login():
|
|||||||
except Banned:
|
except Banned:
|
||||||
raise Banned()
|
raise Banned()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
driver.quit()
|
driver.quit()
|
||||||
custom_sleep(1200)
|
custom_sleep(1200)
|
||||||
driver = firefox_driver()
|
driver = firefox_driver()
|
||||||
@ -511,7 +552,7 @@ def bing_pc_search(override=randint(35, 40)):
|
|||||||
driver.get('https://www.bing.com/search?q=plans')
|
driver.get('https://www.bing.com/search?q=plans')
|
||||||
driver.find_element(By.ID, "sb_form_q").clear()
|
driver.find_element(By.ID, "sb_form_q").clear()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(f"clear la barre de recherche - {format_error(e)}", driver, _mail)
|
log_error(f"clear la barre de recherche - {format_error(e)}")
|
||||||
AdvanceTask(task["PC"], 100 )
|
AdvanceTask(task["PC"], 100 )
|
||||||
ChangeColor(task["PC"], "green")
|
ChangeColor(task["PC"], "green")
|
||||||
|
|
||||||
@ -570,11 +611,11 @@ def log_points(account="unknown"):
|
|||||||
break
|
break
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
custom_sleep(300)
|
custom_sleep(300)
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
points = None
|
points = None
|
||||||
|
|
||||||
if not points :
|
if not points :
|
||||||
log_error(f"impossible d'avoir les points", driver, _mail)
|
log_error(f"impossible d'avoir les points")
|
||||||
|
|
||||||
custom_sleep(uniform(3, 20))
|
custom_sleep(uniform(3, 20))
|
||||||
account_name = account.split("@")[0]
|
account_name = account.split("@")[0]
|
||||||
@ -636,7 +677,7 @@ def fidelity():
|
|||||||
recover_elem = driver.find_element(By.XPATH,'/html/body/div[1]/div[2]/main/div[2]/div[2]/div[7]/div[3]/div[1]/a')
|
recover_elem = driver.find_element(By.XPATH,'/html/body/div[1]/div[2]/main/div[2]/div[2]/div[7]/div[3]/div[1]/a')
|
||||||
recover_elem.click()
|
recover_elem.click()
|
||||||
except Exception as e2 :
|
except Exception as e2 :
|
||||||
log_error(f"fidélité - double erreur - e1 : {format_error(e1)} - e2 {format_error(e2)}", driver, _mail)
|
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[1])
|
||||||
@ -651,24 +692,24 @@ def fidelity():
|
|||||||
else :
|
else :
|
||||||
printf("invalid fidelity link.")
|
printf("invalid fidelity link.")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
|
|
||||||
def mobile_login(error):
|
def mobile_login(error):
|
||||||
try:
|
try:
|
||||||
# TODO
|
# TODO
|
||||||
# aller direct sur bin pour ne pas avoir a utiliser le menu hamburger
|
# seems fine, check if there are no issues
|
||||||
mobile_driver.get("https://www.bing.com/search?q=test+speed")
|
mobile_driver.get(f"https://www.bing.com/search?q={choice(Liste_de_mot).replace(" ","+")}")
|
||||||
mobile_rgpd()
|
mobile_rgpd()
|
||||||
printf("start of Mobile login")
|
printf("start of Mobile login")
|
||||||
try :
|
try :
|
||||||
mobile_driver.find_element(By.ID, "mHamburger").click()
|
mobile_driver.find_element(By.ID, "mHamburger").click()
|
||||||
except Exception as e :
|
except Exception as e :
|
||||||
log_error(f"trying something. 1 {e}", mobile_driver, _mail)
|
log_error(f"trying something. 1 {e}", mobile_driver)
|
||||||
elm = mobile_driver.find_element(By.ID, "mHamburger")
|
elm = mobile_driver.find_element(By.ID, "mHamburger")
|
||||||
mobile_driver.execute_script("arguments[0].scrollIntoView();", elm)
|
mobile_driver.execute_script("arguments[0].scrollIntoView();", elm)
|
||||||
mobile_driver.find_element(By.ID, "mHamburger").click()
|
mobile_driver.find_element(By.ID, "mHamburger").click()
|
||||||
log_error(f"trying something. 2 {e}", mobile_driver, _mail)
|
log_error(f"trying something. 2 {e}", mobile_driver)
|
||||||
|
|
||||||
wait_until_visible(By.ID, "hb_s", browser=mobile_driver)
|
wait_until_visible(By.ID, "hb_s", browser=mobile_driver)
|
||||||
mobile_driver.find_element(By.ID, "hb_s").click()
|
mobile_driver.find_element(By.ID, "hb_s").click()
|
||||||
@ -696,9 +737,7 @@ def mobile_login(error):
|
|||||||
custom_sleep(uniform(5, 10))
|
custom_sleep(uniform(5, 10))
|
||||||
mobile_login(error)
|
mobile_login(error)
|
||||||
else:
|
else:
|
||||||
log_error(
|
log_error(f"login impossible 3 fois de suite. {e}", mobile_driver)
|
||||||
f"login impossible 3 fois de suite. {e}", mobile_driver, _mail
|
|
||||||
)
|
|
||||||
mobile_driver.quit()
|
mobile_driver.quit()
|
||||||
return(True)
|
return(True)
|
||||||
|
|
||||||
@ -718,7 +757,7 @@ def mobile_alert_popup():
|
|||||||
except exceptions.NoAlertPresentException as e:
|
except exceptions.NoAlertPresentException as e:
|
||||||
pass
|
pass
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, mobile_driver, _mail)
|
log_error(e, mobile_driver)
|
||||||
|
|
||||||
|
|
||||||
def bing_mobile_search(override=randint(22, 25)):
|
def bing_mobile_search(override=randint(22, 25)):
|
||||||
@ -748,7 +787,7 @@ def bing_mobile_search(override=randint(22, 25)):
|
|||||||
ChangeColor(task["Mobile"], "green")
|
ChangeColor(task["Mobile"], "green")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, mobile_driver, _mail)
|
log_error(e, mobile_driver)
|
||||||
mobile_driver.quit()
|
mobile_driver.quit()
|
||||||
|
|
||||||
|
|
||||||
@ -758,33 +797,33 @@ def daily_routine(custom = False):
|
|||||||
if not custom: # custom already login
|
if not custom: # custom already login
|
||||||
login()
|
login()
|
||||||
except Banned :
|
except Banned :
|
||||||
log_error("THIS ACCOUNT IS BANNED. FIX THIS ISSUE WITH -U", driver, _mail)
|
log_error("THIS ACCOUNT IS BANNED. FIX THIS ISSUE WITH -U")
|
||||||
return()
|
return()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
all_cards()
|
all_cards()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
bing_pc_search()
|
bing_pc_search()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
bing_mobile_search()
|
bing_mobile_search()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
fidelity()
|
fidelity()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
log_points(_mail)
|
log_points(_mail)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
|
|
||||||
def dev():
|
def dev():
|
||||||
@ -823,27 +862,27 @@ def CustomStart(Credentials):
|
|||||||
try:
|
try:
|
||||||
all_cards()
|
all_cards()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
if "pc" in Actions:
|
if "pc" in Actions:
|
||||||
try:
|
try:
|
||||||
ShowTask(task["PC"])
|
ShowTask(task["PC"])
|
||||||
bing_pc_search()
|
bing_pc_search()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
if "mobile" in Actions:
|
if "mobile" in Actions:
|
||||||
try:
|
try:
|
||||||
ShowTask(task["Mobile"])
|
ShowTask(task["Mobile"])
|
||||||
bing_mobile_search()
|
bing_mobile_search()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
if "fidelity" in Actions:
|
if "fidelity" in Actions:
|
||||||
try :
|
try :
|
||||||
fidelity()
|
fidelity()
|
||||||
except Exception as e :
|
except Exception as e :
|
||||||
log_error(e, driver, _mail)
|
log_error(e)
|
||||||
|
|
||||||
if "dev" in Actions:
|
if "dev" in Actions:
|
||||||
try:
|
try:
|
||||||
@ -937,8 +976,12 @@ else:
|
|||||||
) as p:
|
) as p:
|
||||||
task = modules.progress.dico(p)
|
task = modules.progress.dico(p)
|
||||||
|
|
||||||
for _mail, _password in Credentials:
|
for cred in Credentials:
|
||||||
#system("pkill -9 firefox")
|
_mail = cred[0]
|
||||||
|
_password = cred[1]
|
||||||
|
if len(cred) == 3:
|
||||||
|
_otp = TOTP(cred[2])
|
||||||
|
|
||||||
print("\n\n")
|
print("\n\n")
|
||||||
print(_mail)
|
print(_mail)
|
||||||
custom_sleep(1)
|
custom_sleep(1)
|
||||||
|
@ -7,7 +7,9 @@ import argparse
|
|||||||
from discord import ( # Importing discord.Webhook and discord.RequestsWebhookAdapter
|
from discord import ( # Importing discord.Webhook and discord.RequestsWebhookAdapter
|
||||||
RequestsWebhookAdapter,
|
RequestsWebhookAdapter,
|
||||||
Webhook,
|
Webhook,
|
||||||
|
Colour,
|
||||||
)
|
)
|
||||||
|
|
||||||
from time import time
|
from time import time
|
||||||
from random import shuffle
|
from random import shuffle
|
||||||
|
|
||||||
|
@ -2,10 +2,6 @@ from time import sleep
|
|||||||
from datetime import timedelta, datetime
|
from datetime import timedelta, datetime
|
||||||
from random import uniform
|
from random import uniform
|
||||||
import discord
|
import discord
|
||||||
from discord import ( # Importing discord.Webhook and discord.RequestsWebhookAdapter
|
|
||||||
Colour,
|
|
||||||
Webhook,
|
|
||||||
)
|
|
||||||
|
|
||||||
from selenium.webdriver.common.by import By
|
from selenium.webdriver.common.by import By
|
||||||
from modules.config import *
|
from modules.config import *
|
||||||
@ -23,35 +19,6 @@ def send_keys_wait(element, keys):
|
|||||||
sleep(uniform(0.1, 0.3))
|
sleep(uniform(0.1, 0.3))
|
||||||
|
|
||||||
|
|
||||||
def log_error(error, driver, mail, log=FULL_LOG):
|
|
||||||
if type(error) != str :
|
|
||||||
error = format_error(error)
|
|
||||||
print(f"\n\n\033[93m Erreur : {str(error)} \033[0m\n\n")
|
|
||||||
if DISCORD_ENABLED_ERROR:
|
|
||||||
with open("page.html", "w") as f:
|
|
||||||
f.write(driver.page_source)
|
|
||||||
|
|
||||||
driver.save_screenshot("screenshot.png")
|
|
||||||
if not log:
|
|
||||||
embed = discord.Embed(
|
|
||||||
title="An Error has occured",
|
|
||||||
description=str(error),
|
|
||||||
colour=Colour.red(),
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
embed = discord.Embed(
|
|
||||||
title="Full log is enabled",
|
|
||||||
description=str(error),
|
|
||||||
colour=Colour.blue(),
|
|
||||||
)
|
|
||||||
|
|
||||||
file = discord.File("screenshot.png")
|
|
||||||
embed.set_image(url="attachment://screenshot.png")
|
|
||||||
embed.set_footer(text=mail)
|
|
||||||
webhookFailure.send(embed=embed, file=file)
|
|
||||||
webhookFailure.send(file=discord.File("page.html"))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# add the time arround the text given in [text]&
|
# add the time arround the text given in [text]&
|
||||||
def Timer(text: str, mail: str) -> str:
|
def Timer(text: str, mail: str) -> str:
|
||||||
|
@ -8,3 +8,4 @@ requests
|
|||||||
pyvirtualdisplay
|
pyvirtualdisplay
|
||||||
pillow
|
pillow
|
||||||
EasyProcess
|
EasyProcess
|
||||||
|
pyotp
|
Loading…
Reference in New Issue
Block a user