Allow generating QR codes for remote nodes and for all channels

This commit is contained in:
Ian McEwen
2024-04-21 09:41:07 -07:00
parent cd1ecab4e0
commit 243b310eb2
2 changed files with 19 additions and 4 deletions

View File

@@ -804,10 +804,14 @@ def onConnected(interface):
return
interface.showNodes()
if args.qr:
if args.qr or args.qr_all:
closeNow = True
url = interface.localNode.getURL(includeAll=False)
print(f"Primary channel URL {url}")
url = interface.getNode(args.dest, True).getURL(includeAll=args.qr_all)
if args.qr_all:
urldesc = "Complete URL (includes all channels)"
else:
urldesc = "Primary channel URL"
print(f"{urldesc}: {url}")
qr = pyqrcode.create(url)
print(qr.terminal())
@@ -1157,7 +1161,16 @@ def initParser():
group.add_argument(
"--qr",
help="Display the QR code that corresponds to the current channel",
help=(
"Display a QR code for the node's primary channel (or all channels with --qr-all). "
"Also shows the shareable channel URL."
),
action="store_true",
)
group.add_argument(
"--qr-all",
help="Display a QR code and URL for all of the node's channels.",
action="store_true",
)

View File

@@ -313,6 +313,8 @@ class Node:
):
channelSet.settings.append(c.settings)
if len(self.localConfig.ListFields()) == 0:
self.requestConfig(self.localConfig.DESCRIPTOR.fields_by_name.get('lora'))
channelSet.lora_config.CopyFrom(self.localConfig.lora)
some_bytes = channelSet.SerializeToString()
s = base64.urlsafe_b64encode(some_bytes).decode("ascii")