
    iwi                         d Z ddlZddlZddlZdddddddddddZdd	id
ddddZd Zg dZddZddZ		 	 ddZ
dddddddZd Zy)a}  
Proxy Configuration for Web Scraping
Contains datacenter and residential proxy settings.

Usage:
    from proxy_config import get_proxy, get_headers, make_request

    # Use default (datacenter) proxy
    response = make_request('https://example.com')

    # Use residential proxy for stricter sites
    response = make_request('https://draftkings.com', proxy_type='residential')
    Nz2socks5h://goDRdyJf:1aIFz9LNOW@82.163.172.166:50101)httphttpszsocks5h://54.38.19.233:3028zsocks5h://rcg8xifhpi-mobile.res-country-US-state-4138106-city-4140963-hold-session-session-696f0b419355b:BiTdz79dSml10jvQ@93.190.141.105:443)
datacenterresidentialmobilenoneserverzsocks5://54.38.19.233:3028zsocks5://93.190.141.105:443z^rcg8xifhpi-mobile.res-country-US-state-4138106-city-4140963-hold-session-session-696f0b419355bBiTdz79dSml10jvQ)r	   usernamepassword)r   r   c                  4    g d} t        j                  |       S )zGet a random proxy for rotation)r   r   r   )randomchoice)choicess    1/var/www/html/eventheodds/scripts/proxy_config.pyget_rotating_proxyr   -   s    5G==!!    )zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36zuMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36zPMozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0zuMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15r   c                 <    t         j                  | t         d         S )zGet proxy configuration by typer   )PROXIESget)
proxy_types    r   	get_proxyr   ;   s    ;;z7<#899r   c                 j    t        j                  t              ddddd}| r|j                  |        |S )z*Get request headers with random user agentz?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8zen-US,en;q=0.5zgzip, deflatez
keep-alive)z
User-AgentAcceptzAccept-LanguagezAccept-Encoding
Connection)r   r   USER_AGENTSupdate)custom_headersheaderss     r   get_headersr    @   s9     mmK0S+*"G ~&Nr   c           
         |r%t        j                  t        j                  |        t	        |      }t        |j                  dd            }	 t        j                  d|| |||d|}	|	S # t        $ r}
t        d| d|
        |ru|dk(  rpt        d       t        j                  d       	 t        j                  d|| t	        d	      ||d|}	|	cY d}
~
S # t        $ r}t        d
|        Y d}~nd}~ww xY wY d}
~
yd}
~
ww xY w)a  
    Make HTTP request with proxy and retry logic.
    
    Args:
        url: Target URL
        proxy_type: 'datacenter', 'residential', or 'none'
        method: HTTP method
        timeout: Request timeout in seconds
        retry_with_residential: If datacenter fails, retry with residential
        delay_range: Random delay range in seconds (min, max)
        **kwargs: Additional requests parameters
    
    Returns:
        requests.Response or None on failure
    r   N)methodurlproxiesr   timeoutzRequest failed (z): r   z$  Retrying with residential proxy...   r   z  Residential also failed:  )timesleepr   uniformr   r    poprequestsrequest	Exceptionprint)r#   r   r"   r%   retry_with_residentialdelay_rangekwargsproxyr   responseee2s               r   make_requestr7   N   s"   $ 

6>>;/0j!E&**Y56G## 

 
   Cs34 "jL&@89JJqM:#++ !%m4##    :3B4899: )sB   A, ,	D58D.%CD	C:"C50D5C::DDr   r   )zdraftkings.comzfanduel.comzactionnetwork.comzoddsportal.comz
covers.comzespn.comc                 h    t         j                         D ]  \  }}|| j                         v s|c S  y)z$Get recommended proxy type for a URLr   )SITE_PROXY_MAPitemslower)r#   siter   s      r   get_recommended_proxyr=      s8    *002 j399; r   )r   )N)r   GET   T)      )__doc__r,   r   r(   r   PLAYWRIGHT_PROXIESr   r   r   r    r7   r9   r=   r'   r   r   <module>rD      s      
 EE
 ..
 _ ` $ :;/t& ":
 FH9?6v $ &"r   