From b1125785fe78362fe71db4b2cccd2077113fb0e9 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Mon, 10 Jan 2022 15:05:04 +0200 Subject: Initial Event class with id hash --- nostr/event.py | 27 +++++++++++++++++++++++++++ tests/test_event.py | 6 ++++++ 2 files changed, 33 insertions(+) create mode 100644 nostr/event.py create mode 100644 tests/test_event.py diff --git a/nostr/event.py b/nostr/event.py new file mode 100644 index 0000000..17008a9 --- /dev/null +++ b/nostr/event.py @@ -0,0 +1,27 @@ +import hashlib +import json + +from enum import Enum +from time import time + + +class EventKind(Enum): + SET_METADATA = 0 + TEXT_NOTE = 1 + RECOMMEND_SERVER = 2 + + +class Event: + def __init__(self, pubkey, content, tags=None, created_at=None): + self.pubkey = pubkey.lower() + self.created_at = created_at or int(time()) + self.kind = 0 + self.tags = tags or [] + self.content = content + self.sig = 0 + self.id = self.get_event_id() + + def get_event_id(self): + data = [0, self.pubkey, self.created_at, self.kind, self.tags, self.content] + jd = json.dumps(data).encode("utf-8") + return hashlib.sha256(jd).hexdigest() diff --git a/tests/test_event.py b/tests/test_event.py new file mode 100644 index 0000000..f7645ad --- /dev/null +++ b/tests/test_event.py @@ -0,0 +1,6 @@ +from nostr.event import Event + + +def test_event_id(): + e = Event("1q", "asd", created_at=1641819738) + assert e.id == "bbe84e5f88993ad461f0ee82f746ed5f1aa023c53187185c54d95561deb2651f" -- cgit v1.3.1