From e0eb7fbfd3538d31136cb73541ee108ec7ef9768 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Sat, 21 Jun 2025 14:36:29 -0400 Subject: [PATCH] gui: show onion address --- gui/electron/index.html | 4 ++++ gui/electron/main.js | 19 ++++++++++++++++--- gui/electron/preload.js | 3 ++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/gui/electron/index.html b/gui/electron/index.html index b47e298..8aafd17 100644 --- a/gui/electron/index.html +++ b/gui/electron/index.html @@ -7,10 +7,14 @@

VoxVera

+

diff --git a/gui/electron/main.js b/gui/electron/main.js index cedd2fe..31178f7 100644 --- a/gui/electron/main.js +++ b/gui/electron/main.js @@ -3,15 +3,17 @@ const { spawn } = require('child_process'); const path = require('path'); const which = require('which'); +let mainWindow; + function createWindow() { - const win = new BrowserWindow({ + mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') } }); - win.loadFile('index.html'); + mainWindow.loadFile('index.html'); } app.whenReady().then(createWindow); @@ -26,7 +28,18 @@ ipcMain.handle('run-quickstart', async () => { return -1; } return new Promise((resolve, reject) => { - const proc = spawn(voxveraPath, ['quickstart'], { stdio: 'inherit' }); + const proc = spawn(voxveraPath, ['quickstart']); + proc.stdout.on('data', data => { + const line = data.toString(); + process.stdout.write(line); + const m = line.match(/Onion URL:\s*(https?:\/\/[a-z0-9.-]+\.onion)/i); + if (m && mainWindow) { + mainWindow.webContents.send('onion-url', m[1]); + } + }); + proc.stderr.on('data', data => { + process.stderr.write(data); + }); proc.on('close', code => resolve(code)); proc.on('error', err => reject(err)); }); diff --git a/gui/electron/preload.js b/gui/electron/preload.js index 9e73b83..7c27e8d 100644 --- a/gui/electron/preload.js +++ b/gui/electron/preload.js @@ -1,5 +1,6 @@ const { contextBridge, ipcRenderer } = require('electron'); contextBridge.exposeInMainWorld('voxvera', { - quickstart: () => ipcRenderer.invoke('run-quickstart') + quickstart: () => ipcRenderer.invoke('run-quickstart'), + onOnionUrl: (cb) => ipcRenderer.on('onion-url', (_, url) => cb(url)) });