Added URL helper
This commit is contained in:
parent
b506ac1554
commit
2c46dda499
50
Galactic.py
50
Galactic.py
|
@ -50,6 +50,7 @@ from starlette.websockets import WebSocketDisconnect
|
|||
from winotify import Notification, audio
|
||||
from func_timeout import func_set_timeout, FunctionTimedOut
|
||||
from pathlib import Path
|
||||
from urllib.parse import urlparse, urlencode, parse_qs, urljoin
|
||||
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), 'Packages'))
|
||||
|
||||
|
@ -198,7 +199,6 @@ class BrowserMobileEmulation(dict):
|
|||
|
||||
class CustomHTTPAdapter(requests.adapters.HTTPAdapter):
|
||||
def __init__(self, *args, **kwargs):
|
||||
from urllib.parse import urlparse
|
||||
self.urlparse = urlparse
|
||||
self.hosts = {}
|
||||
self.addrs = {}
|
||||
|
@ -477,6 +477,51 @@ class ColorUtils:
|
|||
return r, g, b
|
||||
|
||||
|
||||
class UrlHelper:
|
||||
def __init__(self, url: str):
|
||||
self._url = str(url)
|
||||
self._parsed_url = urlparse(self._url)
|
||||
|
||||
def __str__(self):
|
||||
return self._url
|
||||
|
||||
@classmethod
|
||||
def encode_query_string(cls, qs_object):
|
||||
if not isinstance(qs_object, dict):
|
||||
raise TypeError('Wrong parameter type.')
|
||||
return urlencode(qs_object, doseq=True)
|
||||
|
||||
@classmethod
|
||||
def decode_query_string(cls, qs_string):
|
||||
if not isinstance(qs_string, str):
|
||||
raise TypeError('Wrong parameter type.')
|
||||
return parse_qs(qs_string, keep_blank_values=True)
|
||||
|
||||
@classmethod
|
||||
def join(cls, base, relative):
|
||||
return urljoin(base, relative)
|
||||
|
||||
@property
|
||||
def scheme(self):
|
||||
return self._parsed_url.scheme
|
||||
|
||||
@property
|
||||
def netloc(self):
|
||||
return self._parsed_url.netloc
|
||||
|
||||
@property
|
||||
def path(self):
|
||||
return self._parsed_url.path
|
||||
|
||||
@property
|
||||
def query_string(self):
|
||||
return self._parsed_url.query
|
||||
|
||||
@property
|
||||
def fragment(self):
|
||||
return self._parsed_url.fragment
|
||||
|
||||
|
||||
class FetchResult:
|
||||
def __init__(self, data):
|
||||
self.status = 0
|
||||
|
@ -683,6 +728,7 @@ class Browser(InspectRequestsMixin, DriverCommonMixin, Chrome):
|
|||
self.set_page_load_timeout(25)
|
||||
# Open the default page.
|
||||
home and self.open(home)
|
||||
self.UrlHelper = self.url_helper = UrlHelper
|
||||
|
||||
@property
|
||||
def title(self) -> str:
|
||||
|
@ -2044,7 +2090,7 @@ class WebServer:
|
|||
manager_data_file=os.path.join(data, 'manager.json'),
|
||||
browser_data_home=os.path.join(data, 'users'),
|
||||
browser_init_home=os.path.join(root, 'initialize'),
|
||||
use_selenium_wire=1
|
||||
use_selenium_wire=0
|
||||
)
|
||||
self.browser_manager.load_plugins(default_plugins, is_external=0)
|
||||
self.browser_manager.load_plugins_from_external_module()
|
||||
|
|
Loading…
Reference in New Issue