search.suspended_time settings: bug fixes
* fix type in settings.yml: replace suspend_times by suspended_times * always use delay defined in settings.yml: * HTTP status 402 and 403: read the value from settings.yml instead of using the hardcoded value of 1 day. * startpage engine: CAPTCHA suspend the engine for one day instead of one week
This commit is contained in:
		
							parent
							
								
									6b71721ce8
								
							
						
					
					
						commit
						37addec69e
					
				| @ -62,8 +62,7 @@ sc_code = '' | |||||||
| def raise_captcha(resp): | def raise_captcha(resp): | ||||||
| 
 | 
 | ||||||
|     if str(resp.url).startswith('https://www.startpage.com/sp/captcha'): |     if str(resp.url).startswith('https://www.startpage.com/sp/captcha'): | ||||||
|         # suspend CAPTCHA for 7 days |         raise SearxEngineCaptchaException() | ||||||
|         raise SearxEngineCaptchaException(suspended_time=7 * 24 * 3600) |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_sc_code(headers): | def get_sc_code(headers): | ||||||
|  | |||||||
| @ -70,8 +70,15 @@ class SearxEngineAccessDeniedException(SearxEngineResponseException): | |||||||
|     """The website is blocking the access""" |     """The website is blocking the access""" | ||||||
| 
 | 
 | ||||||
|     SUSPEND_TIME_SETTING = "search.suspended_times.SearxEngineAccessDenied" |     SUSPEND_TIME_SETTING = "search.suspended_times.SearxEngineAccessDenied" | ||||||
|  |     """This settings contains the default suspended time""" | ||||||
| 
 | 
 | ||||||
|     def __init__(self, suspended_time=None, message='Access denied'): |     def __init__(self, suspended_time: int = None, message: str = 'Access denied'): | ||||||
|  |         """Generic exception to raise when an engine denies access to the results | ||||||
|  | 
 | ||||||
|  |         Args: | ||||||
|  |             suspended_time (int, optional): How long the engine is going to be suspended in second. Defaults to None. | ||||||
|  |             message (str, optional): Internal message. Defaults to 'Access denied'. | ||||||
|  |         """ | ||||||
|         suspended_time = suspended_time or self._get_default_suspended_time() |         suspended_time = suspended_time or self._get_default_suspended_time() | ||||||
|         super().__init__(message + ', suspended_time=' + str(suspended_time)) |         super().__init__(message + ', suspended_time=' + str(suspended_time)) | ||||||
|         self.suspended_time = suspended_time |         self.suspended_time = suspended_time | ||||||
|  | |||||||
| @ -72,9 +72,7 @@ def raise_for_httperror(resp): | |||||||
|     if resp.status_code and resp.status_code >= 400: |     if resp.status_code and resp.status_code >= 400: | ||||||
|         raise_for_captcha(resp) |         raise_for_captcha(resp) | ||||||
|         if resp.status_code in (402, 403): |         if resp.status_code in (402, 403): | ||||||
|             raise SearxEngineAccessDeniedException( |             raise SearxEngineAccessDeniedException(message='HTTP error ' + str(resp.status_code)) | ||||||
|                 message='HTTP error ' + str(resp.status_code), suspended_time=3600 * 24 |  | ||||||
|             ) |  | ||||||
|         if resp.status_code == 429: |         if resp.status_code == 429: | ||||||
|             raise SearxEngineTooManyRequestsException() |             raise SearxEngineTooManyRequestsException() | ||||||
|         resp.raise_for_status() |         resp.raise_for_status() | ||||||
|  | |||||||
| @ -45,7 +45,7 @@ search: | |||||||
|   ban_time_on_fail: 5 |   ban_time_on_fail: 5 | ||||||
|   # max ban time in seconds after engine errors |   # max ban time in seconds after engine errors | ||||||
|   max_ban_time_on_fail: 120 |   max_ban_time_on_fail: 120 | ||||||
|   suspend_times: |   suspended_times: | ||||||
|     # Engine suspension time after error (in seconds; set to 0 to disable) |     # Engine suspension time after error (in seconds; set to 0 to disable) | ||||||
|     # For error "Access denied" and "HTTP error [402, 403]" |     # For error "Access denied" and "HTTP error [402, 403]" | ||||||
|     SearxEngineAccessDenied: 86400 |     SearxEngineAccessDenied: 86400 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user