
    wg                     B    d dl Z d dlmZ  G d de          ZdefdZdS )    N)UrlParserInterfacec                       e Zd Zededefd            Zededefd            Zededefd            ZdedefdZ	dedefdZ
d	S )
	UrlParserpathreturnc                 ^    |                      dd          } |                      dd          } | S )Nzhttps:// zhttp://)replace)r   s    9/var/www/html/cms/infrastructure/url_parser/url_parser.pyremove_protocolzUrlParser.remove_protocol   s-    ||J++||Ir**    c                 &    g d}|D ]	}|| v r dS 
dS )N)z.png	__debug__z.jpgz.jsz.cssz.scssz.webpz.WEBPz.icoz.jpegstylesstaticmediaTF )r   static_patternsstatic_patterns      r   	is_sourcezUrlParser.is_source   sB    
 
 
 . 	 	N%%tt & ur   c                 X    t          j        d          }|                    |           d uS )Nz^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$)recompilematch)r   
ip_patterns     r   is_ipzUrlParser.is_ip%   s+    Z BCC
%%T11r   hostc                    |                      |          }|                    dd          }d|v r!d|vrdS |                    d          d         S |                    d          dk     rdS |                    d          d         S )N	127.0.0.1	localhost.r	   r      )r   r
   splitcount)selfr   s     r   get_subdomain_from_hostz!UrlParser.get_subdomain_from_host*   s    ##D))||K55$$r::c??1%%::c??Q2zz#q!!r   c                    |                      |          }|                    dd          }d|v r|                    d          d         }|                     |          }|                    d          d         }t	          j        | d| |          d         }t	          j        |d|          }|d         dk    r
|d	d          }|S )
Nr   r    :r   r!   z.*?r	      )r   r
   r#   r&   r   findallsub)r%   r   	subdomainfirst_domaindomains        r   get_domain_from_hostzUrlParser.get_domain_from_host9   s    ##D))||K55$;;::c??1%D0066	zz#r*y;;\;;TBB1E	2v..!9ACC[Fr   N)__name__
__module____qualname__staticmethodstrr   boolr   r   r&   r0   r   r   r   r   r      s        c c    \      \, 2C 2D 2 2 2 \2"C "C " " " "       r   r   r   c                      t                      S )N)r   r   r   r   get_url_parserr8   K   s    ;;r   )r   )infrastructure.url_parser.base_url_parserr   r   r8   r   r   r   <module>r:      sz    				 H H H H H HB B B B B" B B BJ*      r   