<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]4                 @   s^   d  d l  Z d  d l Z d g Z Gd d   d  Z Gd d   d  Z Gd d   d  Z d S)    NRobotFileParserc               @   s   e  Z d  Z d d d  Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z d d   Z	 d d   Z
 d d   Z d S)r    c             C   s>   g  |  _  d  |  _ d |  _ d |  _ |  j |  d |  _ d  S)NFr   )entriesdefault_entrydisallow_all	allow_allset_urllast_checked)selfurl r   0/opt/alt/python35/lib64/python3.5/robotparser.py__init__   s    				zRobotFileParser.__init__c             C   s   |  j  S)N)r	   )r
   r   r   r   mtime   s    zRobotFileParser.mtimec             C   s   d d  l  } | j    |  _ d  S)Nr   )timer	   )r
   r   r   r   r   modified(   s    zRobotFileParser.modifiedc             C   s5   | |  _  t j j |  d d  \ |  _ |  _ d  S)N      )r   urllibparseurlparsehostpath)r
   r   r   r   r   r   0   s    	zRobotFileParser.set_urlc             C   s   y t  j j |  j  } Wnm t  j j k
 r } zG | j d k rO d |  _ n' | j d k rv | j d k  rv d |  _ WYd  d  } ~ Xn) X| j	   } |  j
 | j d  j    d  S)N    Ti  i  zutf-8)r   r   )r   Zrequesturlopenr   error	HTTPErrorcoder   r   readr   decode
splitlines)r
   ferrrawr   r   r   r   5   s    zRobotFileParser.readc             C   s>   d | j  k r* |  j d  k r: | |  _ n |  j j |  d  S)N*)
useragentsr   r   append)r
   entryr   r   r   
_add_entryB   s    zRobotFileParser._add_entryc             C   s  d } t    } |  j   x| D]} | sr | d k rJ t    } d } n( | d k rr |  j |  t    } d } | j d  } | d k r | d  |  } | j   } | s q  | j d d  } t |  d k r  | d j   j   | d <t j	 j
 | d j    | d <| d d k r_| d k rB|  j |  t    } | j j | d  d } q  | d d k r| d k r| j j t | d d   d } q  | d d	 k r  | d k r  | j j t | d d
   d } q  W| d k r|  j |  d  S)Nr   r      #:z
user-agentZdisallowFZallowT)Entryr   r)   findstripsplitlenlowerr   r   unquoter&   r'   	rulelinesRuleLine)r
   linesstater(   lineir   r   r   r   K   sL    
	
			 			
zRobotFileParser.parsec             C   s   |  j  r d S|  j r d S|  j s' d St j j t j j |   } t j j d d | j | j	 | j
 | j f  } t j j |  } | s d } x- |  j D]" } | j |  r | j |  Sq W|  j r |  j j |  Sd S)NFTr   /)r   r   r	   r   r   r   r3   
urlunparser   paramsZqueryZfragmentquoter   
applies_to	allowancer   )r
   	useragentr   Z
parsed_urlr(   r   r   r   	can_fetch   s$    				zRobotFileParser.can_fetchc             C   s   d j  d d   |  j D  S)Nr   c             S   s    g  |  ] } t  |  d   q S)
)str).0r(   r   r   r   
<listcomp>   s   	 z+RobotFileParser.__str__.<locals>.<listcomp>)joinr   )r
   r   r   r   __str__   s    zRobotFileParser.__str__N)__name__
__module____qualname__r   r   r   r   r   r)   r   rA   rG   r   r   r   r   r      s   		4c               @   s4   e  Z d  Z d d   Z d d   Z d d   Z d S)r5   c             C   sY   | d k r | r d } t  j j t  j j |   } t  j j |  |  _ | |  _ d  S)Nr   T)r   r   r;   r   r=   r   r?   )r
   r   r?   r   r   r   r      s
    zRuleLine.__init__c             C   s   |  j  d k p | j |  j   S)Nr%   )r   
startswith)r
   filenamer   r   r   r>      s    zRuleLine.applies_toc             C   s   |  j  r d n d d |  j S)NZAllowZDisallowz: )r?   r   )r
   r   r   r   rG      s    zRuleLine.__str__N)rH   rI   rJ   r   r>   rG   r   r   r   r   r5      s   r5   c               @   s@   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 S)
r-   c             C   s   g  |  _  g  |  _ d  S)N)r&   r4   )r
   r   r   r   r      s    	zEntry.__init__c             C   sj   g  } x' |  j  D] } | j d | d g  q Wx* |  j D] } | j t |  d g  q: Wd j |  S)NzUser-agent: rB   r   )r&   extendr4   rC   rF   )r
   retagentr8   r   r   r   rG      s    zEntry.__str__c             C   s]   | j  d  d j   } x= |  j D]2 } | d k r9 d S| j   } | | k r# d Sq# Wd S)Nr:   r   r%   TF)r0   r2   r&   )r
   r@   rO   r   r   r   r>      s    zEntry.applies_toc             C   s.   x' |  j  D] } | j |  r
 | j Sq
 Wd S)NT)r4   r>   r?   )r
   rL   r8   r   r   r   r?      s    zEntry.allowanceN)rH   rI   rJ   r   rG   r>   r?   r   r   r   r   r-      s   r-   )Zurllib.parser   Zurllib.request__all__r   r5   r-   r   r   r   r   <module>   s   	