mirror of
https://github.com/aljazceru/python-nostr.git
synced 2025-12-18 23:04:20 +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):
|
def close(self):
|
||||||
self.ws.close()
|
|
||||||
self.shutdown = True
|
self.shutdown = True
|
||||||
|
self.ws.close()
|
||||||
|
with self.lock:
|
||||||
|
self.subscriptions = {}
|
||||||
|
|
||||||
def check_reconnect(self):
|
def check_reconnect(self):
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -27,10 +27,15 @@ class RelayManager:
|
|||||||
self.relays[url] = relay
|
self.relays[url] = relay
|
||||||
|
|
||||||
def remove_relay(self, url: str):
|
def remove_relay(self, url: str):
|
||||||
self.relays[url].close()
|
if url in self.relays:
|
||||||
self.relays.pop(url)
|
self.relays[url].close()
|
||||||
self.threads[url].join(timeout=1)
|
self.relays.pop(url, None)
|
||||||
self.threads.pop(url)
|
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):
|
def add_subscription(self, id: str, filters: Filters):
|
||||||
for relay in self.relays.values():
|
for relay in self.relays.values():
|
||||||
@@ -51,7 +56,7 @@ class RelayManager:
|
|||||||
self.threads[relay.url].start()
|
self.threads[relay.url].start()
|
||||||
|
|
||||||
self.queue_threads[relay.url] = threading.Thread(
|
self.queue_threads[relay.url] = threading.Thread(
|
||||||
target=relay.queue_worker,
|
target=relay.queue_worker,
|
||||||
args=(lambda: relay.shutdown,),
|
args=(lambda: relay.shutdown,),
|
||||||
name=f"{relay.url}-queue",
|
name=f"{relay.url}-queue",
|
||||||
daemon=True,
|
daemon=True,
|
||||||
@@ -88,4 +93,4 @@ class RelayManager:
|
|||||||
raise RelayException(
|
raise RelayException(
|
||||||
f"Could not publish {auth.id}: failed to verify signature {auth.signature}"
|
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