xref: /OpenGrok/tools/src/main/python/opengrok_tools/utils/webutil.py (revision c41895f81c73f8ef553343edcdc520fe5efb56a5)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# See LICENSE.txt included in this distribution for the specific
9# language governing permissions and limitations under the License.
10#
11# When distributing Covered Code, include this CDDL HEADER in each
12# file and include the License file at LICENSE.txt.
13# If applicable, add the following below this CDDL HEADER, with the
14# fields enclosed by brackets "[]" replaced with your own identifying
15# information: Portions Copyright [yyyy] [name of copyright owner]
16#
17# CDDL HEADER END
18#
19
20#
21# Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved.
22#
23
24from urllib.parse import urlparse
25
26
27def get_uri(*uri_parts):
28    return '/'.join(s.strip('/') for s in uri_parts)
29
30
31def is_localhost_url(url):
32    """
33    Check if given URL is based on localhost.
34    """
35
36    o = urlparse(url)
37    return o.hostname in ['localhost', '127.0.0.1', '::1']
38
39
40def get_proxies(url):
41    """
42    For localhost based requests it is undesirable to use proxies.
43    """
44    if is_localhost_url(url):
45        return {'http': None, 'https': None}
46    else:
47        return None
48
49
50def is_web_uri(url):
51    """
52    Check if given string is web URL.
53    """
54    o = urlparse(url)
55    return o.scheme in ['http', 'https']
56