o
    òšŒh$
  ã                   @   sV   d dl Z d dlmZ d dlmZmZmZmZ d dlm	Z	m
Z
mZ eG dd„ dƒƒZdS )é    N)Ú	dataclass)ÚBROWSER_TO_ACCEPT_VALUESÚBROWSER_TO_USER_AGENTÚBROWSERSÚCOUNTRY_TOP_LEVEL_DOMAINS)Ú_generate_accept_encodingÚ_generate_accept_languageÚ_generate_referer_sitec                   @   sr   e Zd ZU dZeed< eed< eed< eed< eed< e e¡e e	¡dfded	edefd
d„Z
defdd„ZdS )ÚFakeHttpHeadera£  
    A class to generate fake HTTP headers.

    Attributes:
        user_agent (str): The user agent string representing the browser.
        accept_language (str): The accepted languages for the HTTP header.
        accept_encoding (str): The accepted encodings for the HTTP header.
        accept (str): The accepted content types for the HTTP header.
        referer (str): The referer URL for the HTTP header.
    Ú
user_agentÚaccept_languageÚaccept_encodingÚacceptÚrefererNÚbrowserÚdomain_codec                 C   sH   t  t| ¡| _t|ƒ| _tƒ | _t| | _	|r|| _dS t
|ƒ| _dS )a2  Initializer for a FakeHttpHeader object

        Args:
            :browser (str, optional): Specifies of which browser type the user agent
            should be (for instance 'chrome' or 'firefox').
            :domain_code (str, optional): Specifies, which domain code the referer site should have.
            This arguments has also impact on the generated accept language field.
            :referer (str, optional): Specifies the referer URL for the HTTP header. If not provided,
            it will be randomly generated based on the domain_code.
        N)ÚrandomÚchoicer   r   r   r   r   r   r   r   r	   r   )Úselfr   r   r   © r   ú^/var/www/Befach/backend/venv/lib/python3.10/site-packages/fake_http_header/fake_http_header.pyÚ__init__$   s
   

zFakeHttpHeader.__init__Úreturnc                 C   s   | j | j| j| j| jdœ}|S )zÇtransform a FakeHttpHeader object into a dict representation that is compatible to the requests library

        Returns:
            dict: A dict representation of the FakeHttpHeader object
        )z
User-AgentzAccept-languagezAccept-encodingÚAcceptÚReferer)r   r   r   r   r   )r   Údict_repr   r   r   Úas_header_dict;   s   ûzFakeHttpHeader.as_header_dict)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚ__annotations__r   r   r   r   r   Údictr   r   r   r   r   r
      s$   
 üþý
ür
   )r   Údataclassesr   Úfake_http_header.constantsr   r   r   r   Úfake_http_header.utilr   r   r	   r
   r   r   r   r   Ú<module>   s    