mirror of
https://github.com/aljazceru/python-nostr.git
synced 2025-12-18 14:54:23 +01:00
Merge pull request #5 from vicariousdrama/relay-manager
Remove relay fixes
This commit is contained in:
@@ -68,8 +68,10 @@ class Relay:
|
||||
)
|
||||
|
||||
def close(self):
|
||||
self.ws.close()
|
||||
self.shutdown = True
|
||||
self.ws.close()
|
||||
with self.lock:
|
||||
self.subscriptions = {}
|
||||
|
||||
def check_reconnect(self):
|
||||
try:
|
||||
|
||||
@@ -27,10 +27,15 @@ class RelayManager:
|
||||
self.relays[url] = relay
|
||||
|
||||
def remove_relay(self, url: str):
|
||||
self.relays[url].close()
|
||||
self.relays.pop(url)
|
||||
self.threads[url].join(timeout=1)
|
||||
self.threads.pop(url)
|
||||
if url in self.relays:
|
||||
self.relays[url].close()
|
||||
self.relays.pop(url, None)
|
||||
if url in self.threads:
|
||||
self.threads[url].join(timeout=1)
|
||||
self.threads.pop(url, None)
|
||||
if url in self.queue_threads:
|
||||
self.queue_threads[url].join(timeout=1)
|
||||
self.queue_threads.pop(url, None)
|
||||
|
||||
def add_subscription(self, id: str, filters: Filters):
|
||||
for relay in self.relays.values():
|
||||
@@ -51,7 +56,7 @@ class RelayManager:
|
||||
self.threads[relay.url].start()
|
||||
|
||||
self.queue_threads[relay.url] = threading.Thread(
|
||||
target=relay.queue_worker,
|
||||
target=relay.queue_worker,
|
||||
args=(lambda: relay.shutdown,),
|
||||
name=f"{relay.url}-queue",
|
||||
daemon=True,
|
||||
@@ -88,4 +93,4 @@ class RelayManager:
|
||||
raise RelayException(
|
||||
f"Could not publish {auth.id}: failed to verify signature {auth.signature}"
|
||||
)
|
||||
self.publish_message(auth.to_message(), auth.relay_url)
|
||||
self.publish_message(auth.to_message(), auth.relay_url)
|
||||
|
||||
Reference in New Issue
Block a user