Commit Graph
176 Commits
Author SHA1 Message Date
4gray 67b32e82fe test(stalker): add compatibility tests for StalkerStore API 2026-02-14 15:44:44 +01:00
4gray a9eee9e64f refactor(stalker): adapt store calls, enhance recently viewed, favorites, download manger layout 2026-02-14 15:44:16 +01:00
4gray 91aa6c02a0 refactor(stalker): stalker store split to feature-based composition
- Implemented `withStalkerEpg` for fetching channel EPG data.
- Added `withStalkerFavorites` for managing favorite items.
- Created `withStalkerPlayer` for playback functionalities including link generation and error handling.
- Developed `withStalkerPortal` for managing portal state and requests.
- Introduced `withStalkerRecent` for handling recently viewed items.
- Added `withStalkerSelection` for managing selection state and pagination.
- Implemented `withStalkerSeries` for managing series and episodes, including fetching and sorting functionalities.
- Created utility functions for content mapping and sorting.
- Updated index files to export new features and utilities.
2026-02-14 15:42:46 +01:00
4gray f0be21486d refactor(stalker): add VOD series adapters and tests
- Implemented `stalker-series.adapters.ts` for mapping VOD series seasons and episodes.
- Added utility functions for handling VOD series items and mapping to view models.
- Created unit tests for the new adapter functions in `stalker-series.adapters.spec.ts`.
- Updated `stalker.store.ts` to manage VOD series state and handle favorites.
- Enhanced `category-content-view` component to support favorite functionality for VOD items.
- Refactored favorite management in `playlists.service.ts` to ensure proper ID handling.
2026-02-14 11:47:36 +01:00
4gray 29552b6e7d refactor(stalker-models): add new interfaces for category, content, ITV channel, and VOD series; update favorite item interface 2026-02-14 11:46:52 +01:00
4gray b262b98df4 refactor(stalker-vod): implement utility functions and tests for handling VOD details and favorites 2026-02-14 11:46:15 +01:00
4gray 52947bdfac refactor(logging): replace console.error and console.warn with logger utility in multiple components and services 2026-02-14 11:45:56 +01:00
4gray b9ac1ade78 chore(logger): implement logger utility with debug, info, warn, and error methods 2026-02-14 11:44:30 +01:00
4gray 648ba9d5b4 chore(tsconfig): correct typeRoots path for module resolution 2026-02-14 11:44:20 +01:00
4gray 7c9db4bc7d feat(remote-control): add channel selection by number and volume control features
- Implemented `getChannelItemByNumber` utility function to retrieve channels by their number.
- Enhanced `StalkerLiveStreamLayoutComponent` and `LiveStreamLayoutComponent` to handle remote control commands for channel selection and volume adjustments.
- Updated typings to include new remote control commands and status updates.
- Refactored `RemoteControlComponent` to manage numeric input for channel selection and volume control actions.
- Improved UI for remote control with new volume and channel navigation features.
- Added service methods for volume up, down, and mute toggle in `RemoteControlService`.
2026-02-14 00:03:42 +01:00
4gray 620ecb7518 feat(remote-control): remote control support for xtream and stalker live tv 2026-02-13 22:17:20 +01:00
4gray 12bbdf562a Merge pull request #765 from 4gray/fix/pre-v0-19-release-fixes
Fix/0.19 release fixes
2026-02-13 20:59:38 +01:00
4gray f752ba2b85 feat(xtream): add category search functionality and update selection state 2026-02-13 00:45:42 +01:00
4gray bcdaff368a feat(xtream): implement content sorting functionality with user-selectable sort modes 2026-02-13 00:42:48 +01:00
hasanbeder 7382ae2b00 feat(i18n): update and sync Turkish translations
This PR brings the Turkish localization to full parity with the application's current state.

### 🔄 Synchronization & Updates
- **Complete Sync:** Added ~165 missing translation keys, achieving 100% coverage.
  - *New Features Covered:* Xtream Codes management, Stalker Portal settings, EPG status messages, Download manager states, and Welcome screen onboarding.
- **Correction:** Updated remote control port description to reflect the correct default port (`8765`), fixing a legacy mismatch.
- **Structure:** Ensured the translation file strictly follows the hierarchical key order of the source configuration.
2026-02-13 02:25:15 +03:00
4gray 8ef789ac8a fix(xtream): persist live channel sort mode in local storage 2026-02-13 00:19:12 +01:00
4gray e3bc450803 feat(xtream): add live tv channel sorting functionality 2026-02-13 00:17:17 +01:00
4gray 649d55a1c1 refactor(epg): implement throttled EPG request queue with caching and concurrency control
Entire-Checkpoint: 3ba3a7503b59
2026-02-11 23:11:14 +01:00
4gray 166e81dae0 fix(xtream): enhance error handling in content hero and serial details components
Entire-Checkpoint: 3ba3a7503b59
2026-02-11 22:50:33 +01:00
4gray 639c443416 feat: add excludeHidden parameter to search functions for improved filtering 2026-02-10 08:15:46 +01:00
4gray 6e93ec81fd feat: add excludeHidden option to search functions for filtering results
This commit closes #760
2026-02-09 23:43:21 +01:00
4gray 311e9b56e4 style: adjust sidebar and navigation styles for improved layout and consistency 2026-02-08 21:17:21 +01:00
4gray 8900ee1834 refactor: implement automatic unsubscription for favorites loading in StalkerLiveStreamLayout 2026-02-08 20:24:01 +01:00
4gray 90e4602530 feat: update search view localization for multiple languages with results found and no results messages 2026-02-08 20:23:41 +01:00
4gray c98644dfe4 style: enhance thumbnail wrapper styles with border radius and overflow properties 2026-02-08 19:19:39 +01:00
4gray 007317dacf feat: add search view localization with results found and no results messages 2026-02-08 19:19:25 +01:00
4gray d603c46a5a feat: implement stalker live stream layout with EPG support
- Added new component for live stream layout with sidebar and content area.
- Integrated playlist switcher and category view for better navigation.
- Implemented channel list with loading indicators and favorite functionality.
- Added EPG (Electronic Program Guide) support for channels with loading and pagination.
- Enhanced styles for responsive design and improved user experience.
- Updated routing to use the new live stream layout component.
- Modified stalker store to handle EPG fetching and search functionality.
- Introduced new actions in the StalkerPortalActions enum for EPG operations.
2026-02-08 19:19:15 +01:00
4gray edcd7cb148 feat: improve global favorites handling and channel display logic in the UI 2026-02-08 19:18:56 +01:00
4gray c253db4cef feat: enhance search functionality with improved filtering and UI updates 2026-02-08 19:18:05 +01:00
4gray f5edba7d4c feat: add search view localization for multiple languages 2026-02-08 18:39:49 +01:00
4gray a72fb31d7a refactor: enhance params handling in recently viewed and favorites components 2026-02-07 23:08:56 +01:00
4gray ed9e85f5e8 refactor: implement search layout component with dynamic results and filters 2026-02-05 23:08:22 +01:00
4gray e8632e7bee feat: implement category scroll restoration in live stream layout 2026-02-05 23:07:46 +01:00
4gray 2691e3f36e refactor: update navigation and recently added components for improved UI and functionality 2026-02-04 22:55:02 +01:00
4gray 9a04c42e79 refactor: remove unused back navigation and clean up downloads component 2026-02-04 22:52:52 +01:00
4gray 2f1e455330 refactor: refactor favorites and recently viewed components to use content card 2026-02-04 22:13:23 +01:00
4gray e6923d3fff feat: implement content card component with dynamic features and styles 2026-02-04 22:12:51 +01:00
4gray d64283e33d style: enhance favorites and recently viewed UI with improved layout and functionality 2026-02-04 00:41:03 +01:00
4gray 139944281c feat: keep filter search phrase and results when navigating back from details view 2026-02-04 00:40:04 +01:00
4gray bffcc24f67 refactor: optimize imports in downloads component and fix download folder access 2026-02-01 21:22:43 +01:00
4gray e420ef1c8e feat: add new message to localization 2026-02-01 21:21:07 +01:00
4gray fef815058f feat: add new loading and search related messages to the English localization 2026-02-01 20:22:54 +01:00
4gray 6b18d91ca7 Merge pull request #749 from 4gray/feat/custom-sorting-for-playlists
Feat/custom-sorting-for-playlists
2026-02-01 16:40:56 +01:00
4grayandClaude Opus 4.5 932b1e5b53 feat: add custom drag-and-drop sorting for playlists
Add a new "Custom order" sort option that allows users to manually
reorder playlists via drag-and-drop. When this sort mode is active,
drag handles appear in front of each playlist item.

- Add SortBy.CUSTOM enum value to SortService
- Add custom order button to filter-sort-menu
- Add isDraggable input and cdkDrag support to PlaylistItemComponent
- Enable cdkDropList in RecentPlaylistsComponent when custom sort active
- Add translation key for custom order option

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 15:57:18 +01:00
4grayandClaude Opus 4.5 54cd1445c7 refactor: use signal-based output() in season-container component
Replace @Output() decorator with EventEmitter with modern Angular
signal-based output() function for consistency with other components.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 15:12:15 +01:00
4grayandClaude Opus 4.5 45213d8d1a fix: wrap isElectron in computed for proper reactivity
Changed from direct signal assignment to computed() wrapper to ensure
consistent reactive pattern and clearer intent.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 15:08:58 +01:00
4grayandClaude Opus 4.5 e1f04c598c fix: emit toggled state in favoriteToggled event
Changed toggleFavorite() to emit the desired new state (!isFavorite)
instead of the current state. Updated all parent handlers to match
the new semantic where isFavorite means "user wants it to be a favorite".

This makes the API more intuitive - consumers can now apply the payload
directly without inverting the boolean.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 15:07:01 +01:00
4grayandClaude Opus 4.5 88758609d5 fix: remove double navigation in vod-details goBack method
The goBack() method was both emitting backClicked and calling
location.back(), causing double navigation when parent components
also handled backClicked with their own location.back() call.

Now goBack() only emits the event, consistent with stalker-series-view.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 14:23:37 +01:00
4grayandClaude Opus 4.5 8aac765694 fix: only sync Stalker playlists to SQLite and normalize playlist ID
- Add check for macAddress and portalUrl to ensure only Stalker playlists
  are synced to the SQLite database
- Normalize playlist._id to string before passing to IPC handlers

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 14:19:06 +01:00
4grayandClaude Opus 4.5 0643acac3a feat: add o_name support and Stalker playback position tracking
- Add o_name (original title) field to Stalker VOD interfaces
- Prefer o_name over name in adapters and grid list display
- Add playback position tracking for Stalker VOD content
- Support resume playback from last position in vod-details
- Add real-time position updates via IPC listener
- Add progress indicators for Stalker VOD items in grid view
- Add debug logging for VOD series seasons resource

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 10:55:45 +01:00