+
    }i                        R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	t	^RI
HtHt ^RIHtHtHt ^RIHtHtHtHt  ^ R	IHt  ! R R]4      t]	P8                  ! 4       R R l4       t]P=                  RR7      ]	P>                  ! RRRR7      R*R R ll4       4       t ]P=                  RR7      R R l4       t!]P=                  RR7      ]	PD                  ! RRRR7      R+R R ll4       4       t#]P=                  R R7      R! R" l4       t$]P=                  R#R7      R$ R% l4       t%]P=                  R&R7      R' R( l4       t]&R)8X  d
   ]! 4        R# R#   ] d    ^ R
IHt  ELi ; i),zu
CLI package manager for Camoufox.

Adapted from https://github.com/daijro/hrequests/blob/main/hrequests/__main__.py
)PackageNotFoundError)version)environ)OptionalN)DefaultAddonsmaybe_download_addons)ALLOW_GEOIPdownload_mmdbremove_mmdb)INSTALL_DIRCamoufoxFetcherinstalled_verstrrprint)download)Downloadc                   f   a a ] tR t^t oRtV3R lV 3R lltV3R lR ltV3R lR ltRtVt	V ;t
# )	CamoufoxUpdatez
Checks & updates Camoufox
c                   < V ^8  d   QhRR/#    returnN )format__classdict__s   "c/Users/ahmad/.openclaw/workspace/my-crawler/.venv/lib/python3.14/site-packages/camoufox/__main__.py__annotate__CamoufoxUpdate.__annotate__   s     	' 	'$ 	'    c                z   < \         SV `  4        V   \        4       V n        R#   \         d    RT n         R# i ; i)z&
Initializes the CamoufoxUpdate class
N)super__init__r   current_verstrFileNotFoundError)self	__class__s   &r   r    CamoufoxUpdate.__init__   s:     		'"2"4D  	'"&D	's   $ ::c                    < V ^8  d   QhRS[ /# )r   r   )bool)r   r   s   "r   r   r   )   s      4 r   c                `    V P                   f   R# V P                   V P                  8w  d   R# R# )NTF)r!   verstrr#   s   &r   is_updated_needed CamoufoxUpdate.is_updated_needed)   s)    &$++-r   c                   < V ^8  d   QhRR/# r   r   )r   r   s   "r   r   r   2   s       r   c                F   V P                  4       '       g*   \        RRR7       \        RV P                   2RR7       R# V P                  e)   \        RV P                   RV P                   2RR7       M\        R	V P                   R
2RR7       V P	                  4        R# )z
Updates Camoufox if needed
zCamoufox binaries up to date!greenfgzCurrent version: vNz!Updating Camoufox binaries from vz => vyellowzFetching Camoufox binaries vz...)r+   r   r!   r)   installr*   s   &r   updateCamoufoxUpdate.update2   s    
 %%''2w?'(;(;'<='J *3D4G4G3Hdkk][
 1$++cBxPr   )r!   )__name__
__module____qualname____firstlineno____doc__r    r+   r4   __static_attributes____classdictcell____classcell__)r$   r   s   @@r   r   r      s-     	' 	'   r   r   c                    V ^8  d   QhRR/# r   r   )r   s   "r   r   r   J   s     	 	T 	r   c                      R # Nr   r   r   r   clirA   I   s    r   fetch)namez--browserforgeTz8Update browserforge's header and fingerprint definitions)is_flaghelpFc                    V ^8  d   QhRR/# r   r   )r   s   "r   r   r   R   s     = = =r   c                    \        4       P                  4        \        '       d   \        4        \	        \        \        4      4       V '       d   \        RRR7       R# R# )zT
Fetch the latest version of Camoufox and optionally update Browserforge's database
T)headersfingerprintsN)r   r4   r   r	   r   listr   update_browserforge)browserforges   &r   rB   rB   N   s>     { $}-.Dt< r   removec                    V ^8  d   QhRR/# r   r   )r   s   "r   r   r   c   s       r   c                 p    \        4       P                  4       '       g   \        RRR7       \        4        R# )z
Remove all downloaded files
zCamoufox binaries not found!redr0   N)r   cleanupr   r
   r   r   r   rM   rM   b   s&    
 ##%%-%8Mr   testurl)defaultrequiredc                >    V ^8  d   QhR\         \        ,          RR/# )r   rS   r   N)r   str)r   s   "r   r   r   o   s     
 
hsm 
t 
r   c                    ^RI Hp V! R\        RR/R7      ;_uu_ 4       pVP                  4       pV '       d   VP	                  V 4       VP                  4        RRR4       R#   + '       g   i     R# ; i)z
Open the Playwright inspector
)CamoufoxF
showcursor)headlessenvconfigN)sync_apirY   r   new_pagegotopause)rS   rY   browserpages   &   r   rR   rR   m   sS     #	5g|U6K	L	LPW!IIcN

	 
M	L	L	Ls   :A$$A5	serverc                    V ^8  d   QhRR/# r   r   )r   s   "r   r   r   }   s       r   c                      ^RI Hp  V ! 4        R# )z
Launch a Playwright server
launch_serverN)rd   rh   rg   s    r   rd   rd   |   s    
 &Or   pathc                    V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     $ $d $r   c                 (    \        \        RR7       R# )z-
Display the path to the Camoufox executable
r/   r0   N)r   r   r   r   r   ri   ri      s    
 ;7#r   r   c                    V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     - - -r   c                 t    \        R\        R4       2RR7       \        4       p V P                  pV'       g   \        RRR7       R# \        R	V R
2RRR7       V P                  4       '       d   \        RV P                   R2RR7       R# \        RRR7       R#   \         d    \        RRR7        Li ; i)z
Display the current version
zPip package:	vcamoufoxr/   r0   zPip package:	Not installed!rP   zCamoufox:	Not downloaded!NzCamoufox:	v F)r1   nlz(Latest supported: v)z(Up to date!)r2   )r   pkg_versionr   r   r!   r+   r)   )updaterbin_vers     r   r   r      s    9Z!8 9:wG G$$G +6
\'!$U;   ""%gnn%5Q7EB8,#   9-%89s   B B76B7__main__)Fr@   )'r:   importlib.metadatar   r   rr   osr   typingr   clickaddonsr   r   localer   r	   r
   pkgmanr   r   r   r   browserforge.downloadr   rK   ImportErrorr   r   grouprA   commandoptionrB   rM   argumentrR   rd   ri   r6   r   r   r   <module>r      sp   4 5    8 ; ; J JFE-_ -` 	 	 'd)d= =  (  &te4
 5 
 (  &$ $ )- -6 zE m  FEEFs   E E"!E"