mirror of
				https://github.com/dgtlmoon/changedetection.io.git
				synced 2025-11-04 00:27:48 +00:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			0.50.14
			...
			proxy-impr
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					9633f02090 | 
@@ -25,6 +25,8 @@ class Fetcher():
 | 
			
		||||
    # Will be needed in the future by the VisualSelector, always get this where possible.
 | 
			
		||||
    screenshot = False
 | 
			
		||||
    fetcher_description = "No description"
 | 
			
		||||
    system_http_proxy = os.getenv('HTTP_PROXY')
 | 
			
		||||
    system_https_proxy = os.getenv('HTTPS_PROXY')
 | 
			
		||||
 | 
			
		||||
    @abstractmethod
 | 
			
		||||
    def get_error(self):
 | 
			
		||||
@@ -80,17 +82,12 @@ class base_html_playwright(Fetcher):
 | 
			
		||||
    if os.getenv("PLAYWRIGHT_DRIVER_URL"):
 | 
			
		||||
        fetcher_description += " via '{}'".format(os.getenv("PLAYWRIGHT_DRIVER_URL"))
 | 
			
		||||
 | 
			
		||||
#    try:
 | 
			
		||||
#        from playwright.sync_api import sync_playwright
 | 
			
		||||
#    except ModuleNotFoundError:
 | 
			
		||||
#        fetcher_enabled = False
 | 
			
		||||
 | 
			
		||||
    browser_type = ''
 | 
			
		||||
    command_executor = ''
 | 
			
		||||
 | 
			
		||||
    # Configs for Proxy setup
 | 
			
		||||
    # In the ENV vars, is prefixed with "playwright_proxy_", so it is for example "playwright_proxy_server"
 | 
			
		||||
    playwright_proxy_settings_mappings = ['server', 'bypass', 'username', 'password']
 | 
			
		||||
    playwright_proxy_settings_mappings = ['bypass', 'server', 'username', 'password']
 | 
			
		||||
 | 
			
		||||
    proxy = None
 | 
			
		||||
 | 
			
		||||
@@ -185,6 +182,12 @@ class base_html_webdriver(Fetcher):
 | 
			
		||||
            if v:
 | 
			
		||||
                proxy_args[k] = v.strip('"')
 | 
			
		||||
 | 
			
		||||
        # Map back standard HTTP_ and HTTPS_PROXY to webDriver httpProxy/sslProxy
 | 
			
		||||
        if not proxy_args.get('webdriver_httpProxy') and self.system_http_proxy:
 | 
			
		||||
            proxy_args['httpProxy'] = self.system_http_proxy
 | 
			
		||||
        if not proxy_args.get('webdriver_sslProxy') and self.system_https_proxy:
 | 
			
		||||
            proxy_args['httpsProxy'] = self.system_https_proxy
 | 
			
		||||
 | 
			
		||||
        if proxy_args:
 | 
			
		||||
            self.proxy = SeleniumProxy(raw=proxy_args)
 | 
			
		||||
 | 
			
		||||
@@ -260,11 +263,19 @@ class html_requests(Fetcher):
 | 
			
		||||
            request_method,
 | 
			
		||||
            ignore_status_codes=False):
 | 
			
		||||
 | 
			
		||||
        # Map back standard HTTP_ and HTTPS_PROXY to requests http/https proxy
 | 
			
		||||
        proxies={}
 | 
			
		||||
        if self.system_http_proxy:
 | 
			
		||||
            proxies['http'] = self.system_http_proxy
 | 
			
		||||
        if self.system_https_proxy:
 | 
			
		||||
            proxies['https'] = self.system_https_proxy
 | 
			
		||||
 | 
			
		||||
        r = requests.request(method=request_method,
 | 
			
		||||
                             data=request_body,
 | 
			
		||||
                             url=url,
 | 
			
		||||
                             headers=request_headers,
 | 
			
		||||
                             timeout=timeout,
 | 
			
		||||
                             proxies=proxies,
 | 
			
		||||
                             verify=False)
 | 
			
		||||
 | 
			
		||||
        # If the response did not tell us what encoding format to expect, Then use chardet to override what `requests` thinks.
 | 
			
		||||
 
 | 
			
		||||
@@ -17,8 +17,8 @@ services:
 | 
			
		||||
  #       Alternative WebDriver/selenium URL, do not use "'s or 's!
 | 
			
		||||
  #      - WEBDRIVER_URL=http://browser-chrome:4444/wd/hub
 | 
			
		||||
  #
 | 
			
		||||
  #       WebDriver proxy settings webdriver_proxyType, webdriver_ftpProxy, webdriver_httpProxy, webdriver_noProxy,
 | 
			
		||||
  #                                webdriver_proxyAutoconfigUrl, webdriver_sslProxy, webdriver_autodetect,
 | 
			
		||||
  #       WebDriver proxy settings webdriver_proxyType, webdriver_ftpProxy, webdriver_noProxy,
 | 
			
		||||
  #                                webdriver_proxyAutoconfigUrl, webdriver_autodetect,
 | 
			
		||||
  #                                webdriver_socksProxy, webdriver_socksUsername, webdriver_socksVersion, webdriver_socksPassword
 | 
			
		||||
  #
 | 
			
		||||
  #             https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.proxy
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user