summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2022-01-10 15:05:04 +0200
committerYuval Adam <_@yuv.al>2022-01-10 15:05:10 +0200
commitb1125785fe78362fe71db4b2cccd2077113fb0e9 (patch)
tree9756d1e88be0598ffed67ad3239d2edab64b999b
parentde1515dee374f96698681320f88c29cdd1e323bb (diff)
Initial Event class with id hash
-rw-r--r--nostr/event.py27
-rw-r--r--tests/test_event.py6
2 files changed, 33 insertions, 0 deletions
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"