Commit Graph

336 Commits

Author SHA1 Message Date
absidue 47613d8c37
Fix no sources error on the watch page (#3019) 2023-01-02 10:03:21 +08:00
absidue 2f01dd4277
Parse channel handles in video descriptions (#3011) 2022-12-31 11:07:53 +01:00
absidue 1d1e6eacea
Switch from sync fs APIs to fs/promises (#2991)
* Switch from sync fs APIs to fs/promises

* Fix error and await storyboard creation

* Start a new file for filesystem helpers starting with pathExists
2022-12-29 01:19:48 +00:00
absidue b208e496ad
Migrate the trending page to YouTube.js (#3005)
* Migrate the trending page to YouTube.js

* Move more of the logic to the local API file

* This function doesn't need to be exported anymore
2022-12-27 15:15:50 +00:00
absidue bef610f91b
Import the product name instead of using a define for it (#3003) 2022-12-27 10:15:15 +08:00
absidue b77455ec81
Lazy load playlist components to improve performance (#2993) 2022-12-26 19:15:55 +01:00
ChunkyProgrammer 42ef2a3e26
Improve accessibility of Watch View (#2986)
* Improve Watch page accessibility

Co-Authored-By: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* fix title issue, remove unused gotochannel function

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2022-12-23 16:44:54 +00:00
Simon Epstein 7ea690bf9d
Set width so that overflow css rules are applied. (#2988)
Added overflow-wrap break word so that more of the clipped title is
displayed.

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2022-12-22 15:10:30 +01:00
absidue 37da66be26
Cleanup and simplify the settings password code (#2982) 2022-12-20 05:58:44 +00:00
Simon Epstein 7c4dfefb45
Remove select-on-focus from ft-input (#2974)
* 2622 Remove select-on-focus behaviour from ft-input.

Replace this with show-clear-text-button.

* 2622 Make channel search a little wider so placeholder not truncated.

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2022-12-19 13:01:09 +00:00
absidue dd18634fdc
Pass playlist data from playlist page to watch page (#2970)
* Pass playlist data from playlist page to watch page

* Remove unused properties
2022-12-19 11:43:28 +01:00
Simon Epstein dbb54737c4
Password protect settings (#2932)
* Hide unsubscribe button on channel list if this is set in parental
controls.

* Fix github linting errors

* Removed trailing whitespace.

* Reverted yarn.lock change

* Remove package-lock.json

* Added support for password protecting settings.

* Push password handling code inside password-settings component.

* Added incorrect password message

* Replace update method with watch.

* Use updateSettingsPassword to commit value to database.

* Move password settings to the bottom (review comment)

* Moved unlock into separate component (review feedback)

* Styling password dialog

* Removed incorrect (and unused) prop value - review comment.

* Removed unused component imports

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2022-12-17 15:28:17 +01:00
absidue c9124359a5
Migrate playlists on the watch page to YouTube.js (#2969) 2022-12-16 18:08:56 +01:00
absidue ac509bd17b
Make some more elements right-clickable (#2968) 2022-12-16 05:06:18 +01:00
absidue 5b04352bdf
Implement playlist pagination for the local API (#2956)
* Implement playlist pagination for the local API

* Check the info source when loading more comments so that backend fallback works
2022-12-14 09:12:52 +08:00
absidue 36fc9468c2
Migrate the Playlist page to youtubei.js (#2903)
* Migrate the Playlist page to youtubei.js

* Make the extraction more tolerant to missing info
2022-12-13 14:19:16 +01:00
absidue a88bafeb27
Make getUserDataPath, getPicturesPath and getSystemLocale helpers (#2920) 2022-12-06 12:37:44 +01:00
Simon Epstein a433c04037
Hide unsubscribe button on channel list if this is set in parental controls. (#2906)
* Hide unsubscribe button on channel list if this is set in parental
controls.

* Fix github linting errors

* Removed trailing whitespace.

* Reverted yarn.lock change

* Remove package-lock.json

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2022-12-04 12:43:04 +01:00
M. Ian Graham 207d72a9c2
Add setting: Distraction Free Settings → Hide Upcoming Premieres (#2853) 2022-11-24 13:31:53 +01:00
absidue 24e67bac87
Cleanup unused css and imports on the About page (#2867) 2022-11-15 09:38:47 +08:00
Alhuin 3d473d90ef
#1414 share channels (#2859)
* #1414: Add share button ton Channel view
- Update src/renderer/components/ft-share-button to handle Channels
- Update english locale entries for 'Share channel'

* #1414: Add share button ton Channel view
- update youtubeShareURL() in src/renderer/components/ft-share-button

* #1414: Add share button ton Channel view
- implemented the new button in src/renderer/views/Channel

* #1414: Add share button ton Channel view
- renamed mediaType to shareTargetType in ft-share-button.js
- switched logic from !isChannel to isVideo in ft-share-button.vue

* #1414: Add share button ton Channel view
- renamed target type in ft-share-button.vue
- updated implementation in Channel.vue
2022-11-14 12:10:47 +01:00
absidue e02594629e
Cleanup webpack aliases (#2846) 2022-11-09 07:34:40 -05:00
absidue 2b233815ec
Move colours and the colour functions to their own file (#2844) 2022-11-09 05:57:48 +00:00
absidue 5addd304ef
Localise subscriber count on the watch page (#2841) 2022-11-08 11:47:02 +00:00
absidue b3bf37132d
Replace lodash.isequal with simple comparison (#2827) 2022-11-05 15:13:25 +00:00
absidue 56416700bc
Allow webpack to omit development only dependencies properly (#2828) 2022-11-05 14:44:21 +00:00
absidue e228182d8a
Move openInternalPath and formatDurationAsTimestamp to utils (#2794)
* Move openInternalPath and formatDurationAsTimestamp to utils

* Make openInternalPath take an object parameter again

* Fix small mistake
2022-11-04 07:19:51 +00:00
absidue 6b0724f7e2
Add video numbering to playlists (#2811) 2022-11-04 07:17:14 +00:00
absidue 8f55a648b1
Cleanup unused component imports (#2773) 2022-10-27 09:34:39 +00:00
absidue 2c78970f0e
Fix chapters extraction erroring (#2774) 2022-10-27 09:34:04 +00:00
absidue 697bed23ed
Disable http disk cache and implempent in-memory image cache (#2498)
* Disable http disk cache and implempent in-memory image cache

* Add comment about removing URL scheme prefix

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

* Add early return to clean up the code

* Rewrite cache expiry logic with fallbacks

* Move this change behind a CLI argument --experiments-disable-disk-cache

* Replace CLI flag with a GUI setting

* Improve warning message styling

* ! Fix incompatibility with latest settings code

* Use CSS instead of sass for the experimental settings

* Return the error as JSON instead of throwing it

* Inline restart prompt label and option names and values

* Mention crash risk and recommend backups in the warning

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2022-10-25 02:33:08 +00:00
ChunkyProgrammer 7819dcd99f
change `this.showToast` to `showToast` (#2746) 2022-10-19 07:50:09 +00:00
absidue f970936d1e
Make copyToClipboard and openExternalLink helpers (#2722) 2022-10-18 08:15:28 +00:00
absidue 294df19f1b
Replace rss-parser with fetch and the native DomParser (#2726) 2022-10-17 16:09:06 +00:00
Emma b5c486bf1f
Fixing some leftover `showToast(obj)` (#2735) 2022-10-17 12:33:20 +00:00
absidue 3aa080d707
Make showToast a helper (#2695) 2022-10-14 05:59:49 +00:00
absidue c0f98eeafe
Use named parameters instead of $ and % in localised strings (#2685)
* Use named parameters instead of $ and % in localised strings

* Fix URL warning again

* Update placeholders in most locales

* Let the translators fix the problematic RTL strings

* Fix the missing quotes in some of the YAML files
2022-10-13 11:51:15 +00:00
absidue bc8261d970
Move colours from the store to the utils helper (#2710)
* Move colours from the store to the utils helper

* Use a single array for colours
2022-10-12 06:49:12 +00:00
absidue 22a5062334
Move calculateColorLuminance, calculatePublishedDate and buildVTTFileLocally out of the store (#2692) 2022-10-10 07:45:18 +00:00
Aiz 7ca6440a88
Add shortcuts for refresh buttons on Subscription, Trending, and Popular views (#2689)
* add shortcut to subscription refresh button

* add shortcut to most popular refresh button

* add shortcut to trending refresh button

* prevent refresh if currently loading
2022-10-09 09:10:57 -04:00
absidue 5677c3182d
Remove jquery from the ft-player component (#2647) 2022-10-05 08:25:50 +00:00
absidue 5cd2e5a7d0
Replace jquery on the trending page (#2663) 2022-10-04 17:56:10 +00:00
Aiz 6ddbce2e02
Add setting to disable automatic fetching of subscription feed (#2632)
* Add setting to disable automatic fetching of subscriptions

* rename from load to fetch. fix profile switch auto fetching

* add message for when auto fetch is disabled

* add strings to locale file

* Use a switch column grid for the subscription settings

This matches the layout other settings components

* remove import of now unused ft-flex-box component

* add variable to track if an attempt to fetch has been made.

used so the disable automatic fetch message doesn't block the
empty channels message.

* reduce distance between switches by adding compact=true

* edit tooltip wording
2022-09-29 22:29:47 -04:00
absidue bc886af726
Implement chapters (#2224)
* Implement chapters

* Generate chapters locally for the Invidious API backend

* Performance improvements

* More performance improvements

* Improve chapters appearance and add compact mode for Invidious

* Update UI while seeking instead of afterwards

* Invidious extract chapters with range timestamps properly and duplicate chapters

* Minor code improvement

* Add accessibility labels and keyboard navigation

* Add chapter markers

* Fix missing newline at the bottom of ft-video-player.css

* Fix marker placement
2022-09-29 20:01:54 +00:00
absidue 850ed6502c
Fix package.json getting embedded in the release builds (#2635) 2022-09-28 20:55:33 -04:00
Aiz 498ae77ade
Improve styling of premiere date box (#2611)
* use 5px border radius instead of 5%

a 5% border radius will create an oval shape when height and width differ.
this doesn't look good.
5px radius looks better and is used in other places

* offset premiereDate by 12px from bottom left

Increases the offset a tiny amount and adds a left offset aswell.
This looks better than when it was previously only offset from the bottom.
I used 12px because it's what youtube uses.

* use flexbox to align items additional positioning with margins

vertically centes premiere icon and text with by making their parent a flexbox

sets a min width for the text instead of using a set width for the premiereDate

* change font size and weight of timestamp text

* remove uneeded line height styling

line height 1.2 did not affect anything

* fix indentation

* Update src/renderer/views/Watch/Watch.sass

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2022-09-27 07:19:35 +08:00
absidue fa8d423bc6
Fix some development code not getting optimised out (#2605) 2022-09-26 16:15:13 -04:00
Aiz c9c522a2b1
Use Intl.RelativeTimeFormat() for premiere upcoming time left (#2610)
* Improve premiere timestamp

Removes the unesseccary parts of the timestamp, year and seconds.

displays month as long name (eg., March)

* fix linting... forgot to add the file again before commit.

* get and use current locale set in freetube

this fixes issues where os locale and freetube locale don't match

* use 'default' when no locale is set in freetube.

this defaults to system locale

* use i18n to get locale and format date with intl

* format date with intl.datetimeformat

forgot to add file again after changes...

* use intl relative time format to format upcomingTimeLeft

* rename timeUnitI18nKey to just timeUnit

It's no longer used as a key and is no longer partial
2022-09-24 23:23:45 +00:00
absidue ac4cc4a611
Compress and lazy load locales (#2603)
* Compress and lazy load locales

* Remove index.html when loading the locales on the web

* Fix locale output path for web build
2022-09-24 11:06:50 -04:00
ChunkyProgrammer 7822f7423e
Remove console.logs (#2606)
* remove console.logs

* use 'off' instead of 0
2022-09-23 09:04:10 +08:00