-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
95 lines (82 loc) · 3.2 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
const { app, BrowserWindow, ipcMain, Menu } = require('electron');
const follow = require('./scripts/follow');
const unfollow = require('./scripts/unfollow');
// Mantén una referencia global del objeto window, si no lo haces, la ventana
// se cerrará automáticamente cuando el objeto JavaScript sea eliminado por el recolector de basura.
let win;
function createWindow () {
// Crea la ventana del navegador.
win = new BrowserWindow({ width: 700, height: 800, backgroundColor: '#2e2c29'});
// y carga el archivo index.html de la aplicación.
win.loadFile('index.html');
// Abre las herramientas de desarrollo (DevTools).
//win.webContents.openDevTools();
//Menu
const template = [
{ label: 'Report Issue',
click: () => {
console.log('reportIssue');
} },
{ label: 'Help',
submenu: [
{ label: 'About' },
{ type: 'separator' },
{ label: 'View license',
click: () => {
Electron.shell.openExternal('https://electronjs.org/');
} },
{ type: 'separator' },
{ label: 'Privacy Statement' },
{ type: 'separator' },
{ label: 'Disclaimer' }
]
}
];
const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
// Emitido cuando la ventana es cerrada.
win.on('closed', () => {
// Elimina la referencia al objeto window, normalmente guardarías las ventanas
// en un vector si tu aplicación soporta múltiples ventanas, este es el momento
// en el que deberías borrar el elemento correspondiente.
win = null;
});
}
ipcMain.on('request-mainprocess-action', (event, arg) => {
console.log(
arg
);
if (arg.action === 'follow') {
const fllw = follow(arg.username, arg.password, arg.target, arg.amount).catch( () => {
event.sender.send('mainprocess-response', 'cancelFollow');
console.log('Follow closed');
});
}
if (arg.action === 'unfollow') {
const unfllw = unfollow(arg.username, arg.password, arg.username, arg.amount).catch( () => {
event.sender.send('mainprocess-response', 'cancelUnfollow');
console.log('Unfollow closed');
});
}
});
// Este método será llamado cuando Electron haya terminado
// la inicialización y esté listo para crear ventanas del navegador.
// Algunas APIs pueden usarse sólo después de que este evento ocurra.
app.on('ready', createWindow);
// Sal cuando todas las ventanas hayan sido cerradas.
app.on('window-all-closed', () => {
// En macOS es común para las aplicaciones y sus barras de menú
// que estén activas hasta que el usuario salga explicitamente con Cmd + Q
if (process.platform !== 'darwin') {
app.quit();
}
})
app.on('activate', () => {
// En macOS es común volver a crear una ventana en la aplicación cuando el
// icono del dock es clicado y no hay otras ventanas abiertas.
if (win === null) {
createWindow();
}
});
// En este archivo puedes incluir el resto del código del proceso principal de
// tu aplicación. También puedes ponerlos en archivos separados y requerirlos aquí.