def site_url(self, url):
        """URL setter and validator for site_url property.

        Parameters:
            url (str): URL of on Moebooru/Danbooru based sites.

        Raises:
            PybooruError: When URL scheme or URL are invalid.
        """
        # Regular expression to URL validate
        regex = re.compile(
            r'^(?:http|https)://'  # Scheme only HTTP/HTTPS
            r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?| \
            [A-Z0-9-]{2,}(?<!-)\.?)|'  # Domain
            r'localhost|'  # localhost...
            r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|'  # or ipv4
            r'\[?[A-F0-9]*:[A-F0-9:]+\]?)'  # or ipv6
            r'(?::\d+)?'  # Port
            r'(?:/?|[/?]\S+)$', re.IGNORECASE)

        # Validate URL
        if re.match('^(?:http|https)://', url):
            if re.search(regex, url):
                self.__site_url = url
            else:
                raise PybooruError("Invalid URL: {0}".format(url))
        else:
            raise PybooruError(
                "Invalid URL scheme, use HTTP or HTTPS: {0}".format(url))
URL setter and validator for site_url property.

        Parameters:
            url (str): URL of on Moebooru/Danbooru based sites.

        Raises:
            PybooruError: When URL scheme or URL are invalid.