Commit Graph
153 Commits
Author SHA1 Message Date
4grayandClaude Opus 4.5 9cd278256b fix: use specific listener cleanup instead of removeAllListeners
Return unsubscribe function from onPlaybackPositionUpdate to ensure
only the specific listener is removed on destroy, preventing issues
with multiple store instances.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 13:32:04 +01:00
4grayandClaude Opus 4.5 0219d3253e fix: add type safety to PlaybackPositionService and clarify watched state logic
- Move PlaybackPositionData interface to shared-interfaces lib
- Replace all `any` types with proper PlaybackPositionData typing
- Add comment clarifying position=duration semantics for watched episodes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 13:25:10 +01:00
4gray adb89145a3 feat: playback position persistence for all players and grid indicators 2026-01-18 11:40:27 +01:00
4gray e53555d324 fix(epg): robustly load better-sqlite3 from workerData, resourcesPath, or fallback 2026-01-13 23:31:27 +01:00
4gray 9a40230361 feat: add greek translation 2026-01-13 22:55:32 +01:00
4gray b57f4a640a fix(electron): pass nativeModulesPath to workers and load native modules in worker to support packaged app 2026-01-13 22:55:32 +01:00
4gray 1bd31bf18c fix(electron): use app.isPackaged to detect dev mode
Replace custom environment-based dev detection with Electron's
built-in app.isPackaged check. Import the app module from Electron
and remove reliance on ELECTRON_IS_DEV and the environment file.

This simplifies logic, improves reliability of development vs
production detection, and reduces dependency on external env vars.
2026-01-13 22:43:11 +01:00
4gray 155a7d1209 style(category-management): improve layout and styling of dialog components 2026-01-12 18:17:38 +01:00
4gray 4491880e81 fix(stalker-search): remove redundant width style from search page 2026-01-12 18:05:58 +01:00
4gray 6cc9000a61 refactor: code style and formatting 2026-01-12 18:02:54 +01:00
4gray aced6209aa fix(stalker-search): remove unused MatButton and MatIcon imports 2026-01-12 17:53:58 +01:00
4gray 0a8c890df5 fix: restore ContentType import and optimize sorting logic in selection feature 2026-01-12 17:50:37 +01:00
4gray 225e9866ef chore: bump TS lib for newer ES features 2026-01-12 00:55:25 +01:00
4gray 76191b415f refactor(xtream): refine search result card layout 2026-01-12 00:55:18 +01:00
4gray 54f4abb48b fix(xtream): track and show import progress of playlist 2026-01-12 00:54:55 +01:00
4gray c173553d78 feat(xtream): add recently added views 2026-01-12 00:54:00 +01:00
4gray 16469256df refactor: wrap search & recent in global components 2026-01-12 00:53:07 +01:00
4gray 09b8752a3d fix(xtream): switch to XtreamApiService and sendRequest 2026-01-12 00:52:42 +01:00
4gray d31605da9f style(stalker-search): move details view out of search page 2026-01-12 00:52:42 +01:00
4gray fb1104f6b7 feat(category-management): show category item counts 2026-01-12 00:52:42 +01:00
4gray 33d8036ecc Merge pull request #724 from 4gray/refactor/store-refactoring
refactor/store-refactoring
2026-01-12 00:40:40 +01:00
4gray 960b295cd8 fix: handle Unicode search in DB queries 2026-01-12 00:39:11 +01:00
4gray f26e3e57c8 fix: normalize favorites and fix stalker nav 2026-01-12 00:39:11 +01:00
4gray 6737270a58 fix: provide XtreamStore to components 2026-01-11 21:20:50 +01:00
4gray 2630025b11 feat: restore hidden category state after playlist refresh 2026-01-11 21:20:50 +01:00
4gray afd8da0c25 feat: indicate loading while fetching details 2026-01-11 21:20:50 +01:00
4gray 5ad74e44ab refactor: update imports and provide Xtream data 2026-01-11 06:27:21 +01:00
4gray 46a78f2d86 refactor: unify xtream feature stores 2026-01-11 06:26:57 +01:00
4gray 3a2ee74b96 refactor: add Xtream data source abstraction 2026-01-11 06:26:38 +01:00
4gray aa27e6da0d refactor: add xtream api services 2026-01-11 06:25:12 +01:00
4gray 97a678a98d refactor: add xtream feature stores 2026-01-11 06:24:48 +01:00
4gray 971ad70893 refactor: add lifecycle-safe router unsubscribe and optimize portal checks 2026-01-10 16:53:05 +01:00
4gray 6b94fcbdd6 feat(ui): use playlist-switcher in all modules 2026-01-10 15:19:37 +01:00
4gray ffd71b673c refactor(e2e): simplify smoke test by removing verbose debug logs and 2026-01-09 14:33:10 +01:00
4gray e8a80fdb60 test(electron): add Playwright smoke E2E tests for app
Add a new Electron smoke test suite using Playwright to verify the
packaged application starts, renders the main window, and exposes
expected window properties. The tests launch the built Electron main
bundle, locate the primary (non-DevTools) window, wait for DOM load,
and assert the title contains "IPTVnator". They also check window
visibility and bounds, validate rendered body content, and capture
screenshots to dist/test-results/electron-backend-e2e for debugging.

Include helpers to resolve project paths, ensure the screenshot
directory exists, and robustly find the main application window. Set
NODE_ENV and ELECTRON_IS_DEV to ensure the app loads built artifacts.
2026-01-09 12:53:53 +01:00
4gray 5070c2a707 feat(category-view): add showCounts input to conditionally display item counts 2026-01-07 23:40:28 +01:00
4gray f2b59d3994 refactor(stalker): remove debug logging for VOD series seasons fetching 2026-01-07 20:41:31 +01:00
4gray 16a5e1e4c9 feat(category-management): add snackbar notification for save errors 2026-01-07 20:41:22 +01:00
4gray 74a65a53a9 fix(category-view): ensure itemId is a number for selection comparison 2026-01-07 20:41:03 +01:00
4gray 2c3c979a96 fix(category): handle empty categoryIds in visibility update 2026-01-07 20:40:45 +01:00
4gray 8e15e89858 feat(xtream): add category item counts to category view 2026-01-07 19:10:17 +01:00
4gray bc30acf4a7 fix: handle empty xtream categories gracefully
Skip database insert when categories array is empty to prevent
'values() must be called with at least one value' error.

Closes #684
2026-01-06 21:41:18 +01:00
4gray 2043b7d8a1 feat(xtream): add category management to hide/show categories
Add the ability to hide irrelevant or empty categories in Xtream playlists.
Users can now manage category visibility through a dialog accessible from
the sidebar header in both VOD/Series and Live TV views.

Features:
- New category management dialog with search filter and select/deselect all
- Visibility settings persisted to database per playlist
- Hidden categories are filtered from sidebar navigation
- New categories added during playlist refresh default to visible
- Database migration for existing installations

Files changed:
- Database: schema.ts, connection.ts (hidden column + migration)
- Backend: category.events.ts, main.preload.ts (IPC handlers)
- Frontend: new dialog component, store method, UI integration
- Translations: en.json
- Documentation: docs/architecture/category-management.md
2026-01-06 21:34:44 +01:00
4gray 934c02d9ec fix: adjust player dialog opening condition for non-live content in favorites view 2026-01-06 19:51:10 +01:00
4gray 5904025e82 refactor: remove unnecessary console logs from Stalker events and portal import components 2026-01-06 19:50:44 +01:00
4gray 37fc5fb148 feat: enhance favorites button and series view with loading states and improved styling 2026-01-06 01:10:27 +01:00
4gray 0a4d00c081 Merge pull request #711 from 4gray/feat/epg-improvements
feat/epg-improvements
2026-01-06 00:40:07 +01:00
4gray fb14abbd86 refactor(ui): adjust header flow for selected item 2026-01-05 21:57:34 +01:00
4gray 876699d732 chore: remove debug log from stalker store 2026-01-05 21:57:19 +01:00
4gray 050ea5ae5e feat: refine category view image handling 2026-01-05 21:57:07 +01:00