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:
@@ -788,6 +788,44 @@ body {
|
||||
.ms-genre-chip:hover { background: rgba(255,255,255,0.1); color: #ccc; }
|
||||
.ms-genre-chip.active { background: var(--accent); border-color: var(--accent); color: #fff; }
|
||||
|
||||
.ms-genres-hint {
|
||||
font-size: 10px;
|
||||
color: #666;
|
||||
font-style: italic;
|
||||
align-self: center;
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
/* Multi-select dropdown */
|
||||
.ms-multi-dropdown { overflow-y: auto; }
|
||||
.ms-multi-opt { display: flex; align-items: center; gap: 8px; }
|
||||
.ms-multi-opt.active { color: #eee; font-weight: 500; }
|
||||
.ms-checkbox {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border-radius: 3px;
|
||||
border: 1.5px solid #555;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #fff;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.ms-checkbox.on { background: var(--accent); border-color: var(--accent); }
|
||||
|
||||
.ms-multi-clear {
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: #777;
|
||||
cursor: pointer;
|
||||
padding: 2px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: auto;
|
||||
margin-right: 2px;
|
||||
}
|
||||
.ms-multi-clear:hover { color: #fff; }
|
||||
|
||||
.ms-load-more {
|
||||
display: block;
|
||||
margin: 20px auto 8px;
|
||||
@@ -1442,6 +1480,32 @@ body {
|
||||
}
|
||||
.update-banner-close:hover { color: #fff; }
|
||||
|
||||
.update-banner-progress {
|
||||
flex: 1;
|
||||
height: 4px;
|
||||
background: rgba(255,255,255,0.08);
|
||||
border-radius: 2px;
|
||||
overflow: hidden;
|
||||
min-width: 80px;
|
||||
max-width: 200px;
|
||||
}
|
||||
.update-banner-progress-bar {
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, #E50914, #ff5252);
|
||||
transition: width 0.3s ease;
|
||||
}
|
||||
|
||||
.update-banner-spinner {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border: 2px solid rgba(255,255,255,0.15);
|
||||
border-top-color: #E50914;
|
||||
border-radius: 50%;
|
||||
animation: ub-spin 0.8s linear infinite;
|
||||
display: inline-block;
|
||||
}
|
||||
@keyframes ub-spin { to { transform: rotate(360deg); } }
|
||||
|
||||
/* ---- Retry btn ---- */
|
||||
.ms-retry-btn {
|
||||
background: none;
|
||||
|
||||
Reference in New Issue
Block a user