Commit graph

3515 commits

Author SHA1 Message Date
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
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
1e00777c64 update migration to support settings
groups and favorite eps are still broken
2025-11-29 14:41:52 -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
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
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
Pas
067b6e43bc Add nickname to user account settings
Introduces a nickname field to user accounts, updates the backend user interface, and extends the settings UI to allow users to view and edit their nickname. Localization strings and state management have been updated accordingly to support this new field.
2025-11-17 10:49:20 -07:00
Pas
5842af7029 remove /lifetime 2025-11-16 13:41:37 -07:00
Pas
f75db9cf99 prevent multiple requests 2025-11-16 13:31:31 -07:00
Pas
ff7a5f4947 update trakt api 2025-11-16 13:10:16 -07:00
Pas
054612b919 Revert "trakt stuff"
This reverts commit f6e9f2be67.
2025-11-16 12:48:28 -07:00
Pas
f6e9f2be67 trakt stuff 2025-11-16 12:48:05 -07:00
Pas
8fa57d9f2c Revert "Update traktApi.ts"
This reverts commit c907ef0c51.
2025-11-15 22:10:08 -07:00
Pas
796b3e85cc Update VideoTesterView.tsx 2025-11-15 12:41:06 -07:00
Pas
c907ef0c51 Update traktApi.ts 2025-11-15 12:31:36 -07:00
Pas
dd2422f852 add custom headers to dev video test view 2025-11-15 12:26:44 -07:00
zisra
3c9f4b246f
Merge branch 'p-stream:production' into production 2025-11-14 21:12:00 +08:00
Pas
f1065e9602 Revert "admin page add m3u8 workers"
This reverts commit 81b67dae90.
2025-11-13 10:14:00 -07:00
Isra
a6ecf826a6 Trancript view (incomplete) 2025-11-13 10:28:44 +08:00
Pas
467c4ea202 Revert "feat: hide the arrow buttons on scroll lists when at either end of the list (#61)"
This reverts commit 598f752b12.
2025-11-12 12:07:57 -07:00
Rj Manhas
598f752b12
feat: hide the arrow buttons on scroll lists when at either end of the list (#61) 2025-11-12 12:03:10 -07:00
zisra
a14b3755cf
Handle backtick command earlier + Ignore commands when cmd/atl is pressed + prevent -0.0 as subtitle delay (#62)
* Use 12 hour clock + box around time

* Fix ref

* Handle backtick earlier + Ignore commands when cmd/atl is pressed + prevent -0.0 as subtitle delay

* Exclude thumbnail from fade effect

* Bring back comments
2025-11-12 12:02:41 -07:00
Isra
2718de34eb Bring back comments 2025-11-12 13:26:07 +08:00
zisra
d4f705c599
Merge branch 'p-stream:production' into production 2025-11-12 13:24:57 +08:00
Pas
8d8a5bdb66 Revert "feat: hide the arrow buttons on scroll lists when at either end of the list"
This reverts commit 4f781f9736.
2025-11-11 12:41:12 -07:00
Pas
ea7caa20d9 Refactor Native Subtitles feature. Fix playback on ios 2025-11-11 11:46:46 -07:00
Pas
0baa20ba7a
Update KeyboardEvents.tsx 2025-11-10 20:20:20 -07:00
Isra
8ee39a2774 Exclude thumbnail from fade effect 2025-11-11 09:26:31 +08:00
Pas
62772b6bd6 Merge branch 'pr/63' into production 2025-11-10 15:04:29 -07:00
Pas
cb1964492e adjust confidence based on adjustments to prior skip 2025-11-10 14:55:13 -07:00
groknt
b33f54e960
fix spacebar boost 2025-11-10 21:53:32 +00:00
Pas
fcf9fbb56e add skip confidence 2025-11-10 14:52:31 -07:00
Pas
aeb131b26d Update SkipTracker.tsx 2025-11-10 14:39:47 -07:00
Pas
7e508cb513 fix subtitle delay getting reset when double pressing to copy 2025-11-10 13:57:46 -07:00
Pas
515c419cb2 delete unused app.tsx. Why we had two... idk 2025-11-10 13:49:48 -07:00
Pas
1c9f02ba8e fix native captions being initialized wrong for mp4 2025-11-10 13:45:05 -07:00
Pas
235a6998db show check for pasted subtitle option 2025-11-10 12:32:40 -07:00
Pas
b5b53a90f5 add velora skip api 2025-11-10 10:58:38 -07:00
Isra
9da140444c Handle backtick earlier + Ignore commands when cmd/atl is pressed + prevent -0.0 as subtitle delay 2025-11-09 21:23:53 -07:00
Pas
67aba5f7af give detailsmodal the flare border 2025-11-09 16:22:46 -07:00
Pas
bc7886caac add comment about safari thumbnails not build possible 2025-11-09 15:16:08 -07:00
Pas
b8ca5c3f02 Shuffle thumbnail generation queue for even distribution
Updated makeQueue to shuffle thumbnail indices before mapping them to positions, ensuring a more even and randomized distribution of thumbnails.
2025-11-09 15:10:11 -07:00
Pas
bd491f2d14 Improve thumbnail generation and quality selection
Refactors thumbnail queue to generate 127 evenly distributed thumbnails instead of using a layered approach. Adds a new selectLowestQuality function to consistently select the lowest available video quality for thumbnail extraction, replacing the previous selectQuality usage.
2025-11-09 15:02:27 -07:00
Pas
c7dcec2560 Improve autoplay handling after PiP and fullscreen on iOS
Adds logic to attempt autoplay when entering Picture-in-Picture or fullscreen modes, particularly to address autoplay restrictions on iOS. Introduces a flag to track if autoplay should be retried after loading, and ensures the UI updates appropriately if autoplay remains blocked.
2025-11-09 13:48:28 -07:00
Pas
3b5a1bb76e Remove word override "i"
Removed hard-coded "i" -> "I" override as it's language-specific and breaks languages like Polish where "i" means "and"
2025-11-09 12:53:23 -07:00
Pas
3cfd44579c encode queries to fix some issues 2025-11-09 12:50:03 -07:00
Pas
0c08052b8f remove top and bottom controls when caption bg blur is disabled to prevent hdr flicker
Updated TopControls and BottomControls to render the background gradient transitions only if backgroundBlurEnabled is true in the subtitle store. This ensures the UI matches the subtitle styling preferences.
2025-11-09 12:47:47 -07:00
Pas
ebfa034cb2 fix native subtitle streaming 2025-11-09 12:21:12 -07:00
Pas
9fec88fc7d Revert "Update 'Connections' to 'Connections and Sources' in en.json"
This reverts commit 70534fa080.
2025-11-09 10:52:54 -07:00
Pas
04b6368a1d include delay in copy/paste subtitle feature 2025-11-09 10:50:53 -07:00
Pas
35312114be fix pip button not displaying on mobile 2025-11-08 14:26:25 -07:00
Pas
7606c1eebb update settings dividers 2025-11-08 12:43:56 -07:00
Pas
b6a8028eff refactor and simplify search bar positioning 2025-11-08 12:39:28 -07:00
Pas
544fe97c5e refactor scrolling with a reusable component 2025-11-08 11:32:57 -07:00
Pas
1199a21df5 fix reorder sources button on player 2025-11-08 11:27:24 -07:00
Pas
bf1bb2775b detect all images and add a fade in animation on image loads 2025-11-08 10:58:54 -07:00
Pas
ba7c079b75 fix sticky and scrolling of SidebarPart 2025-11-07 23:20:38 -07:00
Pas
14a46c4b85 Update index.css 2025-11-07 23:08:45 -07:00
Pas
3d23a50a2c Update global scrollbar styles to be cleaner
Introduces custom scrollbar styling for a thinner, rounded appearance with smooth color transitions and improved aesthetics. Applies consistent scrollbar styles across browsers and enhances user experience.
2025-11-07 23:04:33 -07:00
Pas
f7c1125327 Update RegisterCalloutPart.tsx 2025-11-07 22:59:56 -07:00
Pas
c792d4b829 Split settings pages into tabs, hiding other sections for accessibility
Introduces a category selection mechanism for the settings page, allowing users to filter settings by category or view all settings. Updates the sidebar to include an 'All Settings' option and highlights the selected category. Adjusts the settings layout and section rendering logic to respect the selected category or search query.
2025-11-07 22:57:25 -07:00
Pas
70534fa080 Update 'Connections' to 'Connections and Sources' in en.json 2025-11-07 22:53:22 -07:00
Pas
88f975885c update app info part to be at bottom of settings on mobile 2025-11-07 22:39:56 -07:00
Rj Manhas
4f781f9736 feat: hide the arrow buttons on scroll lists when at either end of the list 2025-11-07 22:21:34 -07:00
Pas
cd4daea6f3 prettier 2025-11-07 16:50:35 -07:00
Pas
2017cb2f26 Merge branch 'production' into dev 2025-11-07 16:36:57 -07:00
Pas
9bb54ee17e fix manual source selection resetting progress 2025-11-07 16:23:28 -07:00
Pas
81b67dae90 admin page add m3u8 workers 2025-11-07 15:57:11 -07:00
Pas
09f48baefa disable 0-9 keyboard shortcuts when ctrl or meta is held 2025-11-07 15:44:06 -07:00
Pas
c6873907ef esc now closes the caption preview 2025-11-07 15:41:07 -07:00
Pas
665d06c8e0 fix caption preview z index 2025-11-07 15:40:07 -07:00
Pas
0ed041fe93 update subtitle defaults 2025-11-07 15:39:33 -07:00
Pas
66f0a3b95b workaround for disabling caption blur to fix flicker issues 2025-11-07 15:27:55 -07:00
Pas
29abc0cf25 Revert "fix some grey overlays on the video player with some browsers"
This reverts commit 324cff18cc.
2025-11-07 15:08:49 -07:00
Pas
1f5049f7a8 update dropdown styles 2025-11-07 13:00:56 -07:00
Pas
95270201cb Update LinksDropdown.tsx 2025-11-06 23:37:23 -07:00
Pas
d8df4340e4 update last used source 2025-11-06 23:33:39 -07:00
Pas
09ee0fa8ff Update en.json 2025-11-06 23:31:13 -07:00
Pas
d2e8b521f0 update dropdown styles 2025-11-06 23:29:12 -07:00
Pas
35574c17c6 remove reorder buttons from bookmark parts 2025-11-06 11:56:09 -07:00
Pas
43a1b57b66 Update EditGroupModal.tsx 2025-11-06 11:48:23 -07:00
Pas
a3a4823bc6 clean up Appearance Part 2025-11-06 11:48:18 -07:00
Pas
ddcabc14de move group reorder handlers to the modal itself 2025-11-06 11:48:15 -07:00
Pas
9ce46dd3c7 update input border styles 2025-11-06 10:06:43 -07:00
Pas
0e4724f9bd Revert "add drag and drop bookmark reordering"
This reverts commit c90e77ddf3.
2025-11-06 00:44:25 -07:00
Pas
c90e77ddf3 add drag and drop bookmark reordering 2025-11-06 00:28:38 -07:00
Pas
1b073006f4 add edit group and edit bookmarks modals 2025-11-05 23:57:56 -07:00
Pas
2ad6b8b942 use random group icon for collection group 2025-11-05 22:59:48 -07:00
Pas
abd661e8a2 bookmark entire collection as a group 2025-11-05 22:54:19 -07:00
Pas
c3d653ce8d fix z index on AdsPart.tsx 2025-11-05 22:40:19 -07:00
Pas
15c3f4949b stop media carousels in discover from loading right away
when heading to the homepage for the first time, it took a realllllly long time to load. This fixes that with intersection stuff
2025-11-05 22:29:38 -07:00
Pas
7d5c88c0a1 log skips to new api 2025-11-05 14:14:43 -07:00
Pas
324cff18cc fix some grey overlays on the video player with some browsers 2025-11-05 10:26:15 -07:00
Pas
ecb5684529 fix typo 2025-11-04 18:09:00 -07:00
Pas
f74c4aca42 show HD right away from release api 2025-11-04 17:12:08 -07:00
Pas
a7889d568b load all movie lists from trakt one after another 2025-11-04 11:05:55 -07:00
Pas
7643b719ca
Prettier 2025-11-03 22:58:18 -07:00
Pas
9e1aa5e9a9
Revert hide settings button when not playing 2025-11-03 22:49:12 -07:00
Pas
80d2ae13bd fix watchparty join shortcut on home page 2025-11-03 15:57:31 -07:00
Pas
65246b8be9 fix the source getting reset when we change sources
Changing sources causes a non fatal error, but we were clearing the last successful source when any error happened. Instead we can clear if it's fatal.
2025-11-03 14:22:53 -07:00
Pas
0c192d2582 bug fix the last successful source feature 2025-11-03 12:09:27 -07:00
Pas
d575d71108 add lastSuccessfulSource feature
to sort the last successful source to the top
2025-11-02 22:10:48 -07:00
Pas
627d66eced add paste and copy subtitle options 2025-11-02 21:54:45 -07:00
Pas
bef85aa741 let me hold to widescreen on bigger screens 2025-11-02 11:38:41 -07:00
Pas
82757248d5 update missing home section order setting syncer 2025-11-02 11:06:19 -07:00
Pas
1cdaed5625 add turnstile to skip api 2025-11-02 10:54:35 -07:00
zisra
ac5d4443b1
Use 12 hour clock + add box around time (#58)
* Use 12 hour clock + box around time

* Fix ref
2025-11-01 17:21:10 -06:00
Pas
6f3437277d refactor discover and trakt 2025-10-31 21:38:12 -06:00
Pas
3ac786011f update trakt format 2025-10-31 18:34:14 -06:00
Pas
696e17be17 add halloween movie list 2025-10-31 17:40:21 -06:00
Pas
110a47f86d remove progressCleanupPart for now 2025-10-31 17:38:48 -06:00
Pas
d28f25118a Update ProgressCleanupPart.tsx 2025-10-30 13:28:07 -06:00
Pas
afccb7fa4d add progress cleaning tool to admin page 2025-10-30 13:05:33 -06:00