
    g                     :    d dl mZ d dlmZ e G d d             Zy)    )	dataclass)Listc                   >   e Zd ZU dZeed<   eed<   eed<   ee   ed<   eed<   eed<   eed<   eed	<   eed
<   eed<   ee   ed<   e	ed<   dee   defdZ
dedefdZdefdZdedee   fdZdedefdZdedefdZdefdZdedefdZdefdZde	fdZdefdZy)NavigatorPropertiesz#Class for the navigator properties.	userAgentplatformlanguage	languages
appVersionvendordeviceMemoryhardwareConcurrencymaxTouchPoints
doNotTrackbrandsmobiledntc                    |d   | _         || _        || _        | j                  |d         | _        | j                         | _        | j                  |d         | _        | j                  |d         | _
        | j                  |d         | _        | j                         | _        | j                  | j                        | _        | j#                         | _        | j'                         | _        y )Nz
User-AgentzAccept-language)r   r   r   _generate_platformr   _generate_languager	   _generate_languagesr
   _generate_app_versionr   _generate_vendorr   _generate_device_memoryr   _generate_hardware_concurrencyr   _generate_max_touch_pointsr   _generate_mobiler   )selfr   r   kwargss       h/var/www/openai/venv/lib/python3.12/site-packages/playwright_stealth/properties/_navigator_properties.py__init__zNavigatorProperties.__init__   s    -  //|0DE//111&9J2KL44VL5IJ++F<,@A 88:#'#F#FtGXGX#Y "==?++-    
user_agentreturnc                     d|v ryd|v ryy)z/Generates the platform based on the user agent.	MacintoshLinuxWindows r   r#   s     r    r   z&NavigatorProperties._generate_platform(   s     *$
"r"   c                      y)z4Generates the language based on the accept language.zen-USr)   r   s    r    r   z&NavigatorProperties._generate_language2   s     r"   accept_languagec                 t    |j                  d      }|D cg c]  }|j                  d      d    }}|S c c}w )z5Generates the languages based on the accept language.,;r   split)r   r-   languages_with_qualityr	   r
   s        r    r   z'NavigatorProperties._generate_languages7   sE     "1!6!6s!;<RS<RX^^C(+<R	S Ts   5c                 0    |j                  dd      d   }|S )z2Generates the app version based on the user agent./   r1   )r   r#   version_parts      r    r   z)NavigatorProperties._generate_app_version>   s!     "''Q/2r"   c                     d|v ryd|v ryy)z-Generates the vendor based on the user agent.ChromezGoogle Inc.Firefox r)   r*   s     r    r   z$NavigatorProperties._generate_vendorD   s     z! *$r"   c                      y)zGenerates the device memory.   r)   r,   s    r    r   z+NavigatorProperties._generate_device_memoryN        r"   device_memoryc                     |S )z#Generates the hardware concurrency.r)   )r   r?   s     r    r   z2NavigatorProperties._generate_hardware_concurrencyS   s
     r"   c                      y)zMGenerates the max touch points. Default is 0 since this is a desktop browser.r   r)   r,   s    r    r   z.NavigatorProperties._generate_max_touch_pointsX   r>   r"   c                      y)zGenerates the mobile flag.Fr)   r,   s    r    r   z$NavigatorProperties._generate_mobile]   s     r"   c                     | j                   S )N)__dict__r,   s    r    as_dictzNavigatorProperties.as_dictb   s    }}r"   N)__name__
__module____qualname____doc__str__annotations__r   intdictboolr!   r   r   r   r   r   r   r   r   r   rE   r)   r"   r    r   r      s   -NMMCyOKOJL.tDz . .$S S C 
3 49   3 3  
C C 
C 
$ 
 r"   r   N)dataclassesr   typingr   r   r)   r"   r    <module>rQ      s'    !  ] ] ]r"   