Commit Graph
2115 Commits
Author SHA1 Message Date
4grayandClaude Opus 4.7 5ab6736613 refactor(channels): apply .app-scrollbar to favorites and recent views
Round out the channel-list-container views so the favorites and recent
panels get the same persistent scrollbar gutter and themed thumb as the
all-channels and groups views.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 2301533420c9
2026-04-29 01:03:01 +02:00
4grayandClaude Opus 4.7 59beb324b4 refactor(styles): extract .app-scrollbar utility, apply to channel lists
Move the always-visible themed scrollbar from epg-list into a global
.app-scrollbar utility class in styles.scss. Apply it to the All
channels and Groups view virtual-scroll viewports so the channel list
gets the same persistent gutter and themed thumb as the EPG list.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: c470abf78379
2026-04-29 01:00:42 +02:00
4grayandClaude Opus 4.7 465fdbfb80 fix(epg): always-visible scrollbar in program list
Switch to overflow-y: scroll with scrollbar-gutter: stable so the gutter
is reserved (no layout shift between scrollable and non-scrollable
days). Locally style the thumb with --app-muted-color so it's clearly
visible across themes and platforms, overriding the global 6px
near-transparent style which was being hidden by the macOS overlay
auto-fade.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 918ee7ade2f3
2026-04-29 00:55:48 +02:00
4grayandClaude Opus 4.7 7841b3b4e8 refactor(epg): hairline dividers, en-dash time, single-line description
Separation: replace 4px gap with hairline dividers via ::before, hidden
around the active and current-program rows so they read as a continuous
emphasized block. Title line-height 1.4 → 1.3 + letter-spacing -0.01em
to match channel-name. Time uses en-dash, 0.78rem (parity with summary
bar), token-driven --app-muted-color. Description clamped to one line —
full text remains one click away via the info icon.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: b0389ce441a1
2026-04-29 00:52:29 +02:00
4grayandClaude Opus 4.7 db0e2b658f refactor(epg): align program-item styling with channel-list aesthetic
Drop the gradient + bevel + drop-shadow chrome from EPG rows so the panel
speaks the same flat-by-default visual language as the channel list. Add
--app-live-color token, tokenise the LIVE badge, tighten typography
(weight 600, text-wrap balance/pretty), and bump the info icon to 32px
for Fitts-compliant hit area.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 4cc5371f549e
2026-04-29 00:43:45 +02:00
4gray 31258624b5 feat: unify live epg toolbar
Entire-Checkpoint: 978eaff2e478
2026-04-29 00:20:34 +02:00
4grayandClaude Opus 4.7 d163a1fbf2 feat(dashboard): contained logo + blurred backdrop for live channels
Render live TV channel logos with object-fit: contain on a soft blurred
wash sampled from the logo itself, instead of stretching small (100-256px)
logos to fill 2:3 portrait cards with object-fit: cover. Mirrors the
treatment used by Apple Podcasts and Plex Live TV. VOD/series posters
still get the full-bleed cover treatment.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 6bb6f5796090
2026-04-28 20:14:04 +02:00
4gray 51347fc226 feat: add collapsible live epg panel
Entire-Checkpoint: 0518c49b948d
2026-04-28 19:56:41 +02:00
4gray 10139955e7 fix(stalker): lazy load live tv channels
Entire-Checkpoint: c6e522b4276c
2026-04-27 00:25:56 +02:00
4gray 16fede1180 docs(blog): add favicon
Entire-Checkpoint: c6e522b4276c
2026-04-27 00:24:23 +02:00
4gray 95e2a43626 docs(blog): add release notes for IPTVnator v0.20
Entire-Checkpoint: c6e522b4276c
2026-04-26 17:12:44 +02:00
4gray 1609260891 docs(blog): update software version to 0.20.0 in blog schema
Entire-Checkpoint: c6e522b4276c
2026-04-26 17:12:19 +02:00
4gray fa8f719c74 docs(screenshots): update and add new screenshots for enhanced documentation
Entire-Checkpoint: c6e522b4276c
2026-04-26 17:11:24 +02:00
4gray 2330c5ae59 chore(package): update version to 0.21.0 and add new scripts for artwork generation
Entire-Checkpoint: c6e522b4276c
2026-04-26 16:12:24 +02:00
4gray 4e23061c80 chore(entire): remove deprecated settings.json file
Entire-Checkpoint: c6e522b4276c
v0.20.0
2026-04-26 01:07:04 +02:00
4gray 313ff7a24f fix(command-palette): enhance command palette management with dialog reference
Entire-Checkpoint: c6e522b4276c
2026-04-26 01:06:36 +02:00
4gray 16d5816913 test(e2e): update command palette interaction for cross-platform compatibility
Entire-Checkpoint: c6e522b4276c
2026-04-26 01:04:45 +02:00
4gray f0df67b5b4 test: add missing config
Entire-Checkpoint: c6e522b4276c
2026-04-26 00:31:23 +02:00
4gray 0a3faa1983 refactor(settings): reorder imports and comment out unused test cases
Entire-Checkpoint: c6e522b4276c
2026-04-26 00:12:49 +02:00
4gray d0f7dcae78 refactor(stalker-live-stream-layout): fix streamUrl usage and enhance web player view component
Entire-Checkpoint: c6e522b4276c
2026-04-26 00:01:40 +02:00
4gray 0311a4dde8 refactor(settings): clean up unused imports and commented code
Entire-Checkpoint: c6e522b4276c
2026-04-25 23:54:30 +02:00
4gray 4bc733d9c2 refactor(external-playback): update styles
Entire-Checkpoint: c6e522b4276c
2026-04-25 23:48:21 +02:00
4gray ce7ae1a251 refactor(external-playback): add translation support for close player button and update UI styles
Entire-Checkpoint: c6e522b4276c
2026-04-25 23:43:22 +02:00
4gray 58ee06bb2b refactor(settings): add backup and reset functionality with UI updates
Entire-Checkpoint: c6e522b4276c
2026-04-25 23:03:50 +02:00
4gray e53a25f441 style(settings): add EPG sources handling and UI enhancements
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:39:55 +02:00
4gray 4616df5d16 refactor(playlist-import): update file upload handling and emit imported event
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:32:08 +02:00
4gray db55c07030 docs(stalker): preserve VOD origin for series favorites in detail navigation
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:24:35 +02:00
4gray 1ec7176983 chore(xtream-mock-server): add artwork mock data and script to generate artwork for IPTVnator releases
- Implemented a TypeScript script that generates original fictional demo artwork for IPTVnator release screenshots.
- The script supports multiple artwork kinds (poster and backdrop) and qualities (low, medium, high, auto).
- It includes functionality for dry runs, generating artwork, manifest creation, and validation of generated assets.
- Integrated with OpenAI's image generation API to create artwork based on provided prompts and fixture data.
- Added a manifest file to track generated assets and their metadata.
- Ensured output directories are created as needed and included error handling for API requests.

Entire-Checkpoint: c6e522b4276c
2026-04-25 22:24:05 +02:00
4gray b1d519183f style(empty-state): enhance empty state component with new types and responsive design
- Expanded EmptyStateType to include 'welcome-dashboard', 'welcome-sources', 'no-data'.
- Introduced FeatureCard and SourceCard interfaces for better structure.
- Added FEATURE_CARDS and SOURCE_CARDS constants for feature and source card configurations.
- Updated empty-state.component.ts to handle new types and actions.
- Created responsive styles in empty-state.responsive.scss for better mobile support.
- Added theme styles in empty-state.themes.scss for light mode.
- Developed specific styles for welcome dashboard and sources in empty-state.welcome-dashboard.scss and empty-state.welcome-sources.scss.
- Updated recent-playlists.component.html to utilize new empty state types.
- Modified recent-playlists.component.ts to support new playlist actions.
- Introduced PlaylistFileImportService for handling playlist file imports.
- Updated downloads.component.html and downloads.component.ts to integrate new empty state handling.
- Enhanced unified-collection-page.component.html and unified-collection-page.component.ts to utilize empty state for no results.

Entire-Checkpoint: c6e522b4276c
2026-04-25 22:18:13 +02:00
4gray 74c8adc12e fix(stalker): series favorites handling
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:16:33 +02:00
4gray 6eb602d332 feat(playlist-switcher): add refresh button for active playlist with spinning icon
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:14:20 +02:00
4gray ad33deb63e chore: add localization strings for multiple languages
- Added support for M3U file and URL integration across various languages.
- Introduced Xtream Codes and Stalker portal connection options.
- Enhanced value propositions for live TV, VOD, multi-source library, and offline downloads.
- Updated dashboard welcome messages and descriptions for better user guidance.
- Improved file upload instructions and error handling for playlist imports.
- Added global favorites and recent viewing history sections with appropriate messages.
- Enhanced download functionality with clear instructions and feedback for users.

Entire-Checkpoint: c6e522b4276c
2026-04-25 22:12:32 +02:00
4gray 92f21bd237 feat(workspace): enhance dashboard and sources components with playlist management and UI improvements
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:11:31 +02:00
4gray caed2ce396 feat(playlist-drop-overlay): add component and directive for file drop overlay functionality
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:08:03 +02:00
4gray d51ea4b2b0 docs(README): add instructions for starting Electron with an isolated data directory
Entire-Checkpoint: c6e522b4276c
2026-04-25 16:56:02 +02:00
4gray a76f09a8ce style(dashboard): enhance hero artwork handling with fallback logic and image failure management
Entire-Checkpoint: c6e522b4276c
2026-04-25 15:11:25 +02:00
4gray a2e2959b89 fix(xtream): pagination behavior (back & scroll)
Entire-Checkpoint: c6e522b4276c
2026-04-25 14:11:36 +02:00
4gray cd111b6c36 fix(stalker): enhance pagination handling and add search phrase management
Entire-Checkpoint: c6e522b4276c
2026-04-25 14:09:59 +02:00
4gray efa0385fc8 feat(dashboard): implement context menu with actions for recent sources 2026-04-24 14:27:04 +02:00
4gray 02c37e9bda test(e2e): refactor recent source card visibility checks in Electron provider tests 2026-04-23 09:17:56 +02:00
4gray c123fbf115 test(e2e): update favorites and recently viewed handling to use global paths 2026-04-23 00:03:48 +02:00
4gray 4b4d0abfab test: refactor electron window handling in PlaylistsService tests 2026-04-22 22:33:06 +02:00
4gray ce2dad2dec test(e2e): update dashboard rail interactions and improve global favorites handling in tests 2026-04-22 22:24:46 +02:00
4gray db200167ba refactor: remove unused path mappings for workspace dashboard in tsconfig 2026-04-22 22:24:34 +02:00
4gray 549bdd7a9e docs: update navigation and dashboard documentation for clarity and accuracy 2026-04-22 22:24:27 +02:00
4gray 73de25db21 feat: enhance electron API with playlist type and backdrop URL support for favorites and recent items 2026-04-22 22:24:13 +02:00
4gray d88979e666 feat: enhance global collection route with playlist context and portal type handling 2026-04-22 22:24:01 +02:00
4gray 7caa18308d feat: enhance unified collection with workspace commands and backdrop handling
- Added WorkspaceViewCommandService to UnifiedCollectionPageComponent for workspace layout commands.
- Implemented clear current view command for favorites and recent items.
- Updated unified favorites data service to use buildXtreamCollectionUid for UID generation.
- Enhanced unified recent data service to normalize timestamps and handle backdrop URLs.
- Introduced withRecentItems feature to manage recent item additions with backdrop support.
- Updated VodDetailsRouteComponent and SerialDetailsComponent to backfill content backdrops.
- Modified IXtreamDataSource interface to include backdrop URL handling for favorites and recent items.
- Added tests for recent items feature to ensure correct functionality and backdrop handling.
2026-04-22 22:23:50 +02:00
4gray 6904b81c47 feat: implement grid rating formatting and resolution functions 2026-04-22 22:23:30 +02:00
4gray 199ff91fcc feat: enhance recently added component with skeleton loading states and layout improvements 2026-04-22 22:23:12 +02:00