Commit Graph
1382 Commits
Author SHA1 Message Date
4gray d9cbb1ce87 refactor(player,epg): add MPV reuse, IPC commands, and EPG handlers
Introduce MPV process reuse and IPC control, and add basic EPG IPC
handlers.

- Add GET_CHANNEL_PROGRAMS and FETCH_EPG ipc handlers to epg.events.ts
  to expose fetching EPG data by channel or URLs.
- Rework player.events.ts:
  - Export proper bootstrap and add module-level mpvProcess and
    mpvSocketPath to track a reusable MPV instance.
  - Add sendMpvCommand helper to communicate with MPV via its IPC socket.
  - Implement OPEN_MPV_PLAYER handler that:
    - Reads MPV path and MPV_REUSE_INSTANCE setting from store.
    - Attempts to reuse an existing MPV process by sending loadfile
      command over the socket when reuse is enabled.
    - Falls back to spawning a new mpv process, creating a unique IPC
      socket path, and storing the process/socket when reuse is enabled.
    - Adds error and exit handlers to clear stored references.
  - Add necessary imports (ChildProcess, existsSync, createConnection).
  - Remove/comment unused import block for shared-interfaces and adapt
    existing code to the new flow.

Why:
- Enable reusing a single MPV instance to improve resource usage and
  provide faster playback switching.
- Add IPC endpoints for EPG to support frontend requests for program
  data.
2025-10-18 11:53:57 +02:00
4gray b61530f279 feat(preloadtauri): add external player IPC and playlist auto-update
MPV/VLC launch and playlist auto-update from the Electron preload
and migrate Tauri invoke calls to use the exposed window.electron API.

- Add openInMpv, openInVlc and autoUpdatePlaylists to the preload API,
  forwarding parameters to ipcRenderer for native handling.
- Replace tauri invoke('open_in_mpv') and invoke('open_in_vlc') calls
  with window.electron.openInMpv / openInVlc in tauri.service to use the
  unified Electron IPC surface.
- Replace file-based AUTO_UPDATE_PLAYLISTS handling with a call to
  window.electron.autoUpdatePlaylists and remove legacy file parsing
  code (now commented) so the main process owns playlist refresh logic.
- Import shared AUTO_UPDATE_PLAYLISTS/Playlist types into preload.

This centralizes native player launching and playlist updates through the
preload IPC bridge, simplifying web service code and moving file I/O to
the native/main layer for better security and separation of concerns.
2025-10-15 23:31:08 +02:00
4gray 6b693b3237 refactor: convert to standalone api 2025-10-15 23:12:19 +02:00
4gray 3186d022e2 Merge pull request #629 from 4gray/refactor/remove-packages-fix-build
refactor/remove-packages-fix-build
2025-10-15 08:55:25 +02:00
4gray bc3c9ce8cc feat(electron-backend): add IPC event scaffolding and persistent store 2025-10-15 08:55:03 +02:00
4gray 7487738a7d refactor(nx): remove packages, fix build issues 2025-10-14 23:44:33 +02:00
4gray ad75cb2f1a Merge pull request #628 from 4gray/refactor(nx)-more-app-restructuring
refactor(nx): app restructuring
2025-10-14 09:01:42 +02:00
4gray 260f3b3da7 refactor(nx): app restructuring 2025-10-14 09:00:31 +02:00
4gray af55372655 Merge pull request #625 from 4gray/app-restructuring
refactor(nx): add restructuring
2025-10-13 01:34:10 +02:00
4gray 2d4fdcfc1b refactor(nx): add restructuring 2025-10-13 01:33:50 +02:00
4gray 7028ff4049 refactor(nx): app restructuring 2025-10-13 00:24:54 +02:00
4gray 505b9907ae Merge pull request #623 from 4gray/refactor/nx-integration
refactor(nx): created shared and m3u-utils library
2025-10-10 11:50:41 +02:00
4gray 920afa6850 refactor(nx): created shared and m3u-utils library 2025-10-10 11:49:35 +02:00
4gray 99ed5df404 chore: back to electron + nx 2025-10-07 18:02:13 +02:00
4gray f5b3a15b83 Merge pull request #619 from 4gray/feat/add-artplayer
feat/add-artplayer
2025-09-27 20:18:32 +02:00
4gray 0c5939ae16 feat(video-player): integrate Artplayer and remove DPlayer
- Enableplayer global config and component options:
  - set Artplayer.AUTO_PLAYBACK_TIMEOUT to 10000 to reduce autoplay
    timeouts.
  - enable autoPlayback, playsInline, airplay, backdrop, mutex and set
    theme on Artplayer instance to improve playback behaviour and UI.
  - add autoSize, autoMini, pip, screenshot, aspectRatio and fullscreen
    settings for a consistent feature set.

- Harden channel URL check to avoid null errors:
  - use optional chaining when checking channel.url for m3u8.

- Move StreamFormat import ordering and clean unused enum entry:
  - remove DPlayer from VideoPlayer enum and related commented code.
  - remove DPlayer component imports, declarations and template branch,
    simplifying player selection and eliminating dead code.

- Tidy component decorator formatting and fix template array trailing
  commas to preserve style consistency.

These changes replace the deprecated/removed DPlayer integration with a
fully configured Artplayer, improve runtime safety, and clean up unused
code.
2025-09-27 20:05:35 +02:00
4gray e338eb16dc fix(web-player): remove unused dplayer 2025-09-27 20:05:00 +02:00
4gray 3214c9087d Merge pull request #618 from 4gray/chore/update-packages
chore(deps): bump multiple dev/prod dependency versions
2025-09-27 18:12:20 +02:00
4gray c01e8c204c chore(deps): bump multiple dev/prod dependency versions
Update several packages in package-lock to newer minor/patch releases
and align Angular ESLint packages with the Angular 20 toolchain. Key
changes include:
- Upgrade @rx-angular/* to 20.0.0 to match other framework updates.
- Bump runtime libs: artplayer, axios, hls.js, rxjs, semver, uuid,
  zone.js to patch/minor versions for fixes and compatibility.
- Update @angular-eslint packages to 20.3.0 to match Angular 20.x.
- Refresh eslint, @eslint/*, eslint-plugin-import, prettier, and
  semantic-release to more recent releases for linting/CI stability.
- Add explicit rxjs 7.8.1 entries under some Angular DevKit node_modules
  to ensure consistent resolution.

These updates address compatibility with Angular 20, pull in bug fixes
and security/maintenance patches, and stabilize dev tooling and CI.
2025-09-27 17:19:50 +02:00
4gray 7fd0f2046a Merge pull request #617 from 4gray/fix/reorder-favorites
fix/reorder-favorites
2025-09-27 16:55:18 +02:00
4gray 0e2ba6b138 refactor: convert *ngFor to control-flow @for loops in channel list 2025-09-27 16:31:01 +02:00
4gray bce4717de6 fix(player): use channel URL for favorites ordering
Use channel.url instead of channel.id when updating the favorites
ordering in the playlist store. The change ensures the dispatched
setFavorites action contains the correct identifierurl) that the
store and downstream logic expect, preventing mismatches between the
UI order and persisted favorites.
2025-09-27 16:30:22 +02:00
4gray 2fda888676 Merge pull request #616 from 4gray/copilot/fix-7096d205-d765-4091-8c1a-6fc63c666e04
Fix hardcoded playlist name in URL import to use filename extraction
2025-09-27 15:17:49 +02:00
copilot-swe-agent[bot]and4gray 11a816a210 Fix playlist name extraction from URL with fallback
Co-authored-by: 4gray <1503032+4gray@users.noreply.github.com>
2025-09-27 13:04:17 +00:00
copilot-swe-agent[bot] b249c5eca0 Initial plan 2025-09-27 12:56:37 +00:00
4gray e56ebce3a3 Merge pull request #613 from 4gray/chore/update-angular-to-v20
chore: update to angular v20
2025-09-21 13:09:18 +02:00
4gray cd2dd2ede5 chore: update to angular v20
- Removed unnecessary imports from header, account-info, 
  loading-overlay, navigation-bar, season-container, serial-details, and 
  vod-details components.
- Updated template syntax to use structural directives more efficiently in mpv-player-bar, account-info, navigation-bar, season-container, serial-details, and vod-details components.
- Enhanced readability and maintainability of the code by organizing imports and using Angular's async pipe and structural directives appropriately.
- Adjusted TypeScript configuration to use "bundler" for module resolution for better compatibility with modern build tools.
2025-09-21 12:27:36 +02:00
4gray 4fe40a741f ci: add minimal configuration for CodeRabbit 2025-09-18 14:51:31 +02:00
4gray dd31f6350f Merge pull request #612 from 4gray/dependabot/npm_and_yarn/multi-6996cb6ab6
chore(deps): bump vite and @angular/build
2025-09-18 14:42:53 +02:00
4gray a8d7a77482 Merge pull request #597 from 4gray/dependabot/npm_and_yarn/multi-c22e25d29b
chore(deps): bump brace-expansion
2025-09-18 14:36:17 +02:00
4gray af85825985 Merge pull request #605 from 4gray/dependabot/npm_and_yarn/sha.js-2.4.12
chore(deps-dev): bump sha.js from 2.4.11 to 2.4.12
2025-09-18 14:35:41 +02:00
dependabot[bot] 21b08b9922 chore(deps): bump brace-expansion
Bumps  and [brace-expansion](https://github.com/juliangruber/brace-expansion). These dependencies needed to be updated together.

Updates `brace-expansion` from 1.1.11 to 1.1.12
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

Updates `brace-expansion` from 2.0.1 to 2.0.2
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
- dependency-name: brace-expansion
  dependency-version: 2.0.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-18 12:25:31 +00:00
dependabot[bot] 876becef14 chore(deps-dev): bump sha.js from 2.4.11 to 2.4.12
Bumps [sha.js](https://github.com/crypto-browserify/sha.js) from 2.4.11 to 2.4.12.
- [Changelog](https://github.com/browserify/sha.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crypto-browserify/sha.js/compare/v2.4.11...v2.4.12)

---
updated-dependencies:
- dependency-name: sha.js
  dependency-version: 2.4.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-18 12:25:15 +00:00
dependabot[bot] 935c6cf6d2 chore(deps): bump vite and @angular/build
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) to 6.3.6 and updates ancestor dependency [@angular/build](https://github.com/angular/angular-cli). These dependencies need to be updated together.


Updates `vite` from 6.1.0 to 6.3.6
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.3.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.6/packages/vite)

Updates `@angular/build` from 19.2.0 to 19.2.17
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/19.2.0...19.2.17)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.6
  dependency-type: indirect
- dependency-name: "@angular/build"
  dependency-version: 19.2.17
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-18 12:23:49 +00:00
4gray 5c04deffaf Merge pull request #604 from 4gray/dependabot/npm_and_yarn/cipher-base-1.0.6
chore(deps-dev): bump cipher-base from 1.0.4 to 1.0.6
2025-09-18 14:23:38 +02:00
4gray 58fcc1f09f Merge pull request #607 from 4gray/dependabot/npm_and_yarn/axios-1.12.0
chore(deps): bump axios from 1.6.2 to 1.12.0
2025-09-18 14:22:01 +02:00
dependabot[bot] 27720269db chore(deps): bump axios from 1.6.2 to 1.12.0
Bumps [axios](https://github.com/axios/axios) from 1.6.2 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.6.2...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-11 22:43:05 +00:00
4gray fb507b932a feat(m3u): preserve favorites list after updating playlist 2025-09-09 09:18:31 +02:00
4gray 89316477be Merge pull request #576 from EaiWez/master
Added PORTUGUESE translation
2025-09-08 18:31:07 +02:00
dependabot[bot] 6b77d7d683 chore(deps-dev): bump cipher-base from 1.0.4 to 1.0.6
Bumps [cipher-base](https://github.com/crypto-browserify/cipher-base) from 1.0.4 to 1.0.6.
- [Changelog](https://github.com/browserify/cipher-base/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crypto-browserify/cipher-base/compare/v1.0.4...v1.0.6)

---
updated-dependencies:
- dependency-name: cipher-base
  dependency-version: 1.0.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 16:25:05 +00:00
4gray 944f69f34a chore: bump version to 1.0.0-beta.7 app-v1.0.0-7 2025-09-08 18:14:58 +02:00
4gray 1e7a9366ce chore: update vscode config 2025-09-08 18:14:46 +02:00
4gray f1dfef6d9f feat(xtream): improvements in xtream portal UI
- Replaced the existing favorites component HTML structure with a new app-favorites-layout component for better organization and maintainability.
- Removed unused styles from favorites.component.scss.
- Updated favorites.component.ts to utilize the new layout component and streamline imports.
- Enhanced detail-view styles for improved responsiveness and layout consistency.
- Adjusted navigation component to conditionally render elements based on playlist type.
- Introduced a new NavigationItem interface for better type safety in navigation items.
- Refactored search results component to utilize new search-form and search-result-item components for cleaner code and separation of concerns.
- Updated vod-details component to handle portal ID retrieval more robustly.
- Made various style adjustments across components for improved UI consistency.
2025-09-08 18:12:16 +02:00
4gray 87807dc1e7 feat(stalker): rework stalker portal UI
- Added `StalkerSearchComponent` for searching VOD and series content.
- Integrated search form and results grid with loading states.
- Implemented item selection and details display for VOD and series.
- Created a new `StalkerShellComponent` for navigation and routing.
- Established routing for Stalker module with nested routes for VOD, series, and favorites.
- Introduced a centralized `StalkerStore` for managing state and API interactions.
- Enhanced `StalkerSeriesViewComponent` to display detailed information about selected series.
- Updated styles for improved layout and user experience.
2025-09-08 18:10:36 +02:00
Wez b83c9e5022 Added PORTUGUESE translation 2025-05-27 02:49:03 -03:00
4gray 4759f62f71 feat(live-stream): add MPV player bar component to live stream layout 2025-05-18 14:32:24 +02:00
4gray 4330301d32 refactor(media): enhance error handling and event emissions for MPV and VLC process launches 2025-05-04 23:07:44 +02:00
4gray fed05e1a8b fix(favorites): correct type mapping in getFavorites method 2025-05-04 23:06:54 +02:00
4gray a7f4e97f6f refactor(favorites): restructure favorites component for improved category handling and UI layout 2025-05-04 23:06:45 +02:00
4gray 818e729c75 refactor(xtream): enhance error handling for empty categories and no category selected 2025-05-04 23:06:30 +02:00