
    hg&                        d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlZ ej        e          Z ej        d          Z ej                    Ze                    e           e                    e            G d d          ZdS )	    )	webdriver)Options)ChromeDriverManager)GeckoDriverManagerNz4%(asctime)s - %(name)s - %(levelname)s - %(message)sc                   (    e Zd ZddZd Zd Zd ZdS )InitializerNTc                 0    || _         || _        || _        d S )N)browser_nameproxyheadless)selfr
   r   r   s       d/var/www/fb-scrape/myenv/lib/python3.11/site-packages/facebook_page_scraper/driver_initialization.py__init__zInitializer.__init__   s    (
     c                 d   | j         r|                    d           |                    d           |                    d           |                    d           |                    d           |                    d           |                    d           |                    d           |S )	zadds capabilities to the driverz
--headlessz--no-sandboxz--disable-dev-shm-usagez--ignore-certificate-errorsz--disable-gpuz--log-level=3z--disable-notificationsz--disable-popup-blocking)r   add_argument)r   browser_options     r   set_propertieszInitializer.set_properties   s    = 	''  ##N333##$=>>>##$ABBB##O444##O444##$=>>>##$>???r   c                    t                               t          j                   |                                dk    r4t                      }| j        d                    | j                            dd                    d                    | j                            dd                    dd}t           	                    d	                    | j                             t          j        t                                                      |                     |          |
          S t          j        t                                                      |                     |                    S |                                dk    r4t                      }| j        d                    | j                            dd                    d                    | j                            dd                    dd}t           	                    d	                    | j                             t          j        t#                                                      |                     |          |
          S t          j        t#                                                      |                     |                    S t%          d          )z2expects browser name and returns a driver instancechromeNz
https://{}  z	http://{}zlocalhost, 127.0.0.1)httpshttpno_proxyz	Using: {})executable_pathoptionsseleniumwire_options)r   r   firefoxzBrowser not supported!)loggersetLevelloggingINFOlowerChromeOptionsr   formatreplaceinfor   Chromer   installr   FirefoxOptionsFirefoxr   	Exception)r   r
   r   r   s       r   set_driver_for_browserz"Initializer.set_driver_for_browser)   s   %%%8++*__Nz%)001C1CC1L1LMM'..tz/A/A#r/J/JKK 6 
 K..tz::;;; '8K8M8M8U8U8W8W040C0CN0S0Sjqs s s s #4G4I4I4Q4Q4S4S]a]p]pq  ^A  ^A  B  B  B  B!!Y..+--Nz%)001C1CC1L1LMM'..tz/A/A#r/J/JKK 6 
 K..tz::;;; (9K9M9M9U9U9W9W151D1D^1T1Tkrt t t t $5G5I5I5Q5Q5S5S]a]p]pq  ^A  ^A  B  B  B  B 4555r   c                 :    |                      | j                  }|S )zreturns driver instance)r.   r
   )r   drivers     r   initzInitializer.initM   s    ,,T->??r   )NT)__name__
__module____qualname__r   r   r.   r1    r   r   r   r      sV        ! ! ! !
  "6 "6 "6H    r   r   )seleniumwirer   !selenium.webdriver.chrome.optionsr   r%   "selenium.webdriver.firefox.optionsr+   webdriver_manager.chromer   webdriver_manager.firefoxr   r"   	getLoggerr2   r    	Formatterr&   StreamHandlerchsetFormatter
addHandlerr   r5   r   r   <module>rA      s    # " " " " " F F F F F F H H H H H H 8 8 8 8 8 8 8 8 8 8 8 8 		8	$	$		:
< 
<W       "   < < < < < < < < < <r   