2026-09-24 11:46:54 +02:00
|
|
|
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
|
|
|
|
|
|
const call = async (channel, ...args) => {
|
|
|
|
|
const r = await ipcRenderer.invoke(channel, ...args);
|
|
|
|
|
if (!r.ok) throw new Error(r.error);
|
|
|
|
|
return r.data;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
contextBridge.exposeInMainWorld('nc', {
|
|
|
|
|
config: () => call('config'),
|
|
|
|
|
restore: () => call('restore'),
|
|
|
|
|
loginPassword: (server, user, pass, remember) => call('login-password', server, user, pass, remember),
|
|
|
|
|
loginBrowser: (server, remember) => call('login-browser', server, remember),
|
|
|
|
|
loginCancel: () => call('login-cancel'),
|
|
|
|
|
logout: () => call('logout'),
|
|
|
|
|
folder: (path) => call('folder', path),
|
2026-09-24 11:47:48 +02:00
|
|
|
timeline: (offset, order) => call('timeline', offset, order),
|
2026-09-24 11:46:54 +02:00
|
|
|
albums: () => call('albums'),
|
|
|
|
|
album: (href) => call('album', href),
|
|
|
|
|
openInNextcloud: (fileId) => call('open-in-nextcloud', fileId),
|
|
|
|
|
toggleFullscreen: () => call('toggle-fullscreen'),
|
|
|
|
|
});
|