From c82af9bdb50901487655fa40fcc8dcba9a81b29c Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Sun, 9 Mar 2025 01:04:05 +0300 Subject: [PATCH] Feat(bkmk_rtwisted): HTTP proxy --- Robots/bkmk_rtwisted.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Robots/bkmk_rtwisted.py b/Robots/bkmk_rtwisted.py index 287975c..0a4616f 100644 --- a/Robots/bkmk_rtwisted.py +++ b/Robots/bkmk_rtwisted.py @@ -10,11 +10,13 @@ __license__ = "GNU GPL" __all__ = ['robot_twisted'] +from urllib.parse import urlsplit import threading import time from twisted.internet import reactor, _sslverify -from twisted.web.client import Agent, readBody +from twisted.internet.endpoints import TCP4ClientEndpoint +from twisted.web.client import Agent, ProxyAgent, readBody from twisted.web.http_headers import Headers import twisted @@ -41,7 +43,14 @@ class robot_twisted(robot_base): self.welcome = welcome return None, None, None, body - agent = Agent(reactor, connectTimeout=self.timeout) + if use_proxy: + split_proxy = urlsplit(self.proxy) + proxy_host = split_proxy.hostname + proxy_port = split_proxy.port + endpoint = TCP4ClientEndpoint(reactor, proxy_host, proxy_port) + agent = ProxyAgent(endpoint, reactor) + else: + agent = Agent(reactor, connectTimeout=self.timeout) url = encode_url(url).encode('ascii') _headers = {k: [v] for k, v in req_headers.items()} self.response = self.error = self.body = None -- 2.39.5