Merge pull request #5 from callebtc/fix/dataclass_update

fix: Events initialization
This commit is contained in:
calle
2023-02-07 22:00:43 +01:00
committed by GitHub
2 changed files with 14 additions and 6 deletions

View File

@@ -4,22 +4,26 @@ from threading import Lock
from .message_type import RelayMessageType from .message_type import RelayMessageType
from .event import Event from .event import Event
class EventMessage: class EventMessage:
def __init__(self, event: Event, subscription_id: str, url: str) -> None: def __init__(self, event: Event, subscription_id: str, url: str) -> None:
self.event = event self.event = event
self.subscription_id = subscription_id self.subscription_id = subscription_id
self.url = url self.url = url
class NoticeMessage: class NoticeMessage:
def __init__(self, content: str, url: str) -> None: def __init__(self, content: str, url: str) -> None:
self.content = content self.content = content
self.url = url self.url = url
class EndOfStoredEventsMessage: class EndOfStoredEventsMessage:
def __init__(self, subscription_id: str, url: str) -> None: def __init__(self, subscription_id: str, url: str) -> None:
self.subscription_id = subscription_id self.subscription_id = subscription_id
self.url = url self.url = url
class MessagePool: class MessagePool:
def __init__(self) -> None: def __init__(self) -> None:
self.events: Queue[EventMessage] = Queue() self.events: Queue[EventMessage] = Queue()
@@ -27,7 +31,7 @@ class MessagePool:
self.eose_notices: Queue[EndOfStoredEventsMessage] = Queue() self.eose_notices: Queue[EndOfStoredEventsMessage] = Queue()
self._unique_events: set = set() self._unique_events: set = set()
self.lock: Lock = Lock() self.lock: Lock = Lock()
def add_message(self, message: str, url: str): def add_message(self, message: str, url: str):
self._process_message(message, url) self._process_message(message, url)
@@ -55,7 +59,14 @@ class MessagePool:
if message_type == RelayMessageType.EVENT: if message_type == RelayMessageType.EVENT:
subscription_id = message_json[1] subscription_id = message_json[1]
e = message_json[2] e = message_json[2]
event = Event(e['pubkey'], e['content'], e['created_at'], e['kind'], e['tags'], e['id'], e['sig']) event = Event(
e["content"],
e["pubkey"],
e["created_at"],
e["kind"],
e["tags"],
e["sig"],
)
with self.lock: with self.lock:
if not event.id in self._unique_events: if not event.id in self._unique_events:
self.events.put(EventMessage(event, subscription_id, url)) self.events.put(EventMessage(event, subscription_id, url))
@@ -64,5 +75,3 @@ class MessagePool:
self.notices.put(NoticeMessage(message_json[1], url)) self.notices.put(NoticeMessage(message_json[1], url))
elif message_type == RelayMessageType.END_OF_STORED_EVENTS: elif message_type == RelayMessageType.END_OF_STORED_EVENTS:
self.eose_notices.put(EndOfStoredEventsMessage(message_json[1], url)) self.eose_notices.put(EndOfStoredEventsMessage(message_json[1], url))

View File

@@ -135,12 +135,11 @@ class Relay:
e = message_json[2] e = message_json[2]
event = Event( event = Event(
e["pubkey"],
e["content"], e["content"],
e["pubkey"],
e["created_at"], e["created_at"],
e["kind"], e["kind"],
e["tags"], e["tags"],
e["id"],
e["sig"], e["sig"],
) )
if not event.verify(): if not event.verify():