HEX
Server: LiteSpeed
System: Linux srv1.dhviews.com 5.14.0-570.23.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun 24 11:27:16 EDT 2025 x86_64
User: bdedition (1723)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: //proc/self/root/proc/thread-self/root/usr/local/lib/python3.9/site-packages/wordfence/util/url.py
from urllib.parse import urlparse, urlunparse, parse_qs, urlencode


class Url:

    def __init__(self, url: str):
        self._parts = urlparse(url)._asdict()

    def get_hostname(self) -> str:
        return self._parts['netloc']

    def get_query(self) -> str:
        return self._parts['query']

    def set_query(self, query: str) -> None:
        self._parts['query'] = query

    def set_query_parameter(self, key, value) -> None:
        parameters = parse_qs(self.get_query())
        parameters[key] = value
        self.set_query(urlencode(parameters, doseq=True))

    def __str__(self) -> str:
        return urlunparse(self._parts.values())