Commit graph

1354 commits

Author SHA1 Message Date
vlOd2
0d6aca41d0 actually set captions and also tweak main view to show translated from language as highlighted 2025-12-26 22:13:56 +02:00
vlOd
e02af4931c
Merge branch 'p-stream:production' into substranslate 2025-12-26 21:28:44 +02:00
vlOd2
a3dd8512bd implement translation task 2025-12-26 21:27:30 +02:00
Pas
eb7659caee fix uploading captions 2025-12-26 12:27:22 -07:00
vlOd2
f72c6214e8 Add languages to translation UI 2025-12-26 04:40:10 +02:00
vlOd2
6bc4907399 Begin work on translate subtitle view 2025-12-26 01:00:09 +02:00
Pas
9a846a8181 hide WatchPartyInputLink if backend requirement isnt met 2025-12-25 22:53:39 +02:00
vlOd2
5aea772477 Prepare for captions translation 2025-12-25 22:52:50 +02:00
Pas
2c9015dd57 hide WatchPartyInputLink if backend requirement isnt met 2025-12-25 13:00:59 -07:00
Pas
25139cc4cc Update MediaCard.tsx 2025-12-24 11:31:22 -07:00
Pas
b82c945b05 remove DisabledSources and DisableEmbeds since it doesnt work 2025-12-24 10:51:31 -07:00
Pas
342219b461 add minimal cards setting 2025-12-24 10:12:49 -07:00
Pas
41947f8da8 refactor buffering 2025-12-24 09:33:12 -07:00
Pas
f4f2f9196e update auto level stuff 2025-12-24 09:27:46 -07:00
Pas
afebab301f hide auto subtitle option if there are no subs 2025-12-23 23:27:41 -07:00
Pas
cb504ccf55 customize keyboard shortcuts! 2025-12-23 23:26:59 -07:00
Pas
22ddddfe27 trucate caption title 2025-12-22 12:02:17 -07:00
Pas
94921e58dd improve caption selection logic 2025-12-22 11:51:15 -07:00
Pas
d88feda474 add auto select subtitle button 2025-12-22 11:46:23 -07:00
Pas
bd40ad0582 add random subtitle key 2025-12-21 22:57:23 -07:00
Pas
5da9183260 Update CaptionsView.tsx 2025-12-21 22:47:10 -07:00
Pas
605abb9aab add mark as watched to movie details modal 2025-12-21 22:10:44 -07:00
Pas
6242d78759 scroll to active subtitle and add random button 2025-12-21 22:00:21 -07:00
Pas
fab4703550 Delete LanguageSelectionView.tsx 2025-12-21 21:51:19 -07:00
Pas
2fc2718413 captions lables 2025-12-21 21:42:13 -07:00
Pas
7f232a02b1 fix languages routing 2025-12-21 21:28:17 -07:00
Pas
e912d2d157 Merge branch 'captions-revamp' into production 2025-12-21 21:14:09 -07:00
Pas
eca44987f7 change next and prev keyboard shortcuts 2025-12-21 21:10:58 -07:00
Pas
869e4fca78 add previous and next ep shortcuts 2025-12-21 10:30:54 -07:00
Pas
18d604478b add userscript to onboarding and notif 2025-12-14 14:55:21 -07:00
Pas
f2b39b046c Add support bar and donation modal to homepage
Introduces a support bar component on the homepage to display project funding progress and encourage donations. Adds a modal with more information about supporting the project. Updates configuration to allow toggling the support bar and setting funding values. Updates links to the new donation page and adds related translations.
2025-12-09 12:04:46 -07:00
Pas
732d1d5ca3 Fix handling of undefined arrays in source selection
Updated filtering logic to safely handle cases where arrays like disabledSources, preferredSourceOrder, and preferredEmbedOrder may be undefined. This prevents runtime errors and ensures robust source and embed selection throughout the player and settings components.
2025-12-08 12:16:05 -07:00
Pas
b24ada9b77 Handle 'not found' state in embed source selection
Adds a 'notFound' state to useEmbedScraping and updates SourceSelectingView, SourceSelectPart, and SelectableLink to display a distinct UI when an embed source is not found. This improves user feedback for unavailable sources and refines error handling logic.
2025-12-06 21:48:28 -07:00
Pas
685deb6d0e Refactor captions selection to group by language
Captions selection UI now groups subtitles by language, allowing users to select a language first and then choose a specific subtitle. Added LanguageSelectionView and LanguageSubtitlesView components, updated SettingsOverlay and CaptionsView to support the new flow, and enhanced ChevronLink to show selection state. This improves usability for users with multiple subtitle options per language.
2025-12-05 22:50:04 -07:00
Pas
862df50885 remove captions search bar 2025-12-05 21:56:21 -07:00
Pas
0576c9fed0 Revert "feat: add skip source button during scraping"
This reverts commit bf14a85f34.
2025-12-03 18:20:04 -07:00
aq
bf14a85f34 feat: add skip source button during scraping
Implement user-initiated source skipping functionality:
- Add skipCurrentSource function to abort current source and all its embeds
- Create AbortController per source and propagate through provider stack
- Mark skipped sources and embeds with 'skipped' status
- Add skip button to scraping UI with translation support
- Filter out skipped source results in PlayerView to prevent playback
- Add fallback to direct fetch when proxy URL is unavailable
- Track failed sources and embeds in player store
- Add 'skipped' status type to ScrapeCard component

Technical details:
- AbortController is created per source in startEvent callback
- Signal is dynamically retrieved via wrapper functions
- Skipped sources continue to next source without showing error screen
- Skip button is passed through component hierarchy via callbacks
- Resume from specific source maintains skip state between attempts

Resolves user ability to manually skip slow or failing sources during media scraping
2025-12-04 01:02:20 +04:00
Pas
ac722880c4 update media card skeleton and on recomented carousel 2025-12-02 10:13:08 -07:00
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
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
b875bc93aa add granite subtitle source 2025-12-01 15:35:32 -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
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
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
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
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
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
04b6368a1d include delay in copy/paste subtitle feature 2025-11-09 10:50:53 -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
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
09f48baefa disable 0-9 keyboard shortcuts when ctrl or meta is held 2025-11-07 15:44:06 -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
d2e8b521f0 update dropdown styles 2025-11-06 23:29:12 -07:00
Pas
43a1b57b66 Update EditGroupModal.tsx 2025-11-06 11:48:23 -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
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
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
f74c4aca42 show HD right away from release api 2025-11-04 17:12:08 -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
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
3446d01e01 update progress so we dont save finished or unwatched media 2025-10-30 13:05:33 -06:00
Pas
1ab1b34187 Revert "Prevent settings from loading empty and rewriting to backend"
This reverts commit 3de8a35df4.
2025-10-28 11:16:00 -06:00
Pas
54060568ce update low performance mode to hide flare and show media card ellipse 2025-10-28 10:36:27 -06:00
Pas
84165370da create getProgressPercentage() function that handles greater than 100% values
Replace all old uses like
(itemToDisplay.progress.watched / itemToDisplay.progress.duration) * 100
2025-10-28 10:27:56 -06:00
Pas
ba59405612 refactor overlay stack and modals to allow multiple and better navigation
Some checks failed
Linting and Testing / Run Linters (push) Has been cancelled
Linting and Testing / Build project (push) Has been cancelled
Linting and Testing / Build Docker (push) Has been cancelled
overlays will not close previous ones so that they don't conflict and there can essentially be unlimited modal navigations. Done by passing the modal data to each modal using a global hook instead of relying on local data for each.
When navigating to a new path, it closes all modals.
On CollectionOverlay, when opening a new details modal overlay, it closes the previous using a custom ShowDetails handler.

This isn't the cleanest approach, but offers the greatest flexibility in the future
2025-10-26 23:58:04 -06:00
Pas
61593e7fe5 rewrite collections with simpler modal usage 2025-10-26 23:12:05 -06:00
Pas
295efd468e Merge branch 'pr/57' into dev 2025-10-26 21:25:07 -06:00
jaliaim
9dd88b7f7e Add collection feature to DetailModal for movies
Movies which are apart of a collection will now have a button to view the collection its apart of in the DetailModal, the overlay for the collection lets you filter them out by release, or rating.
2025-10-26 19:49:22 -07:00
Pas
422f46b406 add border caption style with thickness slider
Some checks are pending
Linting and Testing / Run Linters (push) Waiting to run
Linting and Testing / Build project (push) Waiting to run
Linting and Testing / Build Docker (push) Waiting to run
2025-10-25 14:39:15 -06:00
Pas
3de8a35df4 Prevent settings from loading empty and rewriting to backend
- No saves happen until backend settings are loaded and applied
- Automatic syncers wait for settings to be loaded before syncing
2025-10-25 12:07:15 -06:00
Pas
4d1dbe9b3d fix watchparty not getting reset when changing shows 2025-10-25 00:24:58 -06:00
Pas
d8070e5707 revert to old captions/sub handling 2025-10-24 22:34:44 -06:00
Pas
fe426a7413 update tips and add more keyboard shortcut info 2025-10-24 22:18:24 -06:00
Pas
3a31d172b1 add keyboard shortcut modal 2025-10-24 22:18:24 -06:00
Pas
99d3e11b80 pressing numbers jumps to that % 2025-10-24 22:18:24 -06:00
Pas
a16c84023f simplify advanced search since it was broken 2025-10-24 22:18:24 -06:00
Pas
af2c2b8acf update chromecast to use new proxy
also it was using the wrong proxy before 💀
2025-10-24 22:18:24 -06:00
Pas
e658d13ec5 attempt to fix airplay and add m3u8 proxy tool 2025-10-24 22:18:24 -06:00
Pas
328f50bbb9 Always emit time updates when seeking to prevent subtitle freezing 2025-10-24 22:18:24 -06:00
Pas
41a58f0045 always show time on progressbar instead of only with thumbnails 2025-10-24 22:18:24 -06:00
Pas
55b68c520e fix playbacksettingsview settigns not working correctly
didnt save to backend or apply thumbails. Also hid them when performance mode is enabled
2025-10-24 22:18:24 -06:00
Pas
8d7a61c5d4 increase watch party pull rate 2025-10-23 10:17:22 -06:00
Pas
0003ef1e98 Update WatchPartyResetter.tsx 2025-10-23 10:04:02 -06:00
Pas
83840594a6 watchparty goes to next episode with host 2025-10-23 09:50:51 -06:00
Chris
bf530902cc Updated MediaSession.tsx
A new and more cleaner MediaSession.tsx also fixed TypeError: Failed to execute 'setPositionState' on 'MediaSession': The provided duration cannot be NaN.
2025-10-23 09:17:42 -06:00
Pas
df2ec49ed3 fix z index issues 2025-10-20 15:42:01 -06:00
Pas
8c6d5031d5 fix stutter by moving intersect observer to media card
Instead of unloading the carousel, it now unloads the media card rendering while retaining sizing and metadata, but still saves on resources.
2025-10-20 15:37:26 -06:00
Pas
f0a35f6408 Add the ability to disable sources and embeds 2025-10-19 18:33:26 -06:00
Pas
40eb846a68 Revert "Delete duplicate code and unify source selecting views"
This reverts commit 28d03a06a5.
2025-10-19 18:32:58 -06:00
Pas
28d03a06a5 Delete duplicate code and unify source selecting views
There were two because one was used on the atoms settings menu and the other was in place of ScrapePart prior to video playback
2025-10-19 18:11:45 -06:00
Pas
9a6bb041b2 Make custom source effect source select menus 2025-10-19 18:08:00 -06:00
Pas
6355fae614 disable context menu on player 2025-10-19 18:02:20 -06:00
Pas
0e8850f419 attempt to fix progress resetting for no reason 2025-10-19 18:00:30 -06:00
Pas
5bf1d5f1ff update navigation z index 2025-10-19 17:51:19 -06:00
Pas
2586e4c9d3 Update CaptionsView.tsx 2025-10-15 10:19:33 -06:00