
    g$
                     b    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             Zy)    N)	dataclass)BROWSER_TO_ACCEPT_VALUESBROWSER_TO_USER_AGENTBROWSERSCOUNTRY_TOP_LEVEL_DOMAINS)_generate_accept_encoding_generate_accept_language_generate_referer_sitec                       e Zd ZU dZeed<   eed<   eed<   eed<   eed<    ej                  e       ej                  e	      dfded	edefd
Z
defdZy)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                     t        j                  t        |         | _        t	        |      | _        t               | _        t        |   | _	        |r|| _        yt        |      | _        y)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   s       V/var/www/openai/venv/lib/python3.12/site-packages/fake_http_header/fake_http_header.py__init__zFakeHttpHeader.__init__$   sS    " !--(=g(FG8E8:.w7")w/Ek/R    returnc                 z    | j                   | j                  | j                  | j                  | j                  d}|S )ztransform 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_reps     r   as_header_dictzFakeHttpHeader.as_header_dict;   s9     //#33#33kk||
 r   )__name__
__module____qualname____doc__str__annotations__r   r   r   r   r   dictr     r   r   r   r      sw    	 OKL %v}}X.(6==)BC	SS S 	S. r   r   )r   dataclassesr   fake_http_header.constantsr   r   r   r   fake_http_header.utilr   r	   r
   r   r(   r   r   <module>r,      s8     !   6 6 6r   