
    z#g                         S SK rS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
SSKJr  SSKJr  S\-   S-   rS
S jrSS jrS	 rg)    N   )	NoNetwork)VERSION_NUMBERz
reportbug/z	 (Debian)c                     U(       d  [         R                  R                  5       n[        SS.n[        R
                  " XXS9R                  $ )a   
Open an URL and return the content

This is a helper function for :func:`open_url()`.

Parameters
----------
url : str
    The URL to retrieve
proxies : dict
    proxies to use
timeout : int
    request timeout in seconds
data
    unused

Returns
-------
str
    Content of the response
z)gzip;q=1.0, deflate;q=0.9, identity;q=0.5)z
User-AgentzAccept-Encoding)headersproxiestimeout)urllibrequest
getproxiesUA_STRrequestsgettext)urlr   r	   datar   s        4/usr/lib/python3/dist-packages/reportbug/urlutils.pyurlopenr   +   s@    , ..++-#"MOG <<gOTTT    c                    [         R                  " U5        [        R                  R	                  5       nU(       a  XS'   XS'    [        XU5      nU$ ! [        R                  R                   a  nUR                  S;   a   SnAge SnAf[         R                  [         R                  [        R                  R                  4 a    [        e[         a)  nU(       a  US   S:X  a  US   S:X  a   SnAg[        eSnAf[         a    [        S	[        R                   S
9  [        e["        R$                  R&                   a2  nUR(                  R*                  nSU  SU SU S3n	[        U	5      eSnAff = f)aF  
Open an URL and return the content

Parameters
----------
url : str
    The URL to retrieve
http_proxy : str
    HTTP proxy server URL to use for connection.
    By default, use the :func:`urllib.request.getproxies()` settings.
timeout : int
    connection timeout in seconds

Returns
-------
str
    Content of the response
httphttps)  i  i  Nr   z
http errorr   r   z@http_proxy environment variable must be formatted as a valid URI)filezFailed to open z (z: ))socketsetdefaulttimeoutr
   r   r   r   error	HTTPErrorcodegaierrorURLErrorr   OSError	TypeErrorprintsysstderrr   clientHTTPException	__class____name__)
r   
http_proxyr	   r   pagexr   excexc_namemessages
             r   open_urlr2   L   s1   * W%nn'')G$%!sW-( K' <<!! 66_$OOV\\6<<+@+@A  DG|+Q3O PWZWaWab;;$$ !==))#C58*Bse1=  !s>   A E41BBAE4C:4C::AE4-E//E4c                     [         R                  " S5      (       d0  S[        R                  " U 5      -   n[         R                  " U5        g[        (       a  [        R
                  " U 5        gg)zp
Launch a web browser to view an URL

Parameters
----------
url : str
    The URL to view

Returns
-------
None
z#command -v xdg-open >/dev/null 2>&1z	xdg-open N)ossystemshlexquote
webbrowseropen)r   cmds     r   launch_browserr;      sN     99:;;EKK,,
		#z r   )N<   N)Nr<   )http.clientr   urllib.requestr
   urllib.errorr   r6   r4   r&   r8   r   
exceptionsr   __init__r   r   r   r2   r;    r   r   <module>rC      sM   0      	 
   %		&	4UB1hr   