diff --git a/fanficfare/configurable.py b/fanficfare/configurable.py index c80261ca..3ae6db35 100644 --- a/fanficfare/configurable.py +++ b/fanficfare/configurable.py @@ -196,6 +196,7 @@ def get_valid_set_options(): 'titlepage_use_table':(None,None,boollist), 'use_ssl_unverified_context':(None,None,boollist), + 'use_ssl_default_seclevelone':(None,None,boollist), 'use_cloudscraper':(None,None,boollist), 'use_basic_cache':(None,None,boollist), 'use_nsapa_proxy':(None,None,boollist), @@ -490,6 +491,7 @@ def get_valid_keywords(): 'tweak_fg_sleep', 'universe_as_series', 'use_ssl_unverified_context', + 'use_ssl_default_seclevelone', 'http_proxy', 'https_proxy', 'use_cloudscraper', diff --git a/fanficfare/fetcher.py b/fanficfare/fetcher.py index 3b9cc877..7f6e72f8 100644 --- a/fanficfare/fetcher.py +++ b/fanficfare/fetcher.py @@ -425,7 +425,17 @@ class RequestsFetcher(Fetcher): return requests.Session() def do_mounts(self,session): - session.mount('https://', HTTPAdapter(max_retries=self.retries)) + if self.getConfig('use_ssl_default_seclevelone',False): + import ssl + class TLSAdapter(HTTPAdapter): + def init_poolmanager(self, *args, **kwargs): + ctx = ssl.create_default_context() + ctx.set_ciphers('DEFAULT@SECLEVEL=1') + kwargs['ssl_context'] = ctx + return super(TLSAdapter, self).init_poolmanager(*args, **kwargs) + session.mount('https://', TLSAdapter(max_retries=self.retries)) + else: + session.mount('https://', HTTPAdapter(max_retries=self.retries)) session.mount('http://', HTTPAdapter(max_retries=self.retries)) session.mount('file://', FileAdapter()) # logger.debug("Session Proxies Before:%s"%session.proxies)