@@ -17,29 +17,56 @@ pip install nostr-sdk
17
17
```
18
18
19
19
``` 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
21
22
import time
22
23
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
23
31
keys = Keys.generate()
24
- print (keys.public_key().to_bech32())
32
+ signer = ClientSigner.KEYS(keys)
33
+ client = Client(signer)
25
34
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)
27
40
41
+ # Add a single relay
28
42
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
29
48
client.connect()
30
49
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()
31
57
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 )
33
59
event_id = client.send_event(event)
34
60
print (" Event sent:" )
35
61
print (f " hex: { event_id.to_hex()} " )
36
62
print (f " bech32: { event_id.to_bech32()} " )
37
63
38
64
time.sleep(2.0 )
39
65
66
+ # Get events from relays
40
67
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 ) )
43
70
for event in events:
44
71
print (event.as_json())
45
72
```
0 commit comments