diff --git a/nostr/relay.py b/nostr/relay.py index 9ccb77b..de30d31 100644 --- a/nostr/relay.py +++ b/nostr/relay.py @@ -37,8 +37,12 @@ class Relay: on_error=self._on_error, on_close=self._on_close) - def connect(self, ssl_options: dict=None): - self.ws.run_forever(sslopt=ssl_options) + def connect(self, ssl_options: dict=None, proxy: dict=None): + self.ws.run_forever( + sslopt=ssl_options, + http_proxy_host=None if proxy is None else proxy.get('host'), + http_proxy_port=None if proxy is None else proxy.get('port') + ) def close(self): self.ws.close() diff --git a/nostr/relay_manager.py b/nostr/relay_manager.py index c0664f6..ffb50df 100644 --- a/nostr/relay_manager.py +++ b/nostr/relay_manager.py @@ -35,11 +35,11 @@ class RelayManager: for relay in self.relays.values(): relay.close_subscription(id) - def open_connections(self, ssl_options: dict=None): + def open_connections(self, ssl_options: dict=None, proxy: dict= None): for relay in self.relays.values(): threading.Thread( target=relay.connect, - args=(ssl_options,), + args=(ssl_options, proxy), name=f"{relay.url}-thread" ).start()