|
@@ -332,15 +332,39 @@ function show_domains {
|
332
|
332
|
|
333
|
333
|
# shellcheck disable=SC2068
|
334
|
334
|
selected=$(dialog --backtitle $"Freedombone Control Panel" --title $"Domains" --menu $"Use Shift+cursors to select and copy onion addresses" $((height-4)) $((width-4)) $((height-4)) "${W[@]}" 3>&2 2>&1 1>&3)
|
335
|
|
- if [[ "$selected" != *'.onion'* ]]; then
|
|
335
|
+ if [ ! "$selected" ]; then
|
336
|
336
|
return
|
337
|
337
|
fi
|
338
|
|
- intermediate=$(echo "$selected" | awk -F '.' '{print $2}')
|
|
338
|
+ # obtain the addresses from the key by itterating through
|
|
339
|
+ # the array. This is quite crude and maybe there's a better way
|
|
340
|
+ key_found=
|
|
341
|
+ selected_addresses=
|
|
342
|
+ for key in "${W[@]}";
|
|
343
|
+ do
|
|
344
|
+ if [ $key_found ]; then
|
|
345
|
+ selected_addresses="$key"
|
|
346
|
+ break
|
|
347
|
+ fi
|
|
348
|
+ if [[ "$key" == "$selected" ]]; then
|
|
349
|
+ key_found=1
|
|
350
|
+ fi
|
|
351
|
+ done
|
|
352
|
+ # Was the key matched?
|
|
353
|
+ if [ ! "$selected_addresses" ]; then
|
|
354
|
+ return
|
|
355
|
+ fi
|
|
356
|
+ # addresses were found - is this an onion?
|
|
357
|
+ if [[ "$selected_addresses" != *".onion"* ]]; then
|
|
358
|
+ return
|
|
359
|
+ fi
|
|
360
|
+ # There are two forms of addresses: "x / y.onion" and "x.onion"
|
|
361
|
+ intermediate=$(echo "$selected_addresses" | awk -F '.' '{print $2}')
|
339
|
362
|
if [[ "$intermediate" == *'/'* ]]; then
|
340
|
363
|
onion_addr=$(echo "$intermediate" | awk -F ' ' '{print $3}').onion
|
341
|
364
|
else
|
342
|
|
- onion_addr="$selected".onion
|
|
365
|
+ onion_addr="$selected_addresses".onion
|
343
|
366
|
fi
|
|
367
|
+ # show the onion address as a QR code
|
344
|
368
|
clear
|
345
|
369
|
echo "$onion_addr"
|
346
|
370
|
echo -n "$onion_addr" | qrencode -t UTF8
|