
    g                     r    d dl Z d dlZd dlZddlmZmZ  eej                  d      Zd Zd Z	d Z
d	 Zd
 Zy)    N   )AsyncLoggerLogLevelT)	log_levelverbosec                      t         j                  dd       t                t                t         j	                  dd       y)zRun all post-installation tasksz"Running post-installation setup...INITtagz"Post-installation setup completed!COMPLETEN)loggerinfoinstall_playwrightrun_migrationsuccess     E/var/www/openai/venv/lib/python3.12/site-packages/crawl4ai/install.pypost_installr   	   s/    
KK4&KAO
NN7ZNHr   c            	         t         j                  dd       	 t        j                  t        j
                  dddddd	g       t         j                  d
d       y # t        j                  $ r1} t         j                  dt        j
                   d       Y d } ~ y d } ~ wt        $ r1} t         j                  dt        j
                   d       Y d } ~ y d } ~ ww xY w)Nz!Installing Playwright browsers...r	   r
   z-m
playwrightinstallz--with-depsz--forcechromiumz/Playwright installation completed successfully.r   zPlease run 'zD -m playwright install --with-deps' manually after the installation.)
r   r   
subprocess
check_callsys
executabler   CalledProcessErrorwarning	Exception)es    r   r   r      s    
KK3K@	|s~~t\9m]fhrstHjY(( |cnn%55yz{{ |cnn%55yz{{|s$   AA C.'BC&'CCc                  x   	 t         j                  dd       ddlm}  t	        j
                  | j                                t         j                  dd       y# t        $ r t         j                  d       Y yt        $ r7}t         j                  d	|        t         j                  d
       Y d}~yd}~ww xY w)z'Initialize database during installationz#Starting database initialization...r	   r
   r   )async_db_managerz/Database initialization completed successfully.r   z8Database module not found. Will initialize on first use.z Database initialization failed: z)Database will be initialized on first useN)r   r   crawl4ai.async_databaser#   asynciorun
initializer   ImportErrorr   r    )r#   r!   s     r   r   r      s    
D9vF<$//12HjY SQR D9!=>BCCDs   AA B9:B9-B44B9c                  8  K   t         j                  dd       	 ddlm} m}m}m}  |dddddd	
      } ||j                  d      } | |      4 d{   }t         j                  dd       |j                  d|       d{   }|r5|j                  r)t         j                  dd       	 ddd      d{    yt        d      7 x7 H7 # 1 d{  7  sw Y   yxY w# t        $ r$}t         j                  d| d       Y d}~yd}~ww xY ww)z$Test if Crawl4AI is working properlyz Running Crawl4AI health check...r	   r
   r   )AsyncWebCrawlerBrowserConfigCrawlerRunConfig	CacheModeTr   i   i  )headlessbrowser_typeignore_https_errors
light_modeviewport_widthviewport_height)
cache_mode
screenshot)configNz Testing crawling capabilities...TESTzhttps://crawl4ai.com)urlr6   u   ✅ Crawling test passed!r   zFailed to get contentu   ❌ Test failed: ERRORF)r   r   async_webcrawlerr*   r+   r,   r-   BYPASSarunmarkdownr   r    error)	r*   r+   r,   r-   browser_config
run_configcrawlerresultr!   s	            r   
run_doctorrC   +   s    
KK2K? aa&# $
 & ''


 #.99WKK:KG"<<*! (  F
 &//:
K :99   788 : :999  (,':s   D;C* CC* .CC	*C3C* >C?C* DCC* CC* C'CC'#C* &D'C* *	D3DDDDc                  >    ddl }  | j                  t                     S )z"Entry point for the doctor commandr   N)r%   r&   rC   )r%   s    r   doctorrE   P   s    7;;z|$$r   )r   r   r%   async_loggerr   r   DEBUGr   r   r   r   rC   rE   r   r   r   <module>rH      s@     
  / 
x~~t	<I|D#J%r   