- electron-updater wired with Gitea API discovery: setFeedURL dynamically
per release (Gitea 1.24.7 lacks /releases/latest/download/ shortcut).
Differential download via .blockmap saves ~70 MB per patch. Renderer
banner shows states: available → downloading X% → ready. User clicks
"Установить и перезапустить" → quitAndInstall replaces files + relaunches.
- Multi-select filters per user spec: genres AND (TMDB with_genres comma-
joined), countries OR (pipe-joined into with_origin_country /
with_original_language), years OR (fan-out one request per year, merge
by id since TMDB has no discrete-year OR). Rating stays single threshold.
- Session persistence: openedSession {tabs, activeName} saved to config
on tab create/show/hide/remove/in-app navigation, plus before-quit.
Restored after did-finish-load via ipcMain.emit('create-view',...) per
tab. Survives auto-update relaunch — bring user back to the same page.
- electron-builder publish config (generic provider) so latest.yml is
generated during build.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
36 lines
1.9 KiB
JavaScript
36 lines
1.9 KiB
JavaScript
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
contextBridge.exposeInMainWorld('electron', {
|
|
createView: (name, url, imageUrl, zoom, useProxy) =>
|
|
ipcRenderer.send('create-view', name, url, imageUrl, zoom, useProxy),
|
|
confirm: (text, funcName) => ipcRenderer.send('confirm', text, funcName),
|
|
removeView: (name) => ipcRenderer.send('remove-view', name),
|
|
hideView: () => ipcRenderer.send('hide-view'),
|
|
showView: (name) => ipcRenderer.send('show-view', name),
|
|
adjustView: (expanded) => ipcRenderer.send('adjust-view', expanded),
|
|
on: (channel, func) => {
|
|
const listener = (_event, ...args) => func(...args);
|
|
ipcRenderer.on(channel, listener);
|
|
return () => ipcRenderer.removeListener(channel, listener);
|
|
},
|
|
handleAction: (action) => ipcRenderer.send('action', action),
|
|
setProxy: (host, port) => ipcRenderer.send('set-proxy', host, port),
|
|
expandWithHeader: () => ipcRenderer.send('expandWithHeader'),
|
|
collapseWithHeader: () => ipcRenderer.send('collapseWithHeader'),
|
|
backwardPage: () => ipcRenderer.send('backwardPage'),
|
|
forwardPage: () => ipcRenderer.send('forwardPage'),
|
|
refreshPage: () => ipcRenderer.send('refreshPage'),
|
|
getCurrentPage: () => ipcRenderer.invoke('get-current-page'),
|
|
getPageMeta: () => ipcRenderer.invoke('get-page-meta'),
|
|
installUpdate: () => ipcRenderer.invoke('install-update'),
|
|
checkUpdateNow: () => ipcRenderer.invoke('check-update-now'),
|
|
readConfig: () => ipcRenderer.invoke('read-config'),
|
|
writeConfig: (data) => ipcRenderer.send('write-config', data),
|
|
searchMovies: (query, sites) => ipcRenderer.invoke('search-movies', query, sites),
|
|
searchTmdb: (query, apiKey) => ipcRenderer.invoke('search-tmdb', query, apiKey),
|
|
discoverTmdb: (params) => ipcRenderer.invoke('discover-tmdb', params),
|
|
toggleKiosk: () => ipcRenderer.invoke('toggle-kiosk'),
|
|
isKiosk: () => ipcRenderer.invoke('is-kiosk'),
|
|
|
|
});
|