feat: seamless auto-update via electron-updater, multi-select filters, session restore

- 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>
This commit is contained in:
2026-05-16 20:42:25 +03:00
parent 10361cf3c0
commit a171f62629
8 changed files with 565 additions and 93 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "ESH-Media",
"version": "1.0.2",
"version": "1.0.3",
"private": true,
"main": "main.js",
"scripts": {
@@ -16,6 +16,7 @@
"dependencies": {
"@cliqz/adblocker-electron": "^1.34.0",
"cheerio": "^1.2.0",
"electron-updater": "^6.8.3",
"node-fetch": "^2.7.0",
"react": "^18.3.1",
"react-dom": "^18.3.1"
@@ -46,7 +47,10 @@
"extensions/**/*"
],
"win": {
"target": ["nsis", "zip"],
"target": [
"nsis",
"zip"
],
"icon": "public/favicon.ico"
},
"nsis": {
@@ -54,9 +58,18 @@
"allowToChangeInstallationDirectory": true
},
"linux": {
"target": ["AppImage", "deb"],
"target": [
"AppImage",
"deb"
],
"icon": "public/logo.png",
"category": "Utility"
}
},
"publish": [
{
"provider": "generic",
"url": "https://gitea.esh-service.ru/public/ESH-Media/releases/download/latest/"
}
]
}
}