pmicares/index.js

70 lines
1.6 KiB
JavaScript
Raw Normal View History

2025-04-29 04:36:16 -04:00
import {app, BrowserWindow, ipcMain} from 'electron';
import irc from "node-irc";
import path from 'path';
import {fileURLToPath} from 'url';
const generateUID = () => {
return Math.random().toString(36).substr(2, 9);
};
const client = new irc(
'irc.libera.chat',
6667,
generateUID(),
generateUID()
)
let joinedIRC = false
client.on('ready', () => {
if(!joinedIRC) {
client.join("#PMISDE")
joinedIRC = true
}
})
let win;
const createWindow = () => {
win = new BrowserWindow({
webPreferences: {
preload: path.dirname(fileURLToPath(import.meta.url)) + '/prerender.js',
devTools: true,
nodeIntegration: true,
scrollBounce: false,
textAreasAreResizable: false,
}
});
win.fullScreen = true;
win.loadFile('html/index.html');
};
let domreadied = false
app.whenReady().then(() => {
client.connect();
ipcMain.on('message', (ev, text) => {
client.say("#PMISDE", text);
})
createWindow();
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow();
});
ipcMain.on('dom-ready', () => {
if (domreadied) return
domreadied = true
console.log("DOM READY!!!!!!")
client.on('CHANMSG', ({receiver, sender, message}) => {
if (receiver === "#PMISDE") {
win.webContents.send('speak', {sender, message})
}
console.log(`Message on ${receiver} from ${sender}: ${message}`);
})
});
});
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit();
});