Skip to content

Commit e25d405

Browse files
committed
ffi(nostr-sdk): update python examples
1 parent f6416e1 commit e25d405

File tree

2 files changed

+64
-11
lines changed

2 files changed

+64
-11
lines changed

bindings/nostr-sdk-ffi/bindings-python/README.md

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,56 @@ pip install nostr-sdk
1717
```
1818

1919
```python
20-
from nostr_sdk import Keys, Client, EventBuilder, Filter
20+
from nostr_sdk import Keys, Client, ClientSigner, EventBuilder, Filter, Metadata, Nip46Signer, init_logger, LogLevel
21+
from datetime import timedelta
2122
import time
2223

24+
# Init logger
25+
init_logger(LogLevel.INFO)
26+
27+
# Initialize client without signer
28+
# client = Client(None)
29+
30+
# Or, initialize with Keys signer
2331
keys = Keys.generate()
24-
print(keys.public_key().to_bech32())
32+
signer = ClientSigner.KEYS(keys)
33+
client = Client(signer)
2534

26-
client = Client(None)
35+
# Or, initialize with NIP46 signer
36+
# app_keys = Keys.generate()
37+
# nip46 = Nip46Signer("wss://relay.damus.io", app_keys, None)
38+
#signer = ClientSigner.NIP46(nip46)
39+
# client = Client(signer)
2740

41+
# Add a single relay
2842
client.add_relay("wss://relay.damus.io")
43+
44+
# Add multiple relays
45+
client.add_relays(["wss://relay.damus.io", "wss://nos.lol"])
46+
47+
# Connect
2948
client.connect()
3049

50+
# Send an event using the Client Signer
51+
builder = EventBuilder.new_text_note("Test from Rust Nostr Python!", [])
52+
client.send_event_builder(builder)
53+
client.set_metadata(Metadata().set_name("Testing Rust Nostr"))
54+
55+
# Mine a POW event and sign it with custom keys
56+
custom_keys = Keys.generate()
3157
print("Mining a POW text note...")
32-
event = EventBuilder.new_text_note("Hello from Rust Nostr Python bindings!", []).to_pow_event(keys, 20)
58+
event = EventBuilder.new_text_note("Hello from Rust Nostr Python bindings!", []).to_pow_event(custom_keys, 20)
3359
event_id = client.send_event(event)
3460
print("Event sent:")
3561
print(f" hex: {event_id.to_hex()}")
3662
print(f" bech32: {event_id.to_bech32()}")
3763

3864
time.sleep(2.0)
3965

66+
# Get events from relays
4067
print("Getting events from relays...")
41-
filter = Filter().authors([keys.public_key().to_hex()])
42-
events = client.get_events_of([filter], None)
68+
filter = Filter().authors([keys.public_key(), custom_keys.public_key()])
69+
events = client.get_events_of([filter], timedelta(seconds=10))
4370
for event in events:
4471
print(event.as_json())
4572
```
Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,52 @@
1-
from nostr_sdk import Keys, Client, EventBuilder, Filter
1+
from nostr_sdk import Keys, Client, ClientSigner, EventBuilder, Filter, Metadata, Nip46Signer, init_logger, LogLevel
22
from datetime import timedelta
33
import time
44

5+
# Init logger
6+
init_logger(LogLevel.INFO)
7+
8+
# Initialize client without signer
9+
# client = Client(None)
10+
11+
# Or, initialize with Keys signer
512
keys = Keys.generate()
6-
print(keys.public_key().to_bech32())
13+
signer = ClientSigner.KEYS(keys)
14+
client = Client(signer)
715

8-
client = Client(None)
16+
# Or, initialize with NIP46 signer
17+
# app_keys = Keys.generate()
18+
# nip46 = Nip46Signer("wss://relay.damus.io", app_keys, None)
19+
#signer = ClientSigner.NIP46(nip46)
20+
# client = Client(signer)
921

22+
# Add a single relay
1023
client.add_relay("wss://relay.damus.io")
24+
25+
# Add multiple relays
26+
client.add_relays(["wss://relay.damus.io", "wss://nos.lol"])
27+
28+
# Connect
1129
client.connect()
1230

31+
# Send an event using the Client Signer
32+
builder = EventBuilder.new_text_note("Test from Rust Nostr Python!", [])
33+
client.send_event_builder(builder)
34+
client.set_metadata(Metadata().set_name("Testing Rust Nostr"))
35+
36+
# Mine a POW event and sign it with custom keys
37+
custom_keys = Keys.generate()
1338
print("Mining a POW text note...")
14-
event = EventBuilder.new_text_note("Hello from Rust Nostr Python bindings!", []).to_pow_event(keys, 20)
39+
event = EventBuilder.new_text_note("Hello from Rust Nostr Python bindings!", []).to_pow_event(custom_keys, 20)
1540
event_id = client.send_event(event)
1641
print("Event sent:")
1742
print(f" hex: {event_id.to_hex()}")
1843
print(f" bech32: {event_id.to_bech32()}")
1944

2045
time.sleep(2.0)
2146

47+
# Get events from relays
2248
print("Getting events from relays...")
23-
filter = Filter().authors([keys.public_key()])
49+
filter = Filter().authors([keys.public_key(), custom_keys.public_key()])
2450
events = client.get_events_of([filter], timedelta(seconds=10))
2551
for event in events:
2652
print(event.as_json())

0 commit comments

Comments
 (0)