
    <OOf\!                     X    d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	  G d d      Z
e
Zy)    N)settings)FakeUserAgentError)logger)load	str_typesc                       e Zd Zg dg dddg dd e       fdZddZd Zd	 Z fd
Ze	d        Z
e	d        Ze	d        Ze	d        Ze	d        Ze	d        Ze	d        Ze	d        Ze	d        Ze	d        Ze	d        Ze	d        Z xZS )FakeUserAgent)chromeedgefirefoxsafari)windowsmacoslinuxandroidiosg        )pcmobiletabletz}Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0c                 6   t        |t        t        f      sJ d       t        |t              r|g}|| _        t        |t        t        f      sJ d       t        |t              r|g}g | _        |D ]\  }|t
        j                  v r-| j                  j                  t
        j                  |          B| j                  j                  |       ^ t        |t        t        f      sJ d       t        |t              rt        |      }|| _        t        |t        t        f      sJ d       t        |t              rt        |      }|| _        t        |t        t        f      sJ d       t        |t              r|g}|| _        t        |t              sJ d       || _        t        |t        t        t         f      sJ d       |r/|D 	cg c]  }	t        |	t"               }
}	t%        |
      sJ d       t        |      | _        t)               | _        y c c}	w )Nzbrowsers must be list or stringzOS must be list or stringz-Minimum usage percentage must be float or intz$Minimum version must be float or intz platforms must be list or stringzfallback must be stringz7safe_attrs must be list\tuple\set of strings or unicode)
isinstanceliststrbrowsersosr   OS_REPLACEMENTSextendappendfloatintmin_percentagemin_version	platformsfallbacksettupler   all
safe_attrsr   data_browsers)selfr   r   r"   r!   r#   r$   r(   os_nameattrstr_types_safe_attrss              T/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/fake_useragent/fake.py__init__zFakeUserAgent.__init__
   s	    (T3K0S2SS0h$ zH "tSk*G,GG*b#B 	(G(222x77@Aw'		( UCL
 	;:	; 
 nc*">2N,%
 	21	2 
 k3',K&)dC[1U3UU1i%"I"(C(C*CC( sE*
 	GF	G 
 LV#WDJtY$?#W #W$ KJK  j/ "V $Xs   Hc                      t        t         fd j                              }rt        t        fd|            }|S )Nc                     | d   j                   v xrL | d   j                  v xr9 | d   j                  v xr& | d   j                  k\  xr | d   j                  k\  S )Nbrowserr   typeversionpercent)r   r   r#   r"   r!   )xr*   s    r.   <lambda>z2FakeUserAgent._filter_useragents.<locals>.<lambda>T   ss    !I,$--7 8dGtww&8fI/8 iLD$4$448 iLD$7$77	     c                     | d   k(  S )Nr2    )r6   requests    r.   r7   z2FakeUserAgent._filter_useragents.<locals>.<lambda>_   s    9!8 r8   )r   filterr)   )r*   r;   filtered_useragentss   `` r.   _filter_useragentsz FakeUserAgent._filter_useragentsP   sJ    "8
 ""	
 "&8:MN# #"r8   c                    	 t         j                  j                         D ]  \  }}|j                  ||      } |j	                         }t         j
                  j                  ||      }|dk(  r| j                         }n| j                  |      }t        j                  |      S # t        t        f$ rH | j                  t        d|       t        j                  d| d       | j                  ddddd	cY S w xY w)
Nrandomr;   'Error occurred during getting browser: #, but was suppressed with fallback.zChrome 122.0 Win10r
   g     ^@win10)	useragentsystemr2   r4   r   )r   REPLACEMENTSitemsreplacelower	SHORTCUTSgetr>   r@   choiceKeyError
IndexErrorr$   r   r   warning)r*   r;   valuereplacementfiltered_browserss        r.   
getBrowserzFakeUserAgent.getBrowserf   s   (	&.&;&;&A&A&C >"{!//%=>mmoG((,,Wg>G("
 %)$;$;$=! %)$;$;G$;$L! ==!233*% 	}}$(=gYG  =gY G8 8 "&2'$! 	s   B$B' 'AC>=C>c                 $    | j                  |      S N__getattr__)r*   r,   s     r.   __getitem__zFakeUserAgent.__getitem__   s    %%r8   c                 X   || j                   v rt        t        |   |      S 	 t        j
                  j                         D ]  \  }}|j                  ||      } |j                         }t        j                  j                  ||      }|dk(  r| j                         }n| j                  |      }t        j                  |      j                  d      S # t        t        f$ rB | j                   t#        d|       t%        j&                  d| d       | j                   cY S w xY w)Nr@   rA   rE   rB   rC   )r(   super	UserAgent__getattribute__r   rG   rH   rI   rJ   rK   rL   r>   r@   rM   rN   rO   r$   r   r   rP   )r*   r,   rQ   rR   rS   	__class__s        r.   rX   zFakeUserAgent.__getattr__   s)   4??"D:4@@"	%&.&;&;&A&A&C 8"{||E;78::<D%%))$5Dx
 %)$;$;$=! %)$;$;D$;$I! ==!2377DD*% 	%}}$(=dVD  =dV D8 8
 }}$	%s   B3C AD)(D)c                 $    | j                  d      S Nr
   rW   r*   s    r.   r
   zFakeUserAgent.chrome       ))r8   c                     | j                   S rV   )r
   ra   s    r.   googlechromezFakeUserAgent.googlechrome   s    {{r8   c                 $    | j                  d      S Nr   rW   ra   s    r.   r   zFakeUserAgent.edge   s    ''r8   c                 $    | j                  d      S Nr   rW   ra   s    r.   r   zFakeUserAgent.firefox   s    	**r8   c                     | j                   S rV   )r   ra   s    r.   ffzFakeUserAgent.ff   s    ||r8   c                 $    | j                  d      S Nr   rW   ra   s    r.   r   zFakeUserAgent.safari   rb   r8   c                 $    | j                  d      S Nr@   rW   ra   s    r.   r@   zFakeUserAgent.random   rb   r8   c                 $    | j                  d      S rh   rT   ra   s    r.   
getFirefoxzFakeUserAgent.getFirefox   s    y))r8   c                 $    | j                  d      S r`   rp   ra   s    r.   	getChromezFakeUserAgent.getChrome       x((r8   c                 $    | j                  d      S rf   rp   ra   s    r.   getEdgezFakeUserAgent.getEdge   s    v&&r8   c                 $    | j                  d      S rl   rp   ra   s    r.   	getSafarizFakeUserAgent.getSafari   rt   r8   c                 $    | j                  d      S rn   rp   ra   s    r.   	getRandomzFakeUserAgent.getRandom   rt   r8   rV   )__name__
__module____qualname__r&   r/   r>   rT   rY   rX   propertyr
   rd   r   r   rj   r   r@   rq   rs   rv   rx   rz   __classcell__)r^   s   @r.   r	   r	   	   s-    9:,; 7B$L#,)Z&
&%P * *   ( ( + +   * * * * * * ) ) ' ' ) ) ) )r8   r	   )r@   fake_useragentr   fake_useragent.errorsr   fake_useragent.logr   fake_useragent.utilsr   r   r	   r\   r:   r8   r.   <module>r      s(     # 4 % 0f) f)T 	r8   