
    h	
                     .    d dl mZ e G d d             Zy)    )	dataclassc                       e Zd ZU dZeed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   eed
<   eed<   eed<   	 ddee   dedefdZ	defdZ
dee   defdZdefdZdefdZdefdZy)HeaderPropertiesz~Class for the header properties. We will take the Sec_Fetch_Site, Sec_Fetch_Mode and Sec_Fetch_Dest from the original headers.
user_agentaccept_languageaccept_encodingacceptrefererorigin	sec_ch_uasec_ch_ua_mobilesec_ch_ua_platformsec_ch_ua_form_factorsdntbrandsclient_hint_headers_enabledc                 &   |d   | _         |d   | _        |d   | _        |d   | _        |d   | _        || _        |rV| j                  |      | _        | j                         | _	        | j                         | _        | j                         | _        y y )Nz
User-AgentzAccept-languagezAccept-encodingAcceptReferer)r   r   r   r	   r
   r   _generate_sec_ch_uar   _generate_sec_ch_ua_mobiler   _generate_sec_ch_ua_platformr    _generate_sec_ch_ua_form_factorsr   )selfr   r   r   kwargss        l/var/www/Befach/backend/env/lib/python3.12/site-packages/playwright_stealth/properties/_header_properties.py__init__zHeaderProperties.__init__   s     !.%&78%&78X&i(  '!55f=DN$($C$C$ED!&*&G&G&ID#*.*O*O*QD'	 '    returnc                 j    d| j                   v }d| j                   v }d| j                   v }|ry|ry|ryy)zBGenerates the Sec_Ch_Ua_Platform based on the user agent platform.	MacintoshWindowsLinuxmacOSUnknown)r   )r   is_mac
is_windowsis_linuxs       r   r   z-HeaderProperties._generate_sec_ch_ua_platform/   sC     /$//1
doo-r   c           
      h    dj                  |D cg c]  }d|d    d|d    d c}      }|S c c}w )z.Generates the Sec_Ch_Ua based brands generated "brandz";v="versionz",)join)r   r   r,   merged_brandss       r   r   z$HeaderProperties._generate_sec_ch_ua?   sC    \b cSX1U7^$4E%	:J9K2!N cd !ds   /c                      y)z=Generates the Sec_Ch_Ua_Form_Factors based on the user agent.desktop r   s    r   r   z1HeaderProperties._generate_sec_ch_ua_form_factorsD   s     r   c                      y)z7Generates the Sec_Ch_Ua_Mobile based on the user agent.z?0r2   r3   s    r   r   z+HeaderProperties._generate_sec_ch_ua_mobileI   s     r   c                     | j                   j                         D ci c]&  \  }}|j                  dd      j                         |( c}}S c c}}w )N_-)__dict__itemsreplacelower)r   keyvalues      r   as_dictzHeaderProperties.as_dictN   s@    GK}}GZGZG\]eC%++-u4]]]s   +AN)T)__name__
__module____qualname____doc__str__annotations__listdictboolr   r   r   r   r   r>   r2   r   r   r   r      s     I OKL KN	H -1	RT
R R &*	R0c  $t*  
# 
C 
^ ^r   r   N)dataclassesr   r   r2   r   r   <module>rI      s'    ! K^ K^ K^r   