Commit graph

862 commits

Author SHA1 Message Date
Pas
8a622f0301 Update OnboardingExtension.tsx 2025-12-15 11:49:37 -07:00
Pas
f0ce33f3ca
Update OnboardingExtension.tsx 2025-12-15 11:45:46 -07:00
Pas
18d604478b add userscript to onboarding and notif 2025-12-14 14:55:21 -07:00
Pas
803bfc5df7 Update SupportBar.tsx 2025-12-09 12:27:17 -07:00
Pas
560a736e84
Update SupportBar.tsx 2025-12-09 12:11:49 -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
e4b25d4a09 fix carousel padding even more 2025-12-06 21:54:32 -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
10bde63575 Improve error handling in account metrics fetch
Added checks for missing BACKEND_URL and improved error handling in getAccountNumber and getAllAccounts functions. Now returns 'N/A' on fetch errors or missing data, and sets state to 'N/A' in catch blocks to prevent crashes.
2025-12-06 21:41:47 -07:00
Pas
b927c6971e fix random errors 2025-12-06 21:17:19 -07:00
Pas
84b1de91c4 fix PWA searchbar padding 2025-12-05 16:06:08 -07:00
Pas
c1bdcdf9df Adjust carousel title paddings and margins for layout consistency 2025-12-04 20:04:38 -07:00
Pas
bf359916b6 Add HIDE_PROXY_ONBOARDING config and onboarding UI updates
Introduces the HIDE_PROXY_ONBOARDING config option to conditionally hide proxy onboarding steps in the UI. Updates OnboardingPage to use this config for rendering logic and adjusts card layouts accordingly. Also adds support for displaying additional sources heading when relevant, and updates English locale strings for clarity.
2025-12-03 18:33:55 -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
c6c916f293 fix m3u8 proxy test error 2025-12-01 19:09:59 -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
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
a39c020b34 only disable source if it's fatal 2025-12-01 12:39:10 -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
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
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
ae63641d16 add notice 2025-11-19 18:00:29 -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
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
796b3e85cc Update VideoTesterView.tsx 2025-11-15 12:41:06 -07:00
Pas
dd2422f852 add custom headers to dev video test view 2025-11-15 12:26:44 -07:00
Pas
f1065e9602 Revert "admin page add m3u8 workers"
This reverts commit 81b67dae90.
2025-11-13 10:14:00 -07: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
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
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
ba7c079b75 fix sticky and scrolling of SidebarPart 2025-11-07 23:20:38 -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
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
2017cb2f26 Merge branch 'production' into dev 2025-11-07 16:36:57 -07:00
Pas
81b67dae90 admin page add m3u8 workers 2025-11-07 15:57:11 -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
35574c17c6 remove reorder buttons from bookmark parts 2025-11-06 11:56:09 -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
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
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
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
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
d575d71108 add lastSuccessfulSource feature
to sort the last successful source to the top
2025-11-02 22:10:48 -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
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
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
Pas
b20b183545 fix febbox input not fitting on mobile 2025-10-28 17:27:01 -06:00
Pas
51a8f3a7a1 hide player settings button when not playing 2025-10-28 12:59:39 -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
7ea5f28b76 Revert "fix settings save confirmation not showing"
This reverts commit 21475315d2.
2025-10-28 11:15:55 -06:00
Pas
21475315d2 fix settings save confirmation not showing 2025-10-28 10:34:50 -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
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
bd21f7d104 update tips number
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
downside is we wont show other language's tips that dont have eng translations
2025-10-25 00:47:57 -06:00
Pas
5c9f8eea8a fix airplay not being shown on some screen sizes 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
71a3d91b2a add save confirmation to admin page
fixes embed order not propagating to backend
2025-10-24 22:18:24 -06:00
Pas
df2ec49ed3 fix z index issues 2025-10-20 15:42:01 -06:00
Pas
d756108c85 add settings search bar 2025-10-20 15:37:26 -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
1b5231ae72 Move admin link (panel) to settings sidebar 2025-10-19 19:14:01 -06:00
Pas
d0db810e2a add remaining (missing) settings to all the parts 2025-10-19 18:43:35 -06:00
Pas
f0a35f6408 Add the ability to disable sources and embeds 2025-10-19 18:33:26 -06:00