o
    h                     @   sb   d dl Z d dlZd dlZddlmZmZ eejddZdd Zdd	 Z	d
d Z
dd Zdd ZdS )    N   )AsyncLoggerLogLevelT)	log_levelverbosec                   C   s,   t jddd t  t  t jddd dS )zRun all post-installation tasksz"Running post-installation setup...INITtagz"Post-installation setup completed!COMPLETEN)loggerinfoinstall_playwrightrun_migrationsuccess r   r   M/var/www/Befach/backend/venv/lib/python3.10/site-packages/crawl4ai/install.pypost_install	   s   r   c               
   C   s   t jddd zttjdddddd	g t jd
dd W d S  tjy< }  zt dtj d W Y d } ~ d S d } ~ w t	yX }  zt dtj d W Y d } ~ d S d } ~ w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)er   r   r   r      s   ""r   c               
   C   s   zt jddd ddlm}  t|   t jddd W dS  ty-   t 	d Y dS  t
yL } zt 	d	|  t 	d
 W Y d}~dS d}~w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   r   r   r   r      s   r   c            	   
      s  t jddd zcddlm} m}m}m} |dddddd	d
}||jdd}| |d4 I dH /}t jddd |jd|dI dH }|rZ|j	rZt j
ddd 	 W d  I dH  W dS td1 I dH sdw   Y  W dS  ty } zt jd| dd W Y d}~dS d}~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)urlr0   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   r   r   r   
run_doctor+   sB   	
r=   c                  C   s   ddl } | t S )z"Entry point for the doctor commandr   N)r    r!   r=   )r    r   r   r   doctorP   s   r>   )r   r   r    async_loggerr   r   DEBUGr   r   r   r   r=   r>   r   r   r   r   <module>   s    %