Skip to content

Commit edd7291

Browse files
committed
Every requests should comply with proxy settings.
This patch fixes #349 Indeed, before this patch, only test related HTTP requests were complying with the proxy settings declared by end-users through the configuration files. From now on, any download will comply with the proxy settings.
1 parent c71f611 commit edd7291

36 files changed

+455
-207
lines changed

PyFunceble/checker/availability/base.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060

6161
import PyFunceble.checker.utils.whois
6262
import PyFunceble.facility
63-
import PyFunceble.factory
6463
import PyFunceble.storage
6564
from PyFunceble.checker.availability.extras.base import ExtraRuleHandlerBase
6665
from PyFunceble.checker.availability.extras.dns import DNSRulesHandler

PyFunceble/checker/availability/domain.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
"""
5252

5353
import PyFunceble.facility
54-
import PyFunceble.factory
5554
import PyFunceble.storage
5655
from PyFunceble.checker.availability.base import AvailabilityCheckerBase
5756
from PyFunceble.checker.reputation.domain import DomainReputationChecker

PyFunceble/checker/availability/extras/base.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,11 @@
5656

5757
import requests
5858

59-
import PyFunceble.factory
59+
import PyFunceble.storage
6060
from PyFunceble.checker.availability.status import AvailabilityCheckerStatus
6161
from PyFunceble.helpers.regex import RegexHelper
6262
from PyFunceble.query.dns.query_tool import DNSQueryTool
63+
from PyFunceble.query.requests.requester import Requester
6364

6465

6566
class ExtraRuleHandlerBase:
@@ -76,13 +77,14 @@ class ExtraRuleHandlerBase:
7677
req: Optional[requests.Response] = None
7778
dns_query_tool: Optional[DNSQueryTool] = None
7879
regex_helper: Optional[RegexHelper] = None
80+
requester: Optional[Requester] = None
7981

8082
def __init__(self, status: Optional[AvailabilityCheckerStatus] = None) -> None:
8183
if status is not None:
8284
self.status = status
8385

84-
# Be sure that all settings are loaded proprely!!
85-
PyFunceble.factory.Requester.guess_all_settings()
86+
self.requester = Requester(config=PyFunceble.storage.CONFIGURATION)
87+
8688
self.dns_query_tool = DNSQueryTool()
8789
self.regex_helper = RegexHelper()
8890

@@ -227,9 +229,7 @@ def do_request(self, *, allow_redirects: bool = True) -> requests.Response:
227229
Whether we shoold follow the redirection - or not.
228230
"""
229231

230-
self.req = PyFunceble.factory.Requester.get(
231-
self.req_url, allow_redirects=allow_redirects
232-
)
232+
self.req = self.requester.get(self.req_url, allow_redirects=allow_redirects)
233233

234234
return self
235235

@@ -272,18 +272,18 @@ def handle_string_match_mode(_req: requests.Response):
272272
method()
273273

274274
try:
275-
req = PyFunceble.factory.Requester.get(url, allow_redirects=allow_redirects)
275+
req = self.requester.get(url, allow_redirects=allow_redirects)
276276

277277
if match_mode == "regex":
278278
handle_regex_match_mode(req)
279279
else:
280280
handle_string_match_mode(req)
281281
except (
282-
PyFunceble.factory.Requester.exceptions.RequestException,
283-
PyFunceble.factory.Requester.exceptions.InvalidURL,
284-
PyFunceble.factory.Requester.exceptions.Timeout,
285-
PyFunceble.factory.Requester.exceptions.ConnectionError,
286-
PyFunceble.factory.Requester.urllib3_exceptions.InvalidHeader,
282+
self.requester.exceptions.RequestException,
283+
self.requester.exceptions.InvalidURL,
284+
self.requester.exceptions.Timeout,
285+
self.requester.exceptions.ConnectionError,
286+
self.requester.urllib3_exceptions.InvalidHeader,
287287
socket.timeout,
288288
):
289289
pass
@@ -363,18 +363,18 @@ def handle_string_match_mode(_req: requests.Response):
363363
method()
364364

365365
try:
366-
req = PyFunceble.factory.Requester.get(url, allow_redirects=allow_redirects)
366+
req = self.requester.get(url, allow_redirects=allow_redirects)
367367

368368
if match_mode == "regex":
369369
handle_regex_match_mode(req)
370370
else:
371371
handle_string_match_mode(req)
372372
except (
373-
PyFunceble.factory.Requester.exceptions.RequestException,
374-
PyFunceble.factory.Requester.exceptions.InvalidURL,
375-
PyFunceble.factory.Requester.exceptions.Timeout,
376-
PyFunceble.factory.Requester.exceptions.ConnectionError,
377-
PyFunceble.factory.Requester.urllib3_exceptions.InvalidHeader,
373+
self.requester.exceptions.RequestException,
374+
self.requester.exceptions.InvalidURL,
375+
self.requester.exceptions.Timeout,
376+
self.requester.exceptions.ConnectionError,
377+
self.requester.urllib3_exceptions.InvalidHeader,
378378
socket.timeout,
379379
):
380380
pass

PyFunceble/checker/availability/extras/etoxic.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
limitations under the License.
5151
"""
5252

53-
import PyFunceble.factory
5453
import PyFunceble.storage
5554
from PyFunceble.checker.availability.extras.base import ExtraRuleHandlerBase
5655

PyFunceble/checker/availability/extras/parked.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
limitations under the License.
5151
"""
5252

53-
import PyFunceble.factory
5453
import PyFunceble.storage
5554
from PyFunceble.checker.availability.extras.base import ExtraRuleHandlerBase
5655

@@ -127,7 +126,7 @@ def start(self) -> "ParkedRulesHandler":
127126
"Finished to check %r against our own set of parked rules.",
128127
self.status.idna_subject,
129128
)
130-
except PyFunceble.factory.Requester.exceptions.RequestException:
129+
except self.requester.exceptions.RequestException:
131130
pass
132131

133132
return self

PyFunceble/checker/availability/extras/rules.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
from box import Box
5656

5757
import PyFunceble.facility
58-
import PyFunceble.factory
5958
import PyFunceble.storage
6059
from PyFunceble.checker.availability.extras.base import ExtraRuleHandlerBase
6160
from PyFunceble.checker.availability.status import AvailabilityCheckerStatus
@@ -99,15 +98,16 @@ def __init__(self, status: Optional[AvailabilityCheckerStatus] = None) -> None:
9998
r"\.myhuaweicloudz\.com$": [(self.switch_to_down_if_status_code, 403)],
10099
r"^scnv\.io$": [(self.switch_to_down_if_status_code, 404)],
101100
r"\.skyrock\.com$": [(self.switch_to_down_if_status_code, 404)],
102-
r"\.squarespace.com$": [(self.switch_to_down_if_status_code, 404),
103-
self.handle_squarespace_com,
101+
r"\.squarespace.com$": [
102+
(self.switch_to_down_if_status_code, 404),
103+
self.handle_squarespace_com,
104104
],
105105
r"\.sz.id$": [(self.switch_to_down_if_status_code, 302)],
106106
r"\.translate\.goog$": [(self.switch_to_down_if_status_code, 403)],
107107
r"\.tumblr\.com$": [(self.switch_to_down_if_status_code, 404)],
108108
r"\.vercel\.app$": [
109109
(self.switch_to_down_if_status_code, "451"),
110-
self.handle_vercel_dot_app
110+
self.handle_vercel_dot_app,
111111
],
112112
r"\.web\.app$": [(self.switch_to_down_if_status_code, 404)],
113113
r"\.wix\.com$": [(self.switch_to_down_if_status_code, 404)],
@@ -227,9 +227,7 @@ def handle_imgur_dot_com(self) -> "ExtraRulesHandler":
227227
This method are assuming we are handling a imgur.com subdomain.
228228
"""
229229

230-
req = PyFunceble.factory.Requester.get(
231-
self.req_url_https, allow_redirects=False
232-
)
230+
req = self.requester.get(self.req_url_https, allow_redirects=False)
233231
username = self.status.netloc.replace(".imgur.com", "")
234232

235233
if "Location" in req.headers:
@@ -274,7 +272,10 @@ def handle_squarespace_com(self) -> "ExtraRulesHandler":
274272
This method assume that we know that we are handling a blogspot domain.
275273
"""
276274

277-
regex_squarespace = [r"This site has been deleted by the owner\."]
275+
regex_squarespace = [
276+
r"This site has been deleted"
277+
r" by the owner\."
278+
]
278279

279280
self.do_on_body_match(
280281
self.req_url,

PyFunceble/checker/availability/extras/subject_switch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ def start(self) -> "SubjectSwitchRulesHandler":
146146

147147
if not self.status.status_after_extra_rules:
148148
self._switch_down_by_history()
149-
except PyFunceble.factory.Requester.exceptions.RequestException:
149+
except self.requester.exceptions.RequestException:
150150
pass
151151

152152
PyFunceble.facility.Logger.info(

PyFunceble/checker/availability/ip.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
"""
5252

5353
import PyFunceble.facility
54-
import PyFunceble.factory
5554
import PyFunceble.storage
5655
from PyFunceble.checker.availability.base import AvailabilityCheckerBase
5756
from PyFunceble.checker.reputation.ip import IPReputationChecker

PyFunceble/checker/availability/url.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
"""
5252

5353
import PyFunceble.facility
54-
import PyFunceble.factory
5554
import PyFunceble.storage
5655
from PyFunceble.checker.availability.base import AvailabilityCheckerBase
5756
from PyFunceble.checker.availability.status import AvailabilityCheckerStatus

PyFunceble/checker/reputation/base.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
from sqlalchemy.orm import Session
5656

5757
import PyFunceble.facility
58-
import PyFunceble.factory
5958
import PyFunceble.storage
6059
from PyFunceble.checker.base import CheckerBase
6160
from PyFunceble.checker.reputation.params import ReputationCheckerParams

0 commit comments

Comments
 (0)