-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
49 lines (44 loc) · 2.15 KB
/
Copy pathpreload.js
File metadata and controls
49 lines (44 loc) · 2.15 KB
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
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('electron', {
minimize: () => ipcRenderer.send('minimize'),
maximize: () => ipcRenderer.send('maximize'),
close: () => ipcRenderer.send('close'),
showAccounts: () => ipcRenderer.send('show-accounts'),
sendNotification: (notification) => ipcRenderer.emit('show-notification', notification),
downloadVideo: (url) => ipcRenderer.invoke('download-video', url),
getSettings: () => ipcRenderer.invoke('get-settings'),
saveSettings: (settings) => ipcRenderer.send('save-settings', settings),
showSettings: () => ipcRenderer.send('show-settings'),
getVersion: () => ipcRenderer.invoke('get-version'),
onManualScroll: () => ipcRenderer.send('manual-scroll'),
handleNewMessage: (messageData) => ipcRenderer.send('handle-new-message', messageData),
testMessageDetection: () => ipcRenderer.invoke('test-message-detection')
});
contextBridge.exposeInMainWorld('accounts', {
getAll: () => ipcRenderer.invoke('get-accounts'),
getCurrent: () => ipcRenderer.invoke('get-current-account'),
add: (username, avatarUrl) => {
ipcRenderer.send('add-account', username, avatarUrl);
},
switch: (username) => ipcRenderer.send('switch-account', username || ''),
hideWindow: () => ipcRenderer.send('hide-accounts'),
delete: (username) => ipcRenderer.send('delete-account', username),
monitorLoginButton: () => {
console.log('Preload: Starting login monitor');
let monitorAttempts = 0;
const monitorInterval = setInterval(async () => {
console.log('Preload: Monitor attempt', monitorAttempts++);
await ipcRenderer.invoke('monitor-login-button');
if (monitorAttempts > 60) {
console.log('Preload: Monitor timeout');
clearInterval(monitorInterval);
}
}, 500);
setTimeout(() => {
clearInterval(monitorInterval);
console.log('Preload: Monitor cleanup');
}, 30000);
return Promise.resolve();
},
getProfileData: () => ipcRenderer.invoke('get-profile-data')
});