mirror of
https://github.com/believethehype/nostrdvm.git
synced 2025-09-27 18:46:22 +02:00
add support for nip19 event format
This commit is contained in:
@@ -4,7 +4,8 @@ from datetime import timedelta
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import dotenv
|
import dotenv
|
||||||
from nostr_sdk import Filter, Client, Alphabet, EventId, Event, PublicKey, Tag, Keys, nip04_decrypt, Metadata, Options
|
from nostr_sdk import Filter, Client, Alphabet, EventId, Event, PublicKey, Tag, Keys, nip04_decrypt, Metadata, Options, \
|
||||||
|
Nip19Event
|
||||||
|
|
||||||
|
|
||||||
def get_event_by_id(event_id: str, client: Client, config=None) -> Event | None:
|
def get_event_by_id(event_id: str, client: Client, config=None) -> Event | None:
|
||||||
@@ -16,6 +17,13 @@ def get_event_by_id(event_id: str, client: Client, config=None) -> Event | None:
|
|||||||
else:
|
else:
|
||||||
if str(event_id).startswith('note'):
|
if str(event_id).startswith('note'):
|
||||||
event_id = EventId.from_bech32(event_id)
|
event_id = EventId.from_bech32(event_id)
|
||||||
|
elif str(event_id).startswith("nevent"):
|
||||||
|
event_id = Nip19Event.from_bech32(event_id).event_id()
|
||||||
|
elif str(event_id).startswith('nostr:note'):
|
||||||
|
event_id = EventId.from_nostr_uri(event_id)
|
||||||
|
elif str(event_id).startswith("nostr:nevent"):
|
||||||
|
event_id = Nip19Event.from_nostr_uri(event_id).event_id()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
event_id = EventId.from_hex(event_id)
|
event_id = EventId.from_hex(event_id)
|
||||||
|
|
||||||
@@ -31,11 +39,21 @@ def get_event_by_id(event_id: str, client: Client, config=None) -> Event | None:
|
|||||||
def get_referenced_event_by_id(event_id, client, dvm_config, kinds) -> Event | None:
|
def get_referenced_event_by_id(event_id, client, dvm_config, kinds) -> Event | None:
|
||||||
if kinds is None:
|
if kinds is None:
|
||||||
kinds = []
|
kinds = []
|
||||||
|
if str(event_id).startswith('note'):
|
||||||
|
event_id = EventId.from_bech32(event_id)
|
||||||
|
elif str(event_id).startswith("nevent"):
|
||||||
|
event_id = Nip19Event.from_bech32(event_id).event_id()
|
||||||
|
elif str(event_id).startswith('nostr:note'):
|
||||||
|
event_id = EventId.from_nostr_uri(event_id)
|
||||||
|
elif str(event_id).startswith("nostr:nevent"):
|
||||||
|
event_id = Nip19Event.from_nostr_uri(event_id).event_id()
|
||||||
|
else:
|
||||||
|
event_id = EventId.from_hex(event_id)
|
||||||
|
|
||||||
if len(kinds) > 0:
|
if len(kinds) > 0:
|
||||||
job_id_filter = Filter().kinds(kinds).event(EventId.from_hex(event_id)).limit(1)
|
job_id_filter = Filter().kinds(kinds).event(event_id).limit(1)
|
||||||
else:
|
else:
|
||||||
job_id_filter = Filter().event(EventId.from_hex(event_id)).limit(1)
|
job_id_filter = Filter().event(event_id).limit(1)
|
||||||
|
|
||||||
events = client.get_events_of([job_id_filter], timedelta(seconds=dvm_config.RELAY_TIMEOUT))
|
events = client.get_events_of([job_id_filter], timedelta(seconds=dvm_config.RELAY_TIMEOUT))
|
||||||
|
|
||||||
|
@@ -4,7 +4,7 @@ from pathlib import Path
|
|||||||
import dotenv
|
import dotenv
|
||||||
import nostr_sdk
|
import nostr_sdk
|
||||||
from nostr_sdk import Keys, Client, Tag, EventBuilder, Filter, HandleNotification, Timestamp, nip04_decrypt, \
|
from nostr_sdk import Keys, Client, Tag, EventBuilder, Filter, HandleNotification, Timestamp, nip04_decrypt, \
|
||||||
nip04_encrypt, EventId, Options, PublicKey, Event, ClientSigner
|
nip04_encrypt, EventId, Options, PublicKey, Event, ClientSigner, Nip19Event
|
||||||
|
|
||||||
from nostr_dvm.utils import definitions, dvmconfig
|
from nostr_dvm.utils import definitions, dvmconfig
|
||||||
from nostr_dvm.utils.nostr_utils import check_and_set_private_key
|
from nostr_dvm.utils.nostr_utils import check_and_set_private_key
|
||||||
@@ -76,11 +76,14 @@ if __name__ == '__main__':
|
|||||||
test_referred_events("c70fbd4dbaad22c427d4359981d3bdddd3971ed1a38227ca2f8e5e760f58103c", definitions.EventDefinitions.ANY_RESULT)
|
test_referred_events("c70fbd4dbaad22c427d4359981d3bdddd3971ed1a38227ca2f8e5e760f58103c", definitions.EventDefinitions.ANY_RESULT)
|
||||||
|
|
||||||
#shows kind 7000 reaction but not kind 6300 result (d05e7ae9271fe2d8968cccb67c01e3458dbafa4a415e306d49b22729b088c8a1)
|
#shows kind 7000 reaction but not kind 6300 result (d05e7ae9271fe2d8968cccb67c01e3458dbafa4a415e306d49b22729b088c8a1)
|
||||||
test_referred_events("5635e5dd930b3c831f6ab1e348bb488f3c9aca2f13190e93ab5e5e1e1ba1835e", None)
|
test_referred_events("5635e5dd930b3c831f6ab1e348bb488f3c9aca2f13190e93ab5e5e1e1ba1835e", definitions.EventDefinitions.ANY_RESULT)
|
||||||
|
|
||||||
bech32evnt = EventId.from_hex("5635e5dd930b3c831f6ab1e348bb488f3c9aca2f13190e93ab5e5e1e1ba1835e").to_bech32()
|
bech32evnt = EventId.from_hex("5635e5dd930b3c831f6ab1e348bb488f3c9aca2f13190e93ab5e5e1e1ba1835e").to_bech32()
|
||||||
print(bech32evnt)
|
print(bech32evnt)
|
||||||
|
|
||||||
|
test = Nip19Event.from_bech32("nevent1qqsrjcpejsrlt3u7dy42y6rc97svrq9ver08xy4jr2ll55ynq3sxafcppamhxue69uhkummnw3ezumt0d5pzpmnqx2pla0zvxxcfjqeeysy29ll3mtmf4s3yff0y45r7egau080vqvzqqqqqqyu4q839")
|
||||||
|
print(test.event_id().to_hex())
|
||||||
|
|
||||||
nostruri = EventId.from_hex("5635e5dd930b3c831f6ab1e348bb488f3c9aca2f13190e93ab5e5e1e1ba1835e").to_nostr_uri()
|
nostruri = EventId.from_hex("5635e5dd930b3c831f6ab1e348bb488f3c9aca2f13190e93ab5e5e1e1ba1835e").to_nostr_uri()
|
||||||
print(nostruri)
|
print(nostruri)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user