btc_horse/btc-UI/electron/main.js

76 lines
2.2 KiB
JavaScript

// main.js
const { app, BrowserWindow, screen, ipcMain } = require('electron');
const path = require('path');
const fs = require('fs');
let mainWindow;
let screenWindow;
let currentSharedData = null; // Store latest data for initial sync
function createWindows() {
const displays = screen.getAllDisplays();
const primary = screen.getPrimaryDisplay();
const secondary = displays.find(d => d.id !== primary.id) || primary;
mainWindow = new BrowserWindow({
x: primary.bounds.x,
y: primary.bounds.y,
width: primary.bounds.width,
height: primary.bounds.height,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
contextIsolation: true,
},
});
mainWindow.loadURL('http://10.74.231.124:4200/login');
screenWindow = new BrowserWindow({
x: secondary.bounds.x,
y: secondary.bounds.y,
width: secondary.bounds.width,
height: secondary.bounds.height,
frame: false,
show: false,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
contextIsolation: true,
},
});
screenWindow.loadURL('http://10.74.231.124:4200/shared-display');
// Handle opening second screen and send initial data
ipcMain.on('open-second-screen', () => {
screenWindow.show();
if (currentSharedData && screenWindow.webContents) {
screenWindow.webContents.send('update-shared-data', currentSharedData);
}
});
ipcMain.on('close-second-screen', () => screenWindow.hide());
// Handle syncing data
ipcMain.on('sync-shared-data', (event, data) => {
currentSharedData = data; // Store latest data
if (screenWindow && screenWindow.webContents) {
screenWindow.webContents.send('update-shared-data', data);
}
});
// Handle BTID request
ipcMain.handle('get-btid', () => {
try {
const filePath = path.join(process.env.HOME || process.env.USERPROFILE, 'BTID', 'betting.txt');
const content = fs.readFileSync(filePath, 'utf-8');
const match = content.match(/Btid\s*=\s*(\d+)/i);
return match ? match[1] : null;
} catch (err) {
console.error('Error reading betting.txt:', err);
return null;
}
});
}
app.whenReady().then(createWindows);
app.on('window-all-closed', () => app.quit());