told ya
This commit is contained in:
parent
339775bdf4
commit
098b934e96
45
V5.py
45
V5.py
|
@ -22,6 +22,37 @@ def printf(e, f = ""):
|
||||||
custom_sleep = CustomSleep
|
custom_sleep = CustomSleep
|
||||||
|
|
||||||
|
|
||||||
|
# create a webdriver
|
||||||
|
def firefox_driver(mobile=False, headless=False):
|
||||||
|
PC_USER_AGENT = (
|
||||||
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
|
||||||
|
"AppleWebKit/537.36 (KHTML, like Gecko)"
|
||||||
|
"Chrome/112.0.0.0 Safari/537.36 Edg/110.0.1587.56")
|
||||||
|
MOBILE_USER_AGENT = (
|
||||||
|
"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X)"
|
||||||
|
"AppleWebKit/605.1.15 (KHTML, like Gecko)"
|
||||||
|
"CriOS/107.0.5060.63 Mobile/15E148 Safari/604.1"
|
||||||
|
)
|
||||||
|
options = Options()
|
||||||
|
options.set_preference('intl.accept_languages', 'fr-FR, fr')
|
||||||
|
if proxy_enabled :
|
||||||
|
setup_proxy(proxy_address,proxy_port, options)
|
||||||
|
options.set_preference("browser.link.open_newwindow", 3)
|
||||||
|
if FAST :
|
||||||
|
options.set_preference("permissions.default.image", 2) #disable image loading. You shouldn't use it except if really nessecary
|
||||||
|
if headless:
|
||||||
|
options.add_argument("-headless")
|
||||||
|
if mobile :
|
||||||
|
options.set_preference("general.useragent.override", MOBILE_USER_AGENT)
|
||||||
|
driver = webdriver.Firefox(options=options)
|
||||||
|
driver.set_window_size(1070 + hash(_mail)%20 , 1900 + hash(_password + "salt")%10) # mobile resolution are crazy high now, right ?
|
||||||
|
else :
|
||||||
|
options.set_preference("general.useragent.override", PC_USER_AGENT)
|
||||||
|
driver = webdriver.Firefox(options=options)
|
||||||
|
driver.set_window_size(1900 + hash(_mail)%20 , 1070 + hash(_password + "salt")%10)
|
||||||
|
return(driver)
|
||||||
|
|
||||||
|
|
||||||
def log_error(error, ldriver=driver, log=FULL_LOG):
|
def log_error(error, ldriver=driver, log=FULL_LOG):
|
||||||
global driver
|
global driver
|
||||||
if ldriver is None:
|
if ldriver is None:
|
||||||
|
@ -38,22 +69,22 @@ def log_error(error, ldriver=driver, log=FULL_LOG):
|
||||||
except :
|
except :
|
||||||
ldriver.save_screenshot("screenshot.png")
|
ldriver.save_screenshot("screenshot.png")
|
||||||
if not log:
|
if not log:
|
||||||
embed = discord.Embed(
|
embed = Embed(
|
||||||
title="An Error has occured",
|
title="An Error has occured",
|
||||||
description=str(error),
|
description=str(error),
|
||||||
colour=Colour.red(),
|
colour=Colour.red(),
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
embed = discord.Embed(
|
embed = Embed(
|
||||||
title="Full log is enabled",
|
title="Full log is enabled",
|
||||||
description=str(error),
|
description=str(error),
|
||||||
colour=Colour.blue(),
|
colour=Colour.blue(),
|
||||||
)
|
)
|
||||||
file = discord.File("screenshot.png")
|
file = File("screenshot.png")
|
||||||
embed.set_image(url="attachment://screenshot.png")
|
embed.set_image(url="attachment://screenshot.png")
|
||||||
embed.set_footer(text=_mail)
|
embed.set_footer(text=_mail)
|
||||||
webhookFailure.send(embed=embed, file=file)
|
webhookFailure.send(embed=embed, file=file)
|
||||||
webhookFailure.send(file=discord.File("page.html"))
|
webhookFailure.send(file=File("page.html"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -383,7 +414,7 @@ def login(ldriver):
|
||||||
if ('Abuse' in ldriver.current_url) :
|
if ('Abuse' in ldriver.current_url) :
|
||||||
log_error("account suspended")
|
log_error("account suspended")
|
||||||
raise Banned()
|
raise Banned()
|
||||||
save_cookies(driver)
|
save_cookies(driver, _mail)
|
||||||
for id in ["KmsiCheckboxField","iLooksGood", "idSIButton9", "iCancel"]:
|
for id in ["KmsiCheckboxField","iLooksGood", "idSIButton9", "iCancel"]:
|
||||||
try:
|
try:
|
||||||
ldriver.find_element(By.ID, id).click()
|
ldriver.find_element(By.ID, id).click()
|
||||||
|
@ -418,7 +449,7 @@ def login(ldriver):
|
||||||
def cookie_login():
|
def cookie_login():
|
||||||
ldriver.get("https://login.live.com")
|
ldriver.get("https://login.live.com")
|
||||||
try :
|
try :
|
||||||
load_cookies(ldriver)
|
load_cookies(ldriver, _mail)
|
||||||
except FileNotFoundError :
|
except FileNotFoundError :
|
||||||
print("Creating cookies file")
|
print("Creating cookies file")
|
||||||
return(False)
|
return(False)
|
||||||
|
@ -562,7 +593,7 @@ def log_points(account="unknown"):
|
||||||
|
|
||||||
if DISCORD_ENABLED_SUCCESS:
|
if DISCORD_ENABLED_SUCCESS:
|
||||||
if DISCORD_EMBED:
|
if DISCORD_EMBED:
|
||||||
embed = discord.Embed(
|
embed = Embed(
|
||||||
title=f"{account_name} actuellement à {str(points)} points", colour=Colour.green()
|
title=f"{account_name} actuellement à {str(points)} points", colour=Colour.green()
|
||||||
)
|
)
|
||||||
embed.set_footer(text=account_name)
|
embed.set_footer(text=account_name)
|
||||||
|
|
|
@ -1,36 +1,7 @@
|
||||||
from modules.imports import *
|
from modules.imports import *
|
||||||
|
from modules.config import *
|
||||||
|
|
||||||
|
|
||||||
# create a webdriver
|
|
||||||
def firefox_driver(mobile=False, headless=False):
|
|
||||||
PC_USER_AGENT = (
|
|
||||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
|
|
||||||
"AppleWebKit/537.36 (KHTML, like Gecko)"
|
|
||||||
"Chrome/112.0.0.0 Safari/537.36 Edg/110.0.1587.56")
|
|
||||||
MOBILE_USER_AGENT = (
|
|
||||||
"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X)"
|
|
||||||
"AppleWebKit/605.1.15 (KHTML, like Gecko)"
|
|
||||||
"CriOS/107.0.5060.63 Mobile/15E148 Safari/604.1"
|
|
||||||
)
|
|
||||||
options = Options()
|
|
||||||
options.set_preference('intl.accept_languages', 'fr-FR, fr')
|
|
||||||
if proxy_enabled :
|
|
||||||
setup_proxy(proxy_address,proxy_port, options)
|
|
||||||
options.set_preference("browser.link.open_newwindow", 3)
|
|
||||||
if FAST :
|
|
||||||
options.set_preference("permissions.default.image", 2) #disable image loading. You shouldn't use it except if really nessecary
|
|
||||||
if headless:
|
|
||||||
options.add_argument("-headless")
|
|
||||||
if mobile :
|
|
||||||
options.set_preference("general.useragent.override", MOBILE_USER_AGENT)
|
|
||||||
driver = webdriver.Firefox(options=options)
|
|
||||||
driver.set_window_size(1070 + hash(_mail)%20 , 1900 + hash(_password + "salt")%10) # mobile resolution are crazy high now, right ?
|
|
||||||
else :
|
|
||||||
options.set_preference("general.useragent.override", PC_USER_AGENT)
|
|
||||||
driver = webdriver.Firefox(options=options)
|
|
||||||
driver.set_window_size(1900 + hash(_mail)%20 , 1070 + hash(_password + "salt")%10)
|
|
||||||
return(driver)
|
|
||||||
|
|
||||||
def setup_proxy(ip, port, options, socks=False) :
|
def setup_proxy(ip, port, options, socks=False) :
|
||||||
PROXY = f"{ip}:{port}"
|
PROXY = f"{ip}:{port}"
|
||||||
if socks :
|
if socks :
|
||||||
|
@ -54,12 +25,12 @@ def rgpd_popup(driver) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# save webdriver cookies
|
# save webdriver cookies
|
||||||
def save_cookies():
|
def save_cookies(driver, _mail):
|
||||||
pickle.dump(driver.get_cookies(), open(f"{'/'.join(__file__.split('/')[:-1])}/user_data/cookies/{_mail}.pkl", "wb"))
|
pickle.dump(driver.get_cookies(), open(f"{'/'.join(__file__.split('/')[:-2])}/user_data/cookies/{_mail}.pkl", "wb"))
|
||||||
|
|
||||||
# load cookies previously saved to the driver
|
# load cookies previously saved to the driver
|
||||||
def load_cookies(driver):
|
def load_cookies(driver, _mail):
|
||||||
cookies = pickle.load(open(f"{'/'.join(__file__.split('/')[:-1])}/user_data/cookies/{_mail}.pkl", "rb"))
|
cookies = pickle.load(open(f"{'/'.join(__file__.split('/')[:-2])}/user_data/cookies/{_mail}.pkl", "rb"))
|
||||||
for cookie in cookies:
|
for cookie in cookies:
|
||||||
driver.add_cookie(cookie)
|
driver.add_cookie(cookie)
|
||||||
|
|
||||||
|
@ -78,7 +49,7 @@ def send_keys_wait(element, keys):
|
||||||
|
|
||||||
|
|
||||||
# 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 = None) -> None:
|
||||||
try :
|
try :
|
||||||
WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((search_by,identifier)), "element not found")
|
WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((search_by,identifier)), "element not found")
|
||||||
except TimeoutException as e:
|
except TimeoutException as e:
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
from selenium.common.exceptions import TimeoutException, NoSuchElementException, ElementClickInterceptedException
|
|
||||||
|
|
||||||
class Banned(Exception):
|
class Banned(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
@ -8,15 +8,17 @@ from time import sleep
|
||||||
from requests import get
|
from requests import get
|
||||||
from selenium import webdriver
|
from selenium import webdriver
|
||||||
from selenium.common import exceptions
|
from selenium.common import exceptions
|
||||||
from selenium.common.exceptions import WebDriverException
|
|
||||||
from selenium.webdriver.common.by import By
|
from selenium.webdriver.common.by import By
|
||||||
from selenium.webdriver.common.keys import Keys
|
from selenium.webdriver.common.keys import Keys
|
||||||
from selenium.webdriver.firefox.options import Options
|
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 selenium.common.exceptions import WebDriverException, TimeoutException, NoSuchElementException, ElementClickInterceptedException
|
||||||
|
|
||||||
from pyotp import TOTP
|
from pyotp import TOTP
|
||||||
from pyvirtualdisplay import Display
|
from pyvirtualdisplay import Display
|
||||||
from pyvirtualdisplay.smartdisplay import SmartDisplay
|
from pyvirtualdisplay.smartdisplay import SmartDisplay
|
||||||
import pickle
|
import pickle
|
||||||
from datetime import timedelta, datetime
|
from datetime import timedelta, datetime
|
||||||
|
from discord import Embed, Colour, File
|
Loading…
Reference in New Issue