
    &thI              	          d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlZddlZddlmZmZ ddlmZ  ej        e          Z ej                    Ze                     ej        dd	
                     e                    ej                   e                    ej                   e                    e            ee          dz  ZdZej                            de          Ze dZ ej                            de          Z!ej                            dd          Z"e"#                                dv rdZ"dZ$e  de! de  de! de  de! de$ de  de! de$ ddZ%ee!z  dz  d z  ee!z  d!z  d"z  d#z  d$z  d%z  ee!z  e$z  d&z  ee!z  e$z  d&z  dZ&d'e'fd(Z(d'e'fd)Z)d*e'd'efd+Z*d,ed-ed'dfd.Z+d2d/Z,d'efd0Z-d'e.fd1Z/dS )3zChromium download module.    N)BytesIO)Path)ZipFile)__chromium_revision____pyppeteer_home__)tqdmz[{levelname}] {msg}{)fmtstyle)r
   zlocal-chromiumzhttps://storage.googleapis.comPYPPETEER_DOWNLOAD_HOSTz/chromium-browser-snapshotsPYPPETEER_CHROMIUM_REVISIONPYPPETEER_NO_PROGRESS_BAR )1trueTz
chrome-winz/Linux_x64/z/chrome-linux.zipz/Mac/z/chrome-mac.zipz/Win//z.zipz	/Win_x64/)linuxmacwin32win64zchrome-linuxchromez
chrome-maczChromium.appContentsMacOSChromiumz
chrome.exereturnc                     t           j                            d          rdS t           j                            d          rdS t           j                            d          s>t           j                            d          st           j                            d          rt           j        dk    rdS d	S t	          d
t           j        z             )z*Get current platform name by short string.r   darwinr   winmsyscygir   r   zUnsupported platform: )sysplatform
startswithmaxsizeOSError     q/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.11/site-packages/pyppeteer/chromium_downloader.pycurrent_platformr)   7   s    
|w'' w		 	 	*	* u		 	 	'	' 3<+B+B6+J+J clNeNefkNlNl ;$$7w
*S\9
:
::r'   c                  4    t           t                               S )zGet chromium download url.)downloadURLsr)   r&   r'   r(   get_urlr,   D   s    (**++r'   urlc                 >   t                               d           t          j        dt	          j                              5 }|                    d| d          }|j        dk    r-t          d|  d	|j	        
                                 d
          t                      }t          r.|                    d          D ]}|                    |           n	 t          |j        d                   }n# t"          t$          t&          f$ r d}Y nw xY wt)          |dd          }|                    d          D ]9}|                    |           |                    t-          |                     :|                                 ddd           n# 1 swxY w Y   |S )zDownload data from url.zStarting Chromium download.CERT_REQUIRED)	cert_reqsca_certsGETF)preload_contenti  z#Chromium downloadable not found at z: Received z.
i (  zcontent-lengthr   Tb)total
unit_scaleunitN)loggerinfourllib3PoolManagercertifiwhererequeststatusr%   datadecoder   NO_PROGRESS_BARstreamwriteintheadersKeyError
ValueErrorAttributeErrorr   updatelenclose)r-   httpr_datachunktotal_lengthprocess_bars          r(   download_ziprS   I   s   
KK-...			Q	Q	Q  UY LLUL;;8s??hhhTUTZTaTaTcTchhhiii 		 	 % # #E""""#!"19-=#>??j.9 ! ! ! !\dMMMK% / /E"""""3u::....+                             . Ls8   BFC21F2DFDA8FFFr@   pathc                 H   t                               d           t                      dk    rddl}ddl}|dz  }|                                s|                    d           |                    d          5 }|                    | 	                                           ddd           n# 1 swxY w Y   |
                    d	          st          d
| d          |                    d	t          |          gt          |          |j        |j                  }|j        dk    rDt                               |j                                                   t          d| d          t)                                                      r(|                                r|                                 nIt-          |           5 }|                    t          |                     ddd           n# 1 swxY w Y   t)                      }|                                st1          d          |                    |                                j        t4          j        z  t4          j        z  t4          j        z             t                               d|            dS )zExtract zipped data to path.zBeginning extractionr   r   Nz
chrome.zipT)parentswbunzipz6Failed to automatically extract chromium.Please unzip z
 manually.)cwdstdoutstderrzFailed to unzip .zFailed to extract chromium.zChromium extracted to: )r8   r9   r)   
subprocessshutilexistsmkdiropenrD   getvaluewhichr%   runstrPIPESTDOUT
returncodeerrorrZ   rA   chromium_executableunlinkr   
extractallIOErrorchmodstatst_modeS_IXOTHS_IXGRPS_IXUSR)	r@   rT   r]   r^   zip_pathfproczf	exec_paths	            r(   extract_zipry   g   s    KK&'''U"",&{{}} 	%JJtJ$$$]]4   	%AGGDMMOO$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%||G$$ 	ljV^jjjkkk~~c(mm$#d))JOT^Te  
 
 ?aLL++--...8X888999  '')) 	hoo.?.? 	OOT]] 	%bMM#d))$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%#%%I 53444OOINN$$,t|;dlJT\YZZZ
KK0$0011111s$   :(B..B25B2#G66G:=G:c                  r    t          t          t                                t          t          z             dS )zDownload and extract chromium.N)ry   rS   r,   DOWNLOADS_FOLDERREVISIONr&   r'   r(   download_chromiumr}      s*    WYY'')9H)DEEEEEr'   c                  4    t           t                               S )z$Get path of the chromium executable.)chromiumExecutabler)   r&   r'   r(   rj   rj      s    .0011r'   c                  B    t                                                      S )z,Check if chromium is placed at correct path.)rj   r_   r&   r'   r(   check_chromiumr      s      '')))r'   )r   N)0__doc__loggingosro   r!   ior   pathlibr   zipfiler   r<   r:   	pyppeteerr   r   r   	getLogger__name__r8   StreamHandlerhandlersetFormatter	FormattersetLevelINFO
addHandlerr{   DEFAULT_DOWNLOAD_HOSTenvirongetDOWNLOAD_HOSTBASE_URLr|   rB   lowerwindowsArchiver+   r   re   r)   r,   rS   ry   r}   rj   boolr   r&   r'   r(   <module>r      sn       				  



                     ? ? ? ? ? ? ? ?      		8	$	$
'

!
!   **/DCPPP  Q Q Q             '   4*++.>> 8 
8:OPP888:>>79NOO*..!<bAAm++O @@X@@@66X666>>x>>.>>>BB8BBnBBB	  (>9HDx',6G*TW^^akk(>9LH(>9LH	  
;# 
; 
; 
; 
;, , , , ,
c g    <2g 2T 2d 2 2 2 2BF F F F
2T 2 2 2 2
* * * * * * *r'   