gui: show onion address

This commit is contained in:
thePR0M3TH3AN
2025-06-21 14:36:29 -04:00
parent c8c720a5ff
commit e0eb7fbfd3
3 changed files with 22 additions and 4 deletions

View File

@@ -7,10 +7,14 @@
<body>
<h1>VoxVera</h1>
<button id="quickstart">Quickstart</button>
<p id="onion-address"></p>
<script>
document.getElementById('quickstart').addEventListener('click', () => {
window.voxvera.quickstart();
});
window.voxvera.onOnionUrl(url => {
document.getElementById('onion-address').textContent = `Onion address: ${url}`;
});
</script>
</body>
</html>

View File

@@ -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));
});

View File

@@ -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))
});