Commit Graph

41 Commits

Author SHA1 Message Date
absidue 6334df0ad0
Fix channel page ID handling (#2457)
* Fix channel page ID check race condition

* Correctly handle the different channel ID types
2022-08-08 09:26:04 +00:00
ChunkyProgrammer 3321fa91e4
Add Parental Controls (#1456)
* start to implement some parental controls

* Hide share + Hide Unsubscribe

* Hide live streams

* fix hide live streams

* Add "parental-control-settings"

* Implement Hide Live Streams & Hide "Age Restricted"

* Hide live streams from Subscriptions + fix hide live streams from search

* enable safe search on showFamilyFriendlyOnly

* Move some settings from parental control to distraction free

* fix channel loading

* make parental control settings collapsible

* fix lint

* dont show age restricted on videos that are loading

* improve hide live videos

* code refactor

* grammar

* nvm im dumb

* use named placeholder for age restricted message

* improve readability

* change Hide Description to Hide Video Description

* update translated strings

* fix age restricted component

Co-authored-by: Preston <freetubeapp@protonmail.com>
Co-authored-by: peepopoggers <72892531+peepopoggers@users.noreply.github.com>
2022-06-21 08:14:15 +02:00
vallode 8d5aa4d855
Remove usage of fixed positioning for core UI elements (#2284)
* Use flex positioning instead of fixed

* Remove expand class

* Fix sticky description on video in mobile

* Sort CSS properties
2022-06-03 12:01:26 +00:00
vallode 86bdb5e2ae
Fix search input shortcut (#2140)
* Add handler for slash shortcut

* Fix lint errors

* Change Slash shortcut to Alt+KeyD
2022-04-07 22:45:22 -04:00
bob1520 dc4a828820
Fix addToSessionSearchHistory (#2124)
payload.data is already concatenated in Search.js
2022-03-26 09:20:22 +08:00
vallode 815c348948
Sync theme between windows (#2090)
* Sync expandSideBar across tabs

* Sync baseTheme, mainColor, secColor between windows

* Fix lint errors

* Fix lint errors: electric boogaloo
2022-03-05 03:09:32 -05:00
Svallinn daecf944fb
Store Revamp / Full database synchronization across windows (#1833)
* History: Refactor history module

* Profiles: Refactor profiles module

* IPC: Move channel ids to their own file and make them constants

* IPC: Replace single sync channel for one channel per sync type

* Everywhere: Replace default profile id magic strings with constant ref

* Profiles: Refactor `activeProfile` property from store

This commit makes it so that `activeProfile`'s getter returns
the entire profile, while the related update function only needs
the profile id (instead of the previously used array index)
to change the currently active profile.

This change was made due to inconsistency regarding the active profile
when creating new profiles.
If a new profile coincidentally landed in the current active profile's
array index after sorting, the app would mistakenly change to it
without any action from the user apart from the profile's creation.
Turning the profile id into the selector instead solves this issue.

* Revert "Store: Implement history synchronization between windows"

This reverts commit 99b61e6178.

This is necessary for an upcoming improved implementation of the
history synchronization.

* History: Remove unused mutation

* Everywhere: Create abstract database handlers

The project now utilizes abstract handlers to fetch, modify
or otherwise manipulate data from the database.

This facilitates 3 aspects of the app, in addition of
making them future proof:

- Switching database libraries is now trivial
Since most of the app utilizes the abstract handlers, it's incredibly
easily to change to a different DB library.
Hypothetically, all that would need to be done is to simply replace the
the file containing the base handlers, while the rest of the app
would go unchanged.

- Syncing logic between Electron and web is now properly separated
There are now two distinct DB handling APIs: the Electron one and
the web one.
The app doesn't need to manually choose the API, because it's detected
which platform is being utilized on import.

- All Electron windows now share the same database instance
This provides a single source of truth, improving consistency
regarding data manipulation and windows synchronization.

As a sidenote, syncing implementation has been left as is
(web unimplemented; Electron only syncs settings, remaining
datastore syncing will be implemented in the upcoming commits).

* Electron/History: Implement history synchronization

* Profiles: Implement suplementary profile creation logic

* ft-profile-edit: Small fix on profile name missing display

* Electron/Profiles: Implement profile synchronization

* Electron/Playlists: Implement playlist synchronization
2021-12-15 13:42:24 -05:00
ChunkyProgrammer 9bf4742cf9
Recognize more channel links (#1455)
* Update channelPattern regex

* redirect to relevant sub page

* Simplify regex

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* fix regression

- fix regression from commit 76f0d7512a11d57598bda6fd0142767aec6218af
- add comment to explain regex

Co-authored-by: Preston <freetubeapp@protonmail.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2021-11-02 11:45:50 +00:00
Jason 59828a101d
Implements color clues for history navigation arrows (#1579)
Co-authored-by: Preston <freetubeapp@protonmail.com>
2021-09-16 22:58:03 +00:00
PikachuEXE 1ff6617ff2
* Update app to hide top nav filter panel on page change (#1479) 2021-09-13 18:26:08 +01:00
ChunkyProgrammer 6ebb000cb3
Navigate to "subscriptions" on logo click (#1394)
* Updated logo to navigate to "subscriptions" on click

* accessibility improvements

* don't change backgroud color on hover
2021-08-24 22:14:37 +00:00
Svallinn 40d7278383
Invidious: Randomize instance on startup
There are now two separate settings related to Invidious instances:
- currentInvidiousInstance
- defaultInvidiousInstance

'currentInvidiousInstance' is a value that exists solely in memory
and it's the value used by the app to make the API calls,
while 'defaultInvidiousInstance' is the value that can be persisted
in the database by user action and will be used to initiate
the 'currentInvidiousInstance' on startup.

If the user has not saved a default value to the database,
'currentInvidiousInstance' is randomized from
a fetched list of viable candidates.
2021-07-03 02:55:56 +01:00
PikachuEXE a3cf210fca
Update Youtube URL handling to recongnize playlist ID in URL (#1260)
* * Update Youtube URL handling to recongnize playlist ID in URL

Only for format of `https://www.youtube.com/watch?v=vid&list=lid`

* ! Fix vue component prop declaration

A prop where the value can be undefined cannot be declared "required"
2021-05-31 13:23:35 +02:00
PikachuEXE 3bce276564
Implement search filter changed indicator (#1257)
* ! Fix app unable to load due to missing `getLocale` in `mapActions`

* Implement search filter changed indicator
2021-05-25 19:54:27 +02:00
Svallinn 6ccc7e9fa4
Refactor: Swap `dispatch`/`commit` calls with mapped actions/mutations 2021-05-22 00:56:32 +01:00
Svallinn af0353ea32
Refactor: Erase `@electron/remote` references and other dangerous calls
The `remote` module is deprecated and `@electron/remote` is unnecessary,
since the `ipcMain` and `ipcRenderer` can replace their functionality,
providing better performance and better security.

All other dangerous calls (mainly pulling main process constructs into
the renderer process) have also been removed.
2021-05-22 00:49:48 +01:00
Svallinn bd60d3c838
Top-Nav: Fix undefined/misplaced references 2021-05-11 16:28:26 +01:00
Preston 689479eb21 Channel Fixes and finish quality change logic 2021-04-30 17:18:45 -04:00
PikachuEXE 82aeaac734
* Update top nav search input to direct to channel panel when channel URL provided (#1221)
* $ Extract function which extract details from a Youtube URL

* * Update top nav handling to use extract function to handle input text if it's Youtube URL

* - Remove no longer used function
2021-04-28 19:21:16 +02:00
PikachuEXE ebc829cef0
Add "open new window" button (#1153) 2021-04-15 20:28:35 +02:00
Svallinn 7eda649293
Support for the 't' parameter in links (#1090)
This allows users to specify the timestamp of a video (in seconds)
- by inputting a link into the search bar
- by making use of the protocol link (freetube://), p.e in a browser
2021-03-06 14:03:40 -05:00
Preston 890d5b4a09 Allow pasting Playlist URLs in search to navigate straight to playlist page 2021-01-15 11:34:44 -05:00
Preston 15c73ee0b3 Allow UI Scaling and Have side bar open by default 2020-10-06 11:53:54 -04:00
Preston 508c1ec2ad Fix linting issues 2020-09-20 22:30:52 -04:00
Preston 8d22aaad34 Replace comment logic with new scraper (Still not working yet) 2020-09-20 21:59:59 -04:00
Preston b0d1ddf1ac Add notifications for new blog posts and app updates 2020-09-20 14:22:39 -04:00
Preston 1e035105d1 Finish Profile Logic and working subscriptions 2020-09-01 23:21:32 -04:00
stecorb 0262cbfb54 fix undesired search suggestions popup 2020-08-25 00:08:10 +02:00
Preston 4e92b378da Check for and remove all trailing commas 2020-08-04 22:18:39 -04:00
Worble 0f1adf10c7 encodeUriComponent search query before adding to router path 2020-08-03 21:34:16 +01:00
Preston 0428891773 Fix ft-input from rewriting itself when search suggestions are active 2020-06-19 15:58:59 -04:00
Preston 6e5a1a1085 Add toggle for search suggestions 2020-06-19 15:46:01 -04:00
Preston 28e436db72 Update Dependencies 2020-06-03 21:00:36 -04:00
Preston 42046a00de Add Error handling for search suggestions 2020-06-01 22:46:11 -04:00
Preston c8da6fec3d Add Search Suggestions and Custom Invidious Instance 2020-06-01 22:42:29 -04:00
Preston 2b476f4dc6 Add ability to paste YouTube links into the search bar to go directly to them 2020-05-31 23:13:03 -04:00
Preston 320c305949 Add Initial PWA Functionality 2020-04-13 22:59:25 -04:00
Cadence Ember 8bae0b30ab
Start refactoring top bar 2020-03-25 03:34:55 +13:00
Preston 2533161667 Start on Mobile view and add Web Build option 2020-03-24 09:22:29 -04:00
Preston 1d3915b3d2 Progress on Settings and Database setup 2020-02-26 22:10:56 -05:00
Preston ded6534d16 Push Latest Code to Repository 2020-02-16 13:30:00 -05:00