Commit Graph

861 Commits

Author SHA1 Message Date
absidue 3e543aeb24
Fix cursor moving while navigating search suggestions (#3566) 2023-05-21 13:50:27 +00:00
absidue d34cf0dd5c
local API: Support multiple audio tracks (#3563)
* local API: Support multiple audio tracks

* Simplify resume logic

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

* Change track selector position

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-05-20 08:48:15 -04:00
PikachuEXE d3b3be7794
Update watch view playlist component to auto scroll to current video (#3399)
* * Update watch view playlist component to auto scroll to current video

* ! Fix window being scrolled when playlist is out of initial view

* * Use `nextTick` instead of `setTimeout`

* Revert "* Use `nextTick` instead of `setTimeout`"

This reverts commit 9215b0fe54.

* * Remove setTimeout, fix issue when Invidious API used
2023-05-18 22:13:42 -04:00
ChunkyProgrammer 2860431abe
fix live chat error (#3558) 2023-05-17 16:24:15 +02:00
ChunkyProgrammer a4d45b5fa8
Local API: Add support for hashtag pages (#3483)
* Add support for hashtag pages

* Apply suggestions from code review

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

* allow searching hashtags

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* Only use one card

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

* remove hashtag alias search navigation

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-05-13 13:27:41 +02:00
absidue b005aee643
Use POST for DASH requests (#3523) 2023-05-10 20:00:27 +08:00
absidue 6804ca999d
Remove unnecessary dislike icon on community posts (#3524) 2023-05-10 08:30:00 +08:00
absidue 2ef96c7179
Move the channel about tab into it's own component (#3493) 2023-05-08 09:42:06 +08:00
ChunkyProgrammer a9fa327c9b
Create Subscribe Button reusable component (#3468)
* Create Subscribe Button component

Co-Authored-By: Minh Hang Nguyen (Jenny) <55411709+minhhang107@users.noreply.github.com>

* use defineComponent, remove unused prop

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* readd unsubscribe method

* add comment

* Fix typo

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

* remove unused code

* move json serialization

---------

Co-authored-by: Minh Hang Nguyen (Jenny) <55411709+minhhang107@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-05-07 14:06:23 +02:00
ChunkyProgrammer 66e4f4d1c0
Fix fetching more IV replies (#3489) 2023-05-06 18:31:06 +00:00
ChunkyProgrammer 1b45f25985
Add hide community, playlist and featured channels settings (#3484)
* Add hide community, playlist and featured channels setting

* fix lint issues
2023-05-06 14:14:51 +00:00
absidue 170df2a054
Upgrade YouTube.js from 4.3 to 5.0.2 (fixes throttling) (#3474)
* Upgrade YouTube.js from 4.3 to 5.0.1 (fixes throttling)

* Fix typo

* Upgrade YouTube.js from 5.0.1 to 5.0.2 (fixes watch page views)
2023-05-01 09:12:23 -04:00
PikachuEXE 0e11fd06f1
Update watch page to stop at end of playlist (when loop disabled) without countdown (#3362)
* * Update watch page to stop at end of playlist (when loop disabled) without countdown

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

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

* ! Fix playlist end message shown when loop enabled

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-27 17:10:14 +02:00
PikachuEXE b5e35d0543
Add setting to auto load comment section (#3352)
* + Add setting to auto load comment section

* * Cleanup hooks when possible

* * Update new setting to be a toggle

Possible values reduced to disabled & 0%

* * Use vue-observe-visibility to implement comment autoload

* - Remove unused translation entries

* - Remove no longer valid code comment

* * Rename & retype new setting

* * Implement auto more comment loading

* - Remove outdated comment

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

* * Disable new setting switch when hide comments enabled

* * Remove the unnecessary delay on video comment loading

* * Update according to review

* * Disable autoload when hide comment enabled

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-26 21:56:42 -04:00
absidue 58eb5d7b17
Fix vunerability in CSV import regex (#3469) 2023-04-26 21:48:10 -04:00
absidue 45d679b84b
Clean up unused component properties (#3458) 2023-04-25 20:03:36 -04:00
absidue db1e88ae16
Various performance improvements (#3455) 2023-04-25 23:02:39 +00:00
PikachuEXE 3597499df1
* Update video list display & watch page to not use stored watch progress when progress saving disabled (#3453) 2023-04-20 16:43:59 +02:00
Emma 791a289e68
Prevent loading for ever in web builds in live chat (#3449) 2023-04-19 07:37:42 +02:00
absidue c4464f4014
Fix live premieres being treated as non-live videos (#3358) 2023-04-17 09:21:37 -04:00
absidue 7fbb43fd36
Add 50fps and live support to frame by frame keyboard shortcuts (#3420) 2023-04-17 14:51:47 +08:00
PikachuEXE 454534adb7
Fix some translation entries sometimes not used when rendered (#3337)
* * Update all translation keys with 2 spaces to have 1 space only

Avoid not being translated when rendering

* - Remove unused translation entry
2023-04-08 22:50:52 +00:00
PikachuEXE dedd1f8f93
Fix trending & search result list rendered items not updated without workaround (#3342)
* ! Fix trending video list not updated without a workaround

* ~ Remove outdated comment

* ! Fix search result list rendered items not updated without workaround

* ! Fix invidious API search result incorrect appending

* ! Fix typo & key

* Remove not longer needed timeout

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-01 22:15:38 +00:00
Alexandre Rocha Lima e Marcondes 7a991cd05e
Import from YouTube history using JSON export (#2958)
* Initial implementation of import from YouTube history
(Using JSON  export)

* Properly escaping hostnames in regular expressions

* support other locales

* Apply suggestions from code review

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

* support json import through sane button, bug fix

* remove `import youtube history` translations

* dont save length or view count for imported youtube history

---------

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-03-30 17:51:37 +02:00
absidue 5fb298b740
Improve performance of list elements and icon buttons (#3355)
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-03-27 06:25:58 +00:00
PikachuEXE 6e44f1af9c
* Update subscription view to render video as watched ASAP (#3353)
Before this change a view change (back & forth) is needed if video is watched in another window
2023-03-26 14:21:56 -04:00
absidue 8366ec9f79
Show message when the live chat is unavailable (#3327)
* Show message when the live chat is unavailable

* Dynamically size live chat card when an error is shown
2023-03-23 09:11:25 +08:00
absidue a53e7f0598
Fix DASH default quality and quality selection (#3278)
* Fix DASH default quality and quality selection

* Add comments and multiple bandwidth by 10

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

* Fix typo

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* ! Fix default quality `auto` handling

* ! Fix quality selection for short/vertical videos

* ! Fix default quality selection for Invidious API

* * Update videojs bandwidth option value to max

* ~ Add comment about video format sorting logic when heights from 2 formats equal

* * Revert format preference back to higher bitrate with comments

* * Revert inflated initial bandwidth option value to fix #595

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2023-03-22 20:22:20 -04:00
PikachuEXE f0ba90e766
! Fix handling of `channel.subscriber.text` being `undefined` (#3340) 2023-03-22 19:10:34 +00:00
Emma 86962f2802
Improve community tab responsiveness (#3344)
* Make channel page 📱responsive again

* Even out padding on the inside of `ft-community-post`
2023-03-22 13:44:19 +01:00
absidue 54ecce1058
Fix lists occasionally having the wrong layout (#3338) 2023-03-22 08:57:06 +08:00
PikachuEXE a878ff395a
Fix error when playing video with playlist with Indivious API and... (#3294)
* ! Fix error when playing video with playlist with Indivious API

* ! Fix switching comment sort does not get first page of comments
2023-03-14 14:18:48 -04:00
absidue 6c3ff9e999
Fix the screen saver blocker never getting disabled (#3286) 2023-03-14 06:17:44 +00:00
predystopic-dev 3a904b5f83
Setting loudness to default volume in new videos (#3203)
* Made changes as suggested.

* Made player set volume to user default if it was muted by dragging volume slider to zero. Volume and muted are kept track of seperately and both are set on player with respect to how it was set for previous video

* added comments

* fixed

* fixed

* Changed comments to be more accurate.
2023-03-08 19:22:45 +01:00
absidue da0c06902b
Use smaller Vue esm runtime build (#3271) 2023-03-07 07:06:42 +01:00
absidue ab235b79d2
Lazy load sidebar channel and chapters thumbnails (#3245) 2023-03-05 21:00:04 +00:00
absidue 667ee83130
Fix premieres on the subscription page (#3240)
* Fix premieres on the subscription page

* Fix date when restoring from subscription cache
2023-03-05 14:29:00 -05:00
absidue 07c9212e74
Clean up some code that was leftover from before the YouTube.js migration (#3243) 2023-03-04 14:05:33 -05:00
Luca Hohmann 4ef2f709ee
Channel community page (#1568)
* Comunity page strings, Communtiy tab, Community initial API call
Added:
1) Community page strings - the first few strings are now available
2) Community tab - A clickable tab is now displayed on channel pages
3) Community initial API call - on loading the page, the initial access

* Comunity page strings, Communtiy tab, Community initial API call
Added:
1) Community page strings - the first few strings are now available
2) Community tab - A clickable tab is now displayed on channel pages
3) Community initial API call - on loading the page, the initial access

* Data returning added

* Comunity page strings, Communtiy tab, Community initial API call
Added:
1) Community page strings - the first few strings are now available
2) Community tab - A clickable tab is now displayed on channel pages
3) Community initial API call - on loading the page, the initial access

* Data returning added

* Images are now displayed in the community tab

* Comunity page strings, Communtiy tab, Community initial API call
Added:
1) Community page strings - the first few strings are now available
2) Community tab - A clickable tab is now displayed on channel pages
3) Community initial API call - on loading the page, the initial access

* Data returning added

* Images are now displayed in the community tab

* Added primitive video display

* Current changes

* Added preston's change with the ftcard and started on some layout basics

* Created Community Post Component and added fetch more button + functionality

* Fixed problem with videothumbnails not loading and adjusted their height to 100% in the ft-list sass file

* Added poll and ft-list-video to the community page

* Added author name placeholder (missing in module), the published date, the likes and dislikes as well as comment counts to posts. Additionally scaling of images was added

* Added basis for community page playlists

* Finalized a setup for playlists when wide enough

* Fix for missing key in custom list

* Added publish date translation

* Add empty alt tags

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* fix accessibility issue

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>

* change: ununique ids to classes

* add missing alt tag

* Redirect channel/id/community to the channel's community tab

* update yt-channel-info

* update to 3.0.1

* Update yarn.lock

* add basic multiImage support

* use tiny-slider for multiImage community posts

* update getChannelCommunityPostsMore

* Update yarn.lock

* fix yarn lock

* swap community and about tab

* Update yarn.lock

* Fix missing comma

* Removed trailing spaces

* Clearing all community post data when changing to another channel

* Restructuring of how the post cards are added, Empty page text,
ft-element-list props customization
1) Now the community page uses the same setup of ft-element-list as the
other pages on the channel.
2) If no posts are available, now it displays a message saying so
3) The ft-element-list component's display style can now be forced into
a certain display mode (list/grid) with the new prop. It will overwrite
the corresponding default value for list display

* Fixed display text path

* Fix lint"

* Adjusted css to fit to new layout

* Final touches community page to tidy up the console

* fix icons, fix linter

* fix hiding showmore button for community page

* fix showToast calls

* change all this.showToast to showToaast

* reinstall tinyslider

* use helpers

* small fixes

* fix: getting continuation of community posts

* remove unused code

* improve slider style import

* fix hiding 'ShowMore' button

* fix weird typo in css

* add invidous community tab support

* remove console testing code

* Apply suggestions from code review

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

* implement suggestions, improve thumbnail replacement

* use flip horizontal

* readd invidious fallback code, remove author name workaround

* replace another google domain when using invidious

* suppport invidious multiImage posts

* Use youtube.js for community posts

* add invidious polls, remove support for fetching more

* reorder icons alpabetically

* re-allow loading more when using localapi

* fix styling of multiImage, hide NA text

* fix loading playlist

* fix spacing of items

* fix issue with direct url to community tab

* make review recommendations

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* fix displaying selected tab, get best quality image

---------

Co-authored-by: Preston <freetubeapp@protonmail.com>
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-03-04 16:56:04 +08:00
PikachuEXE 5713e66822
* Update export data default filename to use today's date in local timezone instead of UTC (#3236) 2023-03-02 22:11:36 +01:00
absidue f56f6e7a20
Fix video throttling because of range header (#3234)
* Fix video throttling because of range header

* Use a better way to extract the range
2023-03-01 09:38:13 +08:00
absidue 291aeff1a6
Migrate channel related functionality to YouTube.js (#3143)
* Migrate channel related functionality to YouTube.js

* Better alert handling

* Add support for special autogenerated channels

* Add support for latest YouTube.js changes

* Add support for age restricted channels

* Update YouTube.js to 3.0.0

* Obey hide search bar setting for the tag searching

* Choose a better parameter name

* Allow sharing terminated and age restricted channels

* Add handle support for handles on Invidious

* Fix the backend fallback

* Use a positive parameter name

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

* Fix duplicate tags causing errors

* Fix sorting for the Invidious API

* Move URL resolving to the channel page

* Update YouTube.js to 3.1.0

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-03-01 08:39:33 +08:00
PikachuEXE 4ad3ec2c5f
Update subscriptions view to display video publish time in relative form even fetched via RSS (#3216)
* * Update subscriptions view to display video publish time in relative form even fetched via RSS

* * Update to support seconds, months, years

Also add more code comments
Also fix issue of display after switching back from another view
2023-02-26 20:23:06 -05:00
absidue d6b355082a
Remove beforeRouteLeave in ft-video-player as it is never called (#3213) 2023-02-27 09:03:26 +08:00
absidue 5d9383b67b
Better idle mouse hiding implementation (#3214) 2023-02-26 03:01:20 +00:00
absidue a382326a38
Use a player event to trigger the DASH quality selector creation (#3183)
* Use a player event to trigger the DASH quality selector creation

* Add requested comment
2023-02-17 09:34:43 +08:00
absidue e5cf255894
Use a computed property instead of a prop to specify the chapters layout (#3199) 2023-02-17 09:34:21 +08:00
absidue a26c8e03a6
Fix the trending and watch pages swallowing the arrow key events (#3170)
* Fix the trending page swallowing the arrow key events

* Fix the watch page too
2023-02-10 12:44:17 -05:00
absidue 4c65982371
Better solution for hiding the PIP button for the audio formats (#3174)
* Better solution for hiding the PIP button for the audio formats

* Add comment

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

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-02-10 12:43:06 -05:00
absidue 3bc7bdba86
Reduce duplicate code in the data export settings (#3150)
* Reduce duplicate code in the data export settings

* Use a more descriptive parameter name

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

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-02-09 06:28:41 +00:00
absidue 36c42f06bf
Use secondary colour theme for all share buttons (#3169) 2023-02-08 18:56:42 +00:00
absidue cb1ea7e9a7
Fix spacing in the load comment replies text (#3171) 2023-02-08 18:52:36 +00:00
absidue bd6f143918
Fix positioning of the live chat scroll to bottom button (#3168) 2023-02-08 18:32:39 +00:00
Lodka Sawhet c7a99066da
Allows sponsor segments to be watched even if Auto Skip is enabled (#3116)
* Allows sponsor segments to be watched in Auto Skip mode

* 'b': only jump back to segments configured to be auto-skipped

* Remove 'b' keyboard shortcut
2023-02-05 14:47:02 -05:00
absidue c3867259e9
Trigger checkAspectRatio on loadedmetadata event (#3147) 2023-02-05 18:40:25 +00:00
absidue 3ca561c3e6
Miscellaneous cleanup (#3148) 2023-02-04 15:04:04 +08:00
ChunkyProgrammer b360f483d7
add missing search filters (#3141)
* add missing search filters

* allow sort by to be used on all types again

* fix local api filter duration
2023-02-01 20:43:04 +00:00
absidue b6892afb26
Use share menu on playlist page (#3121)
* Use share menu on playlist page

* Add support for playlist embed links

* Fix share button tooltip
2023-02-01 15:38:27 -05:00
absidue 4114bebfed
Make the View Comments and Load More Comments buttons larger (#3130) 2023-01-30 10:06:43 +01:00
PikachuEXE 0daa422284
Add feature to remember video history with last viewed playlist when enabled (#3006)
* + Add "infra" code for new feature

* * Update view/component to implement remembering last playlistID in history

* * Implement option to disable new feature

* ! Fix implementation for use case "Find a video (with playlist PL-A) to view, go to channel, view that same video, no playlist restored"
2023-01-26 03:18:04 +01:00
absidue 15bd1cb958
Set the Vue compiler whitespace option to condense (#3101) 2023-01-25 15:58:51 -05:00
absidue 5424122339
Filter out WebM DASH formats (#3105)
* Filter out WebM DASH formats

* Address pull request feedback
2023-01-25 15:58:25 -05:00
absidue 14caa8ccad
Handle missing data in search results (#3099) 2023-01-25 07:37:31 +08:00
PikachuEXE 38b856f546
! Fix shift enter on top nav search input does not open search in a new window (#3113) 2023-01-24 17:34:41 +01:00
absidue 0145a0425f
Migrate comments to YouTube.js (#3072)
* Migrate comments to YouTube.js

* Various improvements
2023-01-24 03:22:54 +01:00
Emma 7ccb5dd05e
Adjust `side-nav-more-options` to account for anchor style (#3097)
* Adjust side-nav-more-options to account for `a` styles

- These nav-options were changed from `div`s to anchors, and so,
they need to be styled like the `div`s that used to be there.

* Use `inherit` instead of white
2023-01-21 10:25:01 +01:00
Emma 12e9565dbe
Bind directive to function instead of function call (#3091)
v-if="showResult(data)" evaluates once
v-if="showResult" is reactive;

`data` also doesn't need to be passed here
because it is already accessible from `this`.
2023-01-19 16:58:12 +01:00
absidue 2cd8f0f2d3
Switch from Vue.extend to defineComponent (#3066) 2023-01-18 08:50:02 +01:00
absidue 523235f74c
Add a formatNumber helper and other i18n cleanup (#3055)
* Add a formatNumber helper and other i18n cleanup

* Fix import order
2023-01-15 10:43:29 +00:00
absidue 3e80e96a0c
Use ES6 classes for video.js components instead of videojs.extend (#3060) 2023-01-14 15:01:27 +00:00
PikachuEXE 67b9a74ae3
! Fix code for getting event.key lowercase value (#3061) 2023-01-14 15:01:12 +00:00
absidue ae50ec7205
Migrate live chat to YouTube.js (#3054) 2023-01-13 17:54:22 +01:00
ChunkyProgrammer afb9e51cdd
small accessibility improvements (#3033)
* small accessibility improvements

* switch to routerlink for side-nav-more-options
2023-01-12 07:55:47 +01:00
ChunkyProgrammer 03f73c5d33
Move invidious out of stores (#3045)
* move invidious out of stores

* fix getting more replies & local api fallback for comments

* throw error if error message found in invidious response

* fix issue with data setting

* fix issue with replacing thumbnails

* add bank line, remove slash

* Apply suggestions from code review

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

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-01-12 07:55:21 +01:00
absidue 75bf0377ca
Hide the proxy settings in the web build (#3037) 2023-01-08 08:29:06 +08:00
absidue 15b15026b6
Migrate the watch page to YouTube.js (#3035)
* Migrate the watch page to YouTube.js

* Fix YouTube.js exclusion in the web build
2023-01-07 02:52:59 +01:00
ChunkyProgrammer bff8dc4326
Improve accessibility of Channel View (#2984)
* Improve channel info bar

* Reduce width of channel search bar

* fix sizing

* improve channel view accessibility

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

* Update src/renderer/components/ft-channel-bubble/ft-channel-bubble.js

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

* Stop space from clicking channel-bubble (links)

Co-authored-by: vallode <18506096+vallode@users.noreply.github.com>
Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-01-05 04:54:20 +01:00
absidue 156176aca8
Migrate search to YouTube.js (#3028)
* Migrate search to YouTube.js

* Fix linting issue
2023-01-05 04:54:08 +01:00
absidue b157495552
Add more electron guards (#3031) 2023-01-05 04:53:39 +01:00
absidue 57ca0fc82e
Fix CSS variables (#3030) 2023-01-04 10:35:04 +01:00
PikachuEXE 0d0d64d957
! Fix Ctrl/Cmd + C unable to copy text when viewing video (#3027) 2023-01-03 19:20:16 +01:00
ChunkyProgrammer 43a25f8738
update linters & add stylelint (#3023)
* update linters, add stylelint, switch from sass to scss

* remove unused babel-eslint module

* fix spacing in scss files

* dont use npm in script calls

* dont error for `:deep` selector in css
2023-01-03 19:19:41 +01:00
Simon Epstein 36e34fb5ed
Add option to display distraction free titles (#2987)
* 2953 Added boilerplate to manage setting.

* Hooked in distraction free title to video list view.

* Tweaked the regexp to include apostrophe when looking for runs.

Also only change case for runs of 3 or more, to avoid messing with
common abbreviations.

* Addressed review feedback.

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2023-01-01 22:53:29 +01:00
PikachuEXE b96c6b5542
Fix clear button covered by new input wrapper (#3016)
* $ Fix CSS warnings

* ! Fix clear button covered by new input wrapper
2022-12-31 17:30:06 +01:00
absidue 5d1f465bf5
Fix styling of the comment author text (#3012) 2022-12-31 11:06:00 +01:00
Emma 7e7571065d
Improve responsiveness of `Hide Videos From Channels` (#2994)
* Add wrapper in `ft-input`  to correct absolute pos

Previously, the action icon was absolutely positioned
to the relative `ft-input-component`; however,
when the label wrapped (on small displays), the height of the
ft-input-component changed, and the icon would overflow
the bottom of the component.  Now, it should be absolutely
positioned to the relative `inputWrapper` which
begins with the top of the input element, and thus, it should
not change position based on the height of the label making it
easier to ensure it is in the right position.

* Modify wrapper to not interfere with existing components

* Make ft-input-tags `width: 100%` on small displays

There isn't a lot of screen real estate on small displays, so
this component should just expand to fill it instead of crunching
in on itself.

* Modify media queries to use more standard breakpoint

# Conflicts:
#	src/renderer/components/ft-input/ft-input.css

* Hide line-break in distraction-settings on small displays

* Fix lint issue by removing self-close from `br`
2022-12-30 09:13:45 +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 a3a20a64b1
Only show prompt close button when it is needed (#3001) 2022-12-27 10:20:32 +08:00
absidue cdc1b712bd
Use path.sep instead of working out the directory separator ourselves (#3002) 2022-12-27 10:15:38 +08:00
absidue 7163ddff0c
Escape special characters in channel names in ompl export (#3004) 2022-12-27 10:14:23 +08:00
absidue b77455ec81
Lazy load playlist components to improve performance (#2993) 2022-12-26 19:15:55 +01:00
PikachuEXE 1a0786f39b
! Fix possible to do both actions in video player by scrolling (#2989)
"Scroll playback rate over video player" and "Skip by Scrolling Over Video Player"
2022-12-25 13:06:18 +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
vr10t 869e45ccd5
Option to skip through the video by scrolling (#2418)
* initial commit

* remove extra play button toggle

* add missing comment

Co-authored-by: Alin <ai6@tutanota.com>
Co-authored-by: ChunkyPtogrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2022-12-22 16:21:32 +01:00
absidue 37da66be26
Cleanup and simplify the settings password code (#2982) 2022-12-20 05:58:44 +00:00
absidue 6f7adaaf72
Fix docs link in the data settings section (#2981) 2022-12-20 09:21:55 +08: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
petaded 5230fc4fd7
fix linting error in ft-input-tags.vue (#2971)
* fix linting error in ft-input-tags.vue

* swap to span over label

* update css to match

Co-authored-by: petaded <code@zikl.co.uk>
2022-12-19 06:22:06 -05: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
petaded f33f14268f
Option to hide videos from certain channels (#2849)
* add logic to hide channels

* Add new ft-input-tags ui element and use this for channel hiding

* remove unused tooltip code

* Add tooltip to the ft-input-tags and the new setting

* Add spacer between toggle options and ft-flex-box

* Swap to stringify from semicolon + add focus to label

* Simplify the input_tags code + rename setting to channelsHidden

* Fix issue shown by linter

* Recentralize input button + fix tooltip for small windows

* Improve accessiblity

* fix hiding playlist when channel ID entered

* pass tag directly to removeTag function

Co-authored-by: petaded <code@zikl.co.uk>
Co-authored-by: petaded <petaded@zikl.co.uk>
2022-12-17 16:49:44 +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
Emma Jiang 79cd65c312
Display long names in profile select (#2964)
* fix the display of names that are too long to fit in the profile select menu

* revert flexbox addition
2022-12-17 14:46:43 +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
PikachuEXE 5603b40301
! Fix enter on input doesn't work with empty visible data list (#2966) 2022-12-15 17:57:00 +01:00
ChunkyProgrammer 083ae0e622
fix error when searching (#2960) 2022-12-14 07:55:29 +01:00
ChunkyProgrammer c6e4221966
Fix ft-input keyboard naviagation (#2943) 2022-12-13 21:36:18 +01: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 10f9bf6d79
Add keyboard shortcuts to jump to the next and previous chapters (#2912)
* Add keyboard shortcuts to jump to the next and previous chapters

* Change shortcut to Cmd for macOS
2022-12-12 07:03:01 +01:00
ChunkyProgrammer 45953e3ba3
Improve accessibility of FreeTube input elements (#2709)
* improve accessibility of FreeTube input elements

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

* make focus visible for prompt

* add close button to ft-prompt

* Update src/renderer/components/ft-icon-button/ft-icon-button.vue

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

* make suggested changes

* move eslint plugin to devdepedencies

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* dont hide ft-prompt on focus out

* add aria-describeby

* update eslint-plugin-vuejs-accessibility

* Update yarn.lock

* Update yarn.lock

* Fix lint issues

* only escape whitespace in ids

* use computed properties

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2022-12-11 08:43:23 +01:00
absidue a88bafeb27
Make getUserDataPath, getPicturesPath and getSystemLocale helpers (#2920) 2022-12-06 12:37:44 +01:00
absidue c5697443ff
Only show the load more comments button when necessary (#2917) 2022-12-06 12:05:20 +01:00
PikachuEXE fa9a992a52
Update copy/open YT video in playlist view to have playlist ID when present (#2848)
* * Update copy/open YT video in playlist view to have playlist ID when present

* * Update YT share URL for video with playlist
2022-12-06 08:47:34 +01:00
absidue 3d0157da75
Make more UI elements middle clickable (#2911) 2022-12-05 08:42:40 +01:00
absidue c1f257dd79
Clear cached subscription videos when removing all subscriptions (#2905) 2022-12-02 08:30:27 +01:00
absidue ecb9128731
Migrate search suggestions to youtubei.js (#2855)
* Migrate search suggestions to youtubei.js

* Rename functions to indicate that they are for the local API

* Implement and use a lightweight Innertube session

* Fix typo in comment

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* Fix another typo in a comment

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2022-11-28 12:52:47 +01:00
theforbiddenpool 064db4ba28
Add option to hide FreeTube header logo (#2893) 2022-11-27 08:55:34 -05:00
M. Ian Graham 207d72a9c2
Add setting: Distraction Free Settings → Hide Upcoming Premieres (#2853) 2022-11-24 13:31:53 +01:00
absidue 5b67803c32
Add ft-input enter listener the vue way (#2879) 2022-11-21 07:37:38 +01:00
absidue 88e9618651
Fix chapter marker placement (#2874) 2022-11-20 22:46:34 +01:00
absidue 8a37692f77
Use native DomParser instead of opml-to-json dependency (#2769)
* Use native DomParser instead of opml-to-json dependency

* Add support for Invidious feed URLs

* Fallback to HTML parser, as HTML is much less strict than XML

* Log error before falling back to the HTML parser
2022-11-15 09:10:51 +01: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 644b735005
Use the available space better in the player and theme settings (#2857) 2022-11-12 10:36:09 +01:00
absidue 2b233815ec
Move colours and the colour functions to their own file (#2844) 2022-11-09 05:57:48 +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 27992e47b0
Fix emoji display in the profile selector (#2815) 2022-11-04 07:19:25 +00:00
Emma f8ff0e1249
Add setting to toggle `Enter fullscreen on rotate` (#2808)
It defaults to `false`. This should prevent users with
multiple displays from running into issues when they
drag the window from a portrait display to a landscape
display too quickly.
2022-11-04 09:11:22 +08:00
PikachuEXE 53025b0339
* Update chapter marker style (#2776) 2022-11-01 22:37:04 -04:00
PrestonN 5295fbeb50 Fix super chat styling 2022-11-01 20:36:14 -04:00
absidue 104cbd4af1
Fix watch-video-info overflow for live streams (#2783) 2022-11-01 14:18:33 +00:00
ChunkyProgrammer dcbc0efc53
make stripHTML helper (#2795) 2022-11-01 14:14:09 +00:00
Emma b1d6aa5d42
Centralize the code used for parsing invidious comments (#2780) 2022-10-29 11:12:01 -04:00
ChunkyProgrammer f46132ce25
hide `Most Popular` if invidious is disabled (#2772) 2022-10-27 09:34:51 +00:00
absidue 8f55a648b1
Cleanup unused component imports (#2773) 2022-10-27 09:34:39 +00:00
Emma 70baa873fb
Move `Dialog` functions to `utils/helpers` (#2752)
* Moving `FileFromDialog` helpers into helpers/utils

* Moving `showDialog` functions to `utils/helpers`

* Linting

* Update src/renderer/helpers/utils.js

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

* Update refs  `showSaveDialog` in `ft-video-player`

* Formatting long import to be multiline

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

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2022-10-25 16:44:18 +02: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
Emma e43fb94a35
Improving touch input by bringing in `videojs-mobile-ui` (#2719)
* Adding videojs-mobile-ui as a dependency

- Using the beta because it fixes an issue
with multiple version of videojs loading
at once.

This is related to MarmadileManteater#56.

* Mapping defaultSkipInterval to seekSeconds

* Adding CSS to prevent showing duplicate buttons

- Added a new variable `usingTouch` to selectively hide
the existing `vjs-big-play-button` when the `touch-overlay`
is visible.

* Renaming CSS class to something more specific

* Adding text-shadow behind play / pause button

This should make it more visually distinct against a
light or colorful background.

* Enabling touch-overlay anytime a touch is detected

Disabling it whenever mouse input is detected

The default behavior of `videojs-mobile-ui` is to
only work in Android and iOS, but by
forcing the touch behavior to be enabled and selectively
showing it only when touch input is detected, it should work
on any device with touch input even if the browser doesn't
detect that it is running in Android or iOS.

* Removing unnecessary code

* Removing unintentionally leftover variable

* Removing an unnecessary assignment

Adding comments to explain why a flag called
`forceForTesting` is set to true

Disabling the `lockOnRotate` flag.

* Moving this flag and wrapper class

* Adding whitespace

* Making my comment a little more consistent

* Changing the punctuation of a comment

* Adjusting the CSS to fix a firefox discrepancy

* Adding a check for mobile firefox

For whatever reason, mobile firefox sometimes
triggers onmouseover when a touch occurs, and this
is unwanted behavior.

* Adding a drop-shadow to the ff and rw icons

This should make them easier to see on top of light
videos

* Hiding the mobile play button according to setting

- Added CSS to hide the videojs-mobile-ui play button
when the `Display Play Button In Video Player` setting is disabled.

* Replacing long computed string with class binding

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

* Adding newline at the end of videoJS.css

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2022-10-24 13:49:52 -04:00
Emma 12cfe6a3fb
Convert Invidious comment publishText to locale (#2758) 2022-10-24 17:10:06 +02:00
absidue 76d7ecd163
More space for the title in watch-video-info (#2751) 2022-10-20 06:06:04 +00:00
absidue f33ad2e5f0
Fix double focus on the sidebar channels (#2749) 2022-10-20 06:04:49 +00:00
ChunkyProgrammer 2c5c654b66
move `toLocalePublicationString` to`utils/helper` (#2748)
* move toLocalePublicationString to helper

* remove unnecessary assignments

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* Update src/renderer/components/ft-list-video/ft-list-video.js

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

* fix linter issue

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2022-10-20 06:03:31 +00:00
Emma 41b3af033b
Implenting `showSaveDialog` in web (#2741)
* Implementing the web callback for `showSaveDialog`

Using the native filesystem API when it is available

* Adding the `writeFileFromDialog` function

It normalizes the behavior of writing to a file handle
given by a file picker between web and electron

* Refactoring `exportFreeTubeSubscriptions`

Now, it should use the profile data stored in memory
rather than reading it from the file system (which may not
be present in web browsers), and it should also work in web
builds

* Refactoring exportYouTubeSubscriptions

Using the `writeFileFromDialog` function instead of `fs`

* Refactoring the rest of the subscription exports

Using the `writeFileFromDialog` function instead of `fs`

* Refactoring exportHistory

- Using the historyCache stored in memory instead of
reading from `fs` to get the history data
- Using `writeFileFromDialog` instead of `fs.writeFile`

* Refactoring exportPlaylists

Using `writeFileFromDialog` instead of `fs`

* Removing no longer needed `fs` import

* Removing something I was using to debug

* Fixing issue with mime types non populating in save picker

* Adding back an unintentionally removed line
2022-10-19 07:50:21 +02:00
absidue d39512db0a
Minor performance improvement in the general-settings component (#2723) 2022-10-19 09:25:13 +08:00
absidue d8f7d073ce
Remove unused ft-grid component and __static variable (#2744)
* Remove unused ft-grid component

* Remove unused __static variable
2022-10-19 09:09:49 +08:00
Emma b453b01b81
Adding web support to dev-runner (#2729)
* Adding ytpl and ytsr as externals in web.config

This should get rid of those two warnings that were
showing up on web builds

* Reducing discrepancies between dev and prod in web builds

* Removing  a line which would prevent hot reloading

`this.locales` is retained between hot reloads, so it shouldn't
be set to `null`.

* Adding a new flag to the dev runner

Adding a new command: `run dev:web`

* Running `loadLocale` in development web builds

* Adding a line back which was removed

* Removing a line which was added
2022-10-18 08:50:32 -04:00
absidue f970936d1e
Make copyToClipboard and openExternalLink helpers (#2722) 2022-10-18 08:15:28 +00:00
absidue 62c70fbdd6
Fix fetching the comments from invidious (#2721) 2022-10-15 04:01:58 +00:00
absidue 077fde70f1
Fix CTRL+clicking on the channel name on the watch page (#2713) 2022-10-14 06:00:41 +00:00
absidue ad01d2b37d
Make the safe as and open file dialogs blocking (#2712) 2022-10-14 06:00:23 +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
Aiz 1695605ab5
Remove deprecated @keypress + some accessability improvements (#2697)
* remove deprecated @keypress from top-nav

* remove deprecated @keypress from side-nav

* add role and tabindex to new window button

it could previously not be selected by tabbing over the buttons
2022-10-12 19:02:39 +02: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
Emma 3c7b143fce
Improving responsiveness in Settings (#2694)
* Removing a `width:auto` which was overriding

the width for a lot of .select-text

* Making the general-settings component not overflow

* Reducing margin in settings when window is narrow

* Moving invidious instance tooltip to reduce overflow

* Reducing the width of sliders to be 100% at maximum

Before this change, the preset width `380px` could easily
be wider than the window.

* Reducing overflow in Theme Settings

- Added breakpoint for theme `select`s
- Added breakpoint for the UI scale slider

* Reducing the remaining overflow in settings

This moves all of the tooltips slightly to the left
when the window is narrow to reduce overflow.

* Expanding the sponsorblock settings to full width

* Moving remaining tooltips into a fixed zone

* Floating the tooltip icon to the right

When the display is narrow, the tooltip
can sometimes overflow, and it is very
difficult to predict how it will overflow
if the tool tip icon comes directly after
a locale string.

This change floats those icons into a
centralized location where the tooltip
can be guaranteed to not overflow.

* Removing some irrelevant changes

* Reducing margin on switches

* Removing bottom margin on the last section

* Making room for overflow ellipsis

* Adding class  `.containsTooltip` to `ft-toggle`

This should make is easier to style the toggles
which contain tooltips specficially.

* Modifying the media query for tooltips

* Adding a media query to reduce data settings margin
2022-10-11 09:38:31 +02:00
absidue 22a5062334
Move calculateColorLuminance, calculatePublishedDate and buildVTTFileLocally out of the store (#2692) 2022-10-10 07:45:18 +00:00
ChunkyProgrammer 41fee01217
Improve Importing Subscriptions (#2604)
* improve import

* fix merge conflicts

* dont add duplicate subscriptions, remove redundant "uniqueId"

* Update src/renderer/components/data-settings/data-settings.js

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

* fix unexpected errors

dont show toast when no errors. dont error when already subscribed

* remove check for legacy subscriptions

* rename method

* deduplicate importing code

* remove unused code

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2022-10-09 03:08:34 +02:00
absidue 0f2fe16583
Move fetching of the sponsorblock segments out of the store (#2684) 2022-10-08 16:23:14 -04:00
Emma ac5341b309
Replacing `setImmediate` with `setTimeout` (#2683)
* Adding an import for setImmediate

`setImmediate` is a global in node, but
it is technically from the `timers` module,
and it is not global in web.

* Replacing node specific call to `setImmediate`

`setTimeout` is available globally in both node and web
2022-10-07 14:42:13 +00:00
absidue 5677c3182d
Remove jquery from the ft-player component (#2647) 2022-10-05 08:25:50 +00:00
absidue 28e07ec0aa
Replace jquery in the profile selector (#2664) 2022-10-04 17:55:55 +00:00
absidue f87014aedc
Replace jquery in live chat and improve the message styling (#2666)
* Replace jquery in live chat and improve the message styling

* Fix the automatic scrolling
2022-10-04 17:55:13 +00:00
Emma 38134bffa0
Centering update prompt card (#2668)
* Making the update prompt card fit inside the window

* Centering the update promptCard using flex
2022-10-04 05:08:26 +00:00
Emma 4a70726216
Adding logic to prevent virtual keyboards (#2667)
from closing the search bar
2022-10-04 10:54:31 +08: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
PikachuEXE 21371eec1a
* Update search in new window function to also copy original query text to new window search input (#2637) 2022-09-29 21:22:28 +00: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 206094aecd
Create video player buttons without jquery (#2636) 2022-09-29 13:15:30 +00:00
Emma f0deb78e6f
Hiding "Disable smooth scroll" option in web (#2638)
* Hiding "smooth-scroll" setting when not electron

- This feature requires the restart of electron and
doesn't work in web builds.

* Removing this comment

- A safeguard was added
- This function won't be called unless IS_ELECTRON is true
2022-09-29 12:24:10 +00:00
absidue c3f8a3561b
Replace jquery in ft-icon-button with vue functionality (#2617)
* Replace jquery in ft-icon-button with vue functionality

* Rename hide method to hideDropdown

* Fix typo in comment

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* Fix menu reappearing too soon

* Fix share menu buttons not triggering

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2022-09-27 08:16:56 -04:00
absidue 6d1b0a63b6
Fix empty description box showing for the Invidious API (#2614)
* Fix empty description box showing for the Invidious API

* Add comment about HTML parsing
2022-09-26 20:36:41 +00:00
absidue fa8d423bc6
Fix some development code not getting optimised out (#2605) 2022-09-26 16:15:13 -04:00
absidue 8e72e7fe5f
Replace jquery in top-nav component (#2620) 2022-09-26 16:14:21 -04:00
absidue c1a78d878e
Use native addEventListener instead of jquery's .on (#2612) 2022-09-25 08:44:16 +08: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
absidue 63946f7561
Add a settings section component to reduce duplicate code (#2609) 2022-09-24 09:12:11 +00:00
Emma 1512178489
Implementing showOpenDialog's web callback (#2608)
* Implementing the open file dialog in web

- Adding a new function to make loading files
from a dialog box easier in both web and electron

* Canceled should always be false

onchange is only triggered when the file picker
has a file path. If the user cancels, this function
is never called.

* Changing from `function ()` to `() => {`

* Adding a try around processing the history import

* Moving the try-catch to a smaller section

* Adding a listener to when the file picker is closed

* Fixing the grammar on my comment

* Refactoring playlist imports to use readFileFromDialog

* Refactoring handleFreetubeImportFile to use readFileFromDialog

* Refactoring handleYoutubeCsvImportFile to use readFileFromDialog

* Refactoring handleYoutubeImportFile to use readFileFromDialog

* Refactoring importOpmlYoutubeSubscriptions to use readFileFromDialog

* Refactoring importNewPipeSubscriptions to use readFileFromDialog

* Added a check

to prevent resolve from being called multiple times

* Moving the call to removeEventListener

to prevent this event from being triggered twice

* Adding extensions to the web file picker

* Hiding `Check for legacy subscriptions` in web

* Adding comments for better readability

* Correcting my vue syntax
2022-09-23 12:15:49 -04:00
ChunkyProgrammer 7822f7423e
Remove console.logs (#2606)
* remove console.logs

* use 'off' instead of 0
2022-09-23 09:04:10 +08:00
Bryan-Elliott Tam 420a91a072
Feature/new window right click (#2027)
* right click menu for open in a new window

* open video in new window when right click

* router link added to channel images for easier selection in the context of a context menu

* fix security bug user can visit other website via freetube

* simplify context menu entry condition

* createWindow in open new window adapted with the merged function

* Change the open new window selector for the origin of the page no matter the name of the website

* Keypress reintegrate into the code for accesibility

* Keypress reintegrate into the code for accesibility

* Fix style for sidenav subscription links

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2022-09-22 13:03:18 +00:00
absidue 061a7c8db1
Replace jquery getJSON and get with native fetch (#2591)
* Replace jquery getJSON and get with native fetch

* Remove unnecessary console.log
2022-09-21 07:05:03 +00:00
Emma 25d954f990
Cleaning up calls to the Clipboard API (#2597)
* Added a copyToClipboard function to utils

This should make it easier to handle errors which
result from the clipboard API (which are more likely
in web builds). This should also make it easier to handle
copying to clipboard in cordova builds by abstracting the
platform specific code out of the views and moving it
all into one function.

* Moved the $t function out of utils

* Removing locale snippets I was using and am not now

* Added function comment to copyToClipboard

* Adding some missing references

* Adding an additional check

* Re-reviewing my changes, I found a mistake

* Update src/renderer/store/modules/utils.js

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

* Update static/locales/en-US.yaml

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* Reverting the language back to what it was previously

* Switching to using i18n.t()

instead of handling the translations myself.
Also, it looks like eslint removed a tab.

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2022-09-21 15:00:21 +08:00
Emma b722435a88
Calling updateVisibleDataList on inputData update (#2601) 2022-09-21 08:01:00 +02:00
ChunkyProgrammer 8fa182e246
Properly localize numbers (#2557)
* localize numbers properly

* Remove tostring

Co-authored-by: Aiz <66974576+Aiz0@users.noreply.github.com>

Co-authored-by: Aiz <66974576+Aiz0@users.noreply.github.com>
2022-09-19 20:14:53 +08:00
absidue f2d2827e0f
Fix some web issues and cleanup (#2582) 2022-09-17 08:19:31 +00:00
ChunkyProgrammer d1a50a4e52
update vue2 to latest (#2554)
* update vue2 to latest

* remove vue-template-compiler, update loader & router

* use :deep instead of v-deep

* fix yarn.lock
2022-09-16 14:49:27 +00:00
absidue 62829b736a
Electron variable at build time instead of at runtime (#2574) 2022-09-15 08:59:09 +00:00
Malik c1ff6587ad
#2512: Update search suggestions on input (#2567)
* #2512: Update visible data list on input

* #2512: Remove excessive visible data list update on input
2022-09-13 04:18:05 +00:00
absidue 97e3813182
Update css-loader and switch to webpack 5's asset modules (#2566) 2022-09-11 20:34:58 -04:00
absidue 036abdc96b
Remove unused ft-intersection-observer component (#2563) 2022-09-11 14:29:27 -04:00
absidue 644df97acc
Increase width of quality selector so that 1080p60 doesn't overflow into the full screen button (#2556) 2022-09-10 14:14:18 +00:00
absidue eaa15ea833
Webpack bundle dependencies (#2511)
* Allow webpack to bundle *most* dependencies

* Exclude *most* node_modules from getting packaged by electron-builder

* Import only the required icons instead of bundling the whole icon pack

* Reduce packaging blacklist to only include the few things that still need blacklisting
2022-09-06 02:29:10 +00:00
Malik 141860376d
#2463: Change formats button title from "Video" to "Media" (#2537) 2022-09-05 09:07:48 +00:00
PikachuEXE cb63b12caf
Update top nav search input to open new window on shift click/enter (#2427)
* * Update search input shift click to open new window

* - Remove unused import

Probably auto added by IDE...
2022-08-29 09:40:42 +00:00
MarmadileManteater 02db9483a3
Removing an an empty toast (#2504)
which was unintentionally introduced by my
last pull request.
2022-08-21 20:19:36 +08:00
MarmadileManteater 166fe004b2
This should eliminate this race condition by using (#2493)
the seconds length value provided by the API
rather than trying to pull the time from the video
element. This is related to FreeTubeApp#2492 and
MarmadileManteater#9.
2022-08-20 14:49:41 +02:00
absidue 3e07114d47
Add support for bold, italics and strikethrough formatting in comments (#2475) 2022-08-16 08:11:29 -04:00
PikachuEXE e0e7b5053a
! Fix Cmd+M unable to minimize window when viewing video (#2486) 2022-08-16 06:57:07 -04:00
d 4f9aa231cb
add playlist progress bar (#2402)
* add playlist progress bar

could use some css

* theme and lint
idk if those changes to the package.json or yarn.lock are ok but
it wouldent lint without them :/

* hopfuly fix errors

* why is this not working

* this is anoying.

* fix some other issues

thx @PikachuEXE

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

* spelling mistake

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

* will not display if playlist is shuffled or
reversed

Co-authored-by: makerio90 <makerio1@pm.me>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2022-08-16 12:37:16 +02:00
PrestonN 180a89d7c6 Move channels page to more menu in mobile UI 2022-08-11 21:46:41 -04:00
9ekaitz f8eff0e422
External player choice 'None' translated in Settings (#2075)
* External player choice 'None' translated in Settings

* requested fix related to Vue i18n import

* suggested changes using translation key and fallback to player name
2022-08-10 17:52:31 -04:00
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