Merge pull request #9773 from f321x/improve_relay_string_input
qt: validate and deduplicate relay config input in qt gui
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
# SOFTWARE.
|
||||
|
||||
import ast
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, Dict
|
||||
|
||||
from PyQt6.QtCore import Qt
|
||||
from PyQt6.QtWidgets import (QComboBox, QTabWidget, QDialog, QSpinBox, QCheckBox, QLabel,
|
||||
@@ -32,7 +32,7 @@ from PyQt6.QtWidgets import (QComboBox, QTabWidget, QDialog, QSpinBox, QCheckB
|
||||
|
||||
from electrum.i18n import _, languages
|
||||
from electrum import util
|
||||
from electrum.util import base_units_list, event_listener
|
||||
from electrum.util import base_units_list, event_listener, is_valid_websocket_url
|
||||
|
||||
from electrum.gui import messages
|
||||
|
||||
@@ -181,7 +181,16 @@ class SettingsDialog(QDialog, QtEventListener):
|
||||
self.nostr_relays_e = QLineEdit(nostr_relays)
|
||||
|
||||
def on_nostr_edit():
|
||||
self.config.NOSTR_RELAYS = str(self.nostr_relays_e.text())
|
||||
relays: Dict[str, None] = dict() # dicts keep insertion order
|
||||
for url in self.nostr_relays_e.text().split(','):
|
||||
url = url.strip()
|
||||
if url and is_valid_websocket_url(url):
|
||||
relays[url] = None
|
||||
if relays.keys():
|
||||
self.config.NOSTR_RELAYS = ",".join(relays.keys())
|
||||
else: # if no valid relays are given, assign default relays from config
|
||||
self.config.NOSTR_RELAYS = None
|
||||
self.nostr_relays_e.setText(self.config.NOSTR_RELAYS)
|
||||
self.nostr_relays_e.editingFinished.connect(on_nostr_edit)
|
||||
|
||||
msat_cb = checkbox_from_configvar(self.config.cv.BTC_AMOUNTS_PREC_POST_SAT)
|
||||
|
||||
Reference in New Issue
Block a user