1- from typing import *
2- import ssl
3- import time
1+ import base64
42import json
53import os
6- import base64
7-
8- from ..event import Event
9- from ..relay_manager import RelayManager
10- from ..message_type import ClientMessageType
11- from ..key import PrivateKey , PublicKey
4+ import ssl
5+ import time
6+ from typing import *
127
8+ from ..event import EncryptedDirectMessage , Event , EventKind
139from ..filter import Filter , Filters
14- from ..event import Event , EventKind , EncryptedDirectMessage
15- from ..relay_manager import RelayManager
10+ from ..key import PrivateKey , PublicKey
1611from ..message_type import ClientMessageType
12+ from ..relay_manager import RelayManager
1713
1814# from aes import AESCipher
1915from . import cbc
2016
2117
2218class NostrClient :
2319 relays = [
24- # "wss://eagerporpoise9.lnbits.com/nostrclient/api/v1/relay",
25- "wss://localhost:5001/nostrclient/api/v1/relay" ,
26- # "wss://nostr-pub.wellorder.net",
27- # "wss://relay.damus.io",
28- # "wss://nostr.zebedee.cloud",
29- # "wss://relay.snort.social",
30- # "wss://nostr.fmt.wiz.biz",
31- # "wss://nos.lol",
32- # "wss://nostr.oxtr.dev",
33- # "wss://relay.current.fyi",
34- # "wss://relay.snort.social",
20+ "wss://nostr-pub.wellorder.net" ,
21+ "wss://nostr.zebedee.cloud" ,
22+ "wss://nodestr.fmt.wiz.biz" ,
23+ "wss://nostr.oxtr.dev" ,
3524 ] # ["wss://nostr.oxtr.dev"] # ["wss://relay.nostr.info"] "wss://nostr-pub.wellorder.net" "ws://91.237.88.218:2700", "wss://nostrrr.bublina.eu.org", ""wss://nostr-relay.freeberty.net"", , "wss://nostr.oxtr.dev", "wss://relay.nostr.info", "wss://nostr-pub.wellorder.net" , "wss://relayer.fiatjaf.com", "wss://nodestr.fmt.wiz.biz/", "wss://no.str.cr"
3625 relay_manager = RelayManager ()
3726 private_key : PrivateKey
3827 public_key : PublicKey
3928
40- def __init__ (self , private_key : str = "" , relays : List [str ] = [], connect = True ):
41- self .generate_keys (private_key )
29+ def __init__ (self , privatekey_hex : str = "" , relays : List [str ] = [], connect = True ):
30+ self .generate_keys (privatekey_hex )
4231
4332 if len (relays ):
4433 self .relays = relays
@@ -55,13 +44,9 @@ def connect(self):
5544 def close (self ):
5645 self .relay_manager .close_connections ()
5746
58- def generate_keys (self , private_key : str = None ):
59- if private_key .startswith ("nsec" ):
60- self .private_key = PrivateKey .from_nsec (private_key )
61- elif private_key :
62- self .private_key = PrivateKey (bytes .fromhex (private_key ))
63- else :
64- self .private_key = PrivateKey () # generate random key
47+ def generate_keys (self , privatekey_hex : str = None ):
48+ pk = bytes .fromhex (privatekey_hex ) if privatekey_hex else None
49+ self .private_key = PrivateKey (pk )
6550 self .public_key = self .private_key .public_key
6651
6752 def post (self , message : str ):
@@ -87,7 +72,6 @@ def get_post(
8772 request = [ClientMessageType .REQUEST , subscription_id ]
8873 request .extend (filters .to_json_array ())
8974 message = json .dumps (request )
90- # print(message)
9175 self .relay_manager .publish_message (message )
9276
9377 while True :
@@ -102,16 +86,14 @@ def dm(self, message: str, to_pubkey: PublicKey):
10286 recipient_pubkey = to_pubkey .hex (), cleartext_content = message
10387 )
10488 self .private_key .sign_event (dm )
105- # print(dm)
10689 self .relay_manager .publish_event (dm )
10790
108- def get_dm (self , sender_publickey : PublicKey , callback_func = None , filter_kwargs = {} ):
91+ def get_dm (self , sender_publickey : PublicKey , callback_func = None ):
10992 filters = Filters (
11093 [
11194 Filter (
11295 kinds = [EventKind .ENCRYPTED_DIRECT_MESSAGE ],
11396 pubkey_refs = [sender_publickey .hex ()],
114- ** filter_kwargs ,
11597 )
11698 ]
11799 )
@@ -122,7 +104,7 @@ def get_dm(self, sender_publickey: PublicKey, callback_func=None, filter_kwargs=
122104 request .extend (filters .to_json_array ())
123105 message = json .dumps (request )
124106 self .relay_manager .publish_message (message )
125- # print(message)
107+
126108 while True :
127109 while self .relay_manager .message_pool .has_events ():
128110 event_msg = self .relay_manager .message_pool .get_event ()
@@ -156,7 +138,7 @@ def subscribe(
156138 if callback_events_func :
157139 callback_events_func (event_msg )
158140 while self .relay_manager .message_pool .has_notices ():
159- event_msg = self .relay_manager .message_pool .has_notices ()
141+ event_msg = self .relay_manager .message_pool .get_notice ()
160142 if callback_notices_func :
161143 callback_notices_func (event_msg )
162144 while self .relay_manager .message_pool .has_eose_notices ():
0 commit comments