Commit graph

4746 commits

Author SHA1 Message Date
Pas
00d0996b8f update some modal styles 2025-12-01 18:44:58 -07:00
Pas
24413a805d remove trailer button and move the imdb trailers to the new carousel 2025-12-01 18:41:28 -07:00
Pas
e7e49f81cc add similar media carousel to details modal 2025-12-01 18:26:21 -07:00
Pas
6997acd71a add trailer carousel to details modal 2025-12-01 17:43:44 -07:00
Pas
4d5a5151f1 fix rotten tomato scraper 2025-12-01 17:19:13 -07:00
Pas
ebdb931d59 Add lazy loading for media carousels using Intersection Observer
Introduces a reusable useIntersectionObserver hook and a LazyMediaCarousel component to defer rendering of carousels until they are near the viewport. Updates discoverContent and AllMovieLists to use LazyMediaCarousel, improving performance by only loading carousels as needed. Priority carousels (e.g., top of page) are loaded immediately.
2025-12-01 16:57:17 -07:00
Pas
b464c2195e make sure enableAutoResumeOnPlaybackError syncs to backend 2025-12-01 16:22:02 -07:00
Pas
be6aec2c86 Refactor MediaCard for internal lazy loading and fix intersection logic
Moved intersection observer logic for lazy loading images from MediaCarousel into MediaCard, allowing each card to handle its own image loading. Simplified MediaCarousel by removing its intersection observer and related loading state, improving component separation and maintainability.
2025-12-01 16:15:45 -07:00
Pas
5e1bd09af5 use labelToLanguageCode from providers repo
it's now exported
2025-12-01 15:47:56 -07:00
Pas
69af09a8de update providers 2025-12-01 15:43:58 -07:00
Pas
d2768f558c Refactor externalSubtitles into modular files
Split the monolithic externalSubtitles.ts into separate modules for each provider (febbox, opensubtitles, vdrk, wyzie) and a new index.ts for orchestration and exports. This improves maintainability and clarity by isolating provider-specific logic.
2025-12-01 15:43:06 -07:00
Pas
b875bc93aa add granite subtitle source 2025-12-01 15:35:32 -07:00
Pas
d527446eb4 add christmas trakt list 2025-12-01 15:05:23 -07:00
Pas
562d1fdd1c add frost and christmas themes 2025-12-01 15:00:08 -07:00
Pas
ad592edc65 Track and handle failed embeds in player sources
Introduces tracking of failed embeds per source in the player store, adds logic to mark embeds as failed on playback errors, and filters out failed embeds when selecting sources. Also ensures failed sources and embeds are cleared when a working source is found. This improves error handling and fallback behavior for sources with multiple embeds.
2025-12-01 12:47:15 -07:00
Pas
33b08b86cd clear embed id when switching sources 2025-12-01 12:42:28 -07:00
Pas
a39c020b34 only disable source if it's fatal 2025-12-01 12:39:10 -07:00
Pas
216c7832eb fix lint error 2025-12-01 12:38:59 -07:00
Pas
f8afa2c501
Increase sync progress intervals to 10s
From 5s
2025-11-30 20:59:52 -07:00
Pas
c460c15966 Track and skip failed sources during playback
Introduces a mechanism to track failed sources in the player store. When a playback error occurs, the current source is marked as failed and subsequent attempts will skip these sources. Failed sources are cleared when a working source is found. UI text is updated to reflect the new behavior.
2025-11-30 17:50:28 -07:00
Pas
4ced25623f Add auto-resume on playback error setting and logic
Introduces a new user preference to automatically resume playback from the next available source when a playback error occurs. Updates settings UI, preferences store, and player error handling to support this feature, including new translations and backend support. Manual resume remains available if the feature is disabled.
2025-11-30 17:28:41 -07:00
Pas
32f7178a1e fix source selection part not respecting disabled sources 2025-11-30 16:30:15 -07:00
Pas
2850ef293c delete duplicate config file 2025-11-30 16:29:08 -07:00
Pas
03d74e4ecd Revert "Inject popup ad for xprime sources"
This reverts commit b6be227ab3.
2025-11-30 11:14:12 -07:00
Pas
b6be227ab3 Inject popup ad for xprime sources
Xprime's own site has ads, but people have found pstream (which doesnt have ads) and moves here since there are no ads. Xprime is losing money and is finding it difficult to support the proxies and servers.

clean up ad for xprime when switching sources or destroying player

new method for tracking if ad is shown

Revert "Track XPrime ad script load state in player"

This reverts commit c50bdd9ad8.

Track XPrime ad script load state in player

Adds xprimeAdScriptLoaded state and setter to the player store. Updates XPrimeAdOverlay to only show when the ad script is loaded, and base display logic to set the load state based on script events. This ensures the overlay only appears when the ad script is ready.

remove infinite loop

When conditions are met → show becomes true → timer starts
Timer fires after 5s → show becomes false
Effect re-runs (because show changed) → show becomes true again → new timer starts
Loop repeats infinitely

Refactor XPrime ad injection so it loads when the source changes
2025-11-30 11:14:03 -07:00
Pas
1f53701bab minor update 2025-11-30 11:13:51 -07:00
Pas
1e00777c64 update migration to support settings
groups and favorite eps are still broken
2025-11-29 14:41:52 -07:00
Pas
2252ab9fed
Merge pull request #64 from zisra/production
Transcript menu item
2025-11-26 13:00:09 -07:00
Pas
c6182e6ebb simplify scrolling and cleanup some bugs 2025-11-26 12:59:40 -07:00
Pas
4151b2fdec add gradient to top and bottom 2025-11-26 12:52:41 -07:00
Pas
64abb25560 move to captions view 2025-11-26 12:33:24 -07:00
Pas
19af760317 Update TranscriptView.tsx 2025-11-26 12:26:00 -07:00
Pas
c74fbe385d Revert "Move to correct menu"
This reverts commit 5caae343df.
2025-11-26 12:23:19 -07:00
Pas
1a1974ad95 update providers 2025-11-25 11:31:19 -07:00
Isra
5caae343df Move to correct menu 2025-11-25 09:11:28 +08:00
Isra
d2acf73793 Merge branch 'production' of https://github.com/zisra/p-stream into production 2025-11-24 17:23:18 +08:00
Isra
7ae3c324b7 Proper scrolling 2025-11-24 17:23:17 +08:00
zisra
7ca6d31fb5
Merge branch 'p-stream:production' into production 2025-11-24 17:15:26 +08:00
Pas
1025ea087d Fix view more pages
more content, now shows correct media when trakt fails and also scrolls to the top
2025-11-23 15:27:06 -07:00
Pas
6a3d81a048 Update en.json 2025-11-19 18:09:13 -07:00
Pas
ae63641d16 add notice 2025-11-19 18:00:29 -07:00
Pas
fa7b70b52a Update useSettingsState.ts 2025-11-19 17:56:36 -07:00
Pas
a26cab94bf Update Settings.tsx 2025-11-19 17:56:36 -07:00
Pas
c94d7bc243 fix more of the debrid input and testing 2025-11-19 17:56:36 -07:00
Pas
0a7816ff77 Update debrid key entry 2025-11-19 17:56:36 -07:00
Pas
a4f48b3e97 Update SetupPart.tsx 2025-11-19 10:52:10 -07:00
Pas
146d35aa11 update providers 2025-11-18 11:36:36 -07:00
Pas
c329118e50 Handle device name decryption errors gracefully
Added error handling for device name decryption in Avatar, LinksDropdown, Settings, and DeviceListPart components. If decryption fails, a fallback 'Unknown device' message is shown using a new translation key. This improves user experience by preventing crashes or blank fields when device name decryption fails.
2025-11-17 13:30:25 -07:00
Pas
a76f25fcea make watchparty use new nickname instead of account id 2025-11-17 13:08:58 -07:00
Pas
04a08af5e9 fix account nickname not updating or displaying 2025-11-17 13:05:57 -07:00