Commit Graph

1457 Commits

Author SHA1 Message Date
ChunkyProgrammer c7025b648c
Search: Add hashtags to results (#3780)
* Add hashtags to search results

* add global count , implement changes from code review

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

* use h3 for title of hashtag element

* implement suggestions from code review

* use hashtag.text, move url update logic

* encodeURI for hashtag url

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-09-09 18:32:59 +02:00
Jason 6f2a535212
Implement right-to-left interface (#3970)
* Replace margin-left with margin-inline-start

* Replace margin-right with margin-inline-end

* Replace padding-left with padding-inline-start

* Replace padding-right with padding-inline-end

* Replace padding-top & padding-bottom with padding-block; continue replacing  padding-left and padding-right with padding-inline-start and padding-inline-end

* Add updated rtl-compatible margins to ft-slider and fix indentation

* Replace margin-top & margin-bottom with margin-block; continue replacing margin-left and margin-right with margin-inline-start and margin-inline-end

* Continue replacing with margin-block and margin-inline

* Replace left and right with inset-inline-start and inset-inline-end

This commit also changes border-left to border-inline-start, and border-right to border-inline-end.

* Replace margin-bottom, top, and bottom with margin-block-end, inset-block-start, and inset-block-end

This commit also replaces border-top and border-bottom with border-block-start and border-block-end.

* Replace text-align left and right with text-align start and end

* Fix syntax error with inset-block-end

* Implement dynamic float: left/right based on direction ltr/rtl

* Implement dynamic navigation arrow placement based on direction ltr/rtl

To the fullest of my understanding, it is expected for the left navigation in rtl-supporting browsers to be for forward navigation, and the right one to be for backward navigation.

* Add direction to body based on preferred language

* Implement horizontal directionality coefficient to fix translate working in wrong x-direction for rtl languages

* Add explicit text-align: start in places to ensure rtl version is correctly aligned

* Add text-align: start to places where it is not inferred to enable proper rtl text orientation

* Fix search bar magnifying glass being too far right issue

* Move body.dir-setting logic to setLocale to fix dir not setting correctly on page reload

* Change .switchColumn to have align-items: start instead of justify-items: start

I have validated this for all settings tabs; the justify-content: start did nothing in any language, left-to-right or right-to-left. Replacing it with align-items: start aligned all menu switch items by their switches, not by their labels. This makes for a much more uniform settings section for trl languages.

* Fix emergent bug in which history icons are temporarily disabled on changing language to one with different directionality

Given that which icon is displayed for which history arrow is now dynamic based on the user's directionality, changing of the icon resets the font-awesome-icon state and thus re-adds the base disabled class to both arrows. This means that changing your language to one that has a different directionality was falsely setting the arrows to their disabled state (until the route is changed, after which the history icons will be fully back to normal). This commmit refactors the history icon setting logic to use class binding to two booleans in the top-nav component's data rather than adding and removing the disabled classes directly to the arrow elements' classLists, thus cleaning up the implementation and fixing the bug.

* Add Kurdish to rtl languages list & add li items to be right-aligned on rtl languages

* Force FreeTube logo to be ordered left-to-right for 'brand consistency'

* Add styling flipping font-awesome icons for rtl languages except for exclusion list

* Update isRightAligned with additional languages, and use it instead of locale value from store

Kudos to absidue for pointing out this existing function for representing this, and that it grabs directly from the i18n object. This means that FreeTube will display the proper rtl interface if one is the user's system language, where it did not before.

* Update isRightAligned property name to more clearly reflect rtl purpose

* Simplify left/right arrow display logic

Leverage the icons being flipped rather than manually setting the classes to their opposites when the directionality is RTL.

* Replace justify-self: left & justify-self: right with justify-self; start and justify-self: end

* Remove misguided attempt to emulate directionality-agnosticism with rightAligned class

* Explicitly center FreeTube version on About page

* Replace pre-existing identation issue

* Replace margin-left with margin-inline-start

* Replace margin-right with margin-inline-end

* Replace padding-left with padding-inline-start

* Replace padding-right with padding-inline-end

* Replace padding-top & padding-bottom with padding-block; continue replacing  padding-left and padding-right with padding-inline-start and padding-inline-end

* Add updated rtl-compatible margins to ft-slider and fix indentation

* Replace margin-top & margin-bottom with margin-block; continue replacing margin-left and margin-right with margin-inline-start and margin-inline-end

* Continue replacing with margin-block and margin-inline

* Replace left and right with inset-inline-start and inset-inline-end

This commit also changes border-left to border-inline-start, and border-right to border-inline-end.

* Replace margin-bottom, top, and bottom with margin-block-end, inset-block-start, and inset-block-end

This commit also replaces border-top and border-bottom with border-block-start and border-block-end.

* Replace text-align left and right with text-align start and end

* Fix syntax error with inset-block-end

* Implement dynamic float: left/right based on direction ltr/rtl

* Implement dynamic navigation arrow placement based on direction ltr/rtl

To the fullest of my understanding, it is expected for the left navigation in rtl-supporting browsers to be for forward navigation, and the right one to be for backward navigation.

* Add direction to body based on preferred language

* Implement horizontal directionality coefficient to fix translate working in wrong x-direction for rtl languages

* Add explicit text-align: start in places to ensure rtl version is correctly aligned

* Add text-align: start to places where it is not inferred to enable proper rtl text orientation

* Fix search bar magnifying glass being too far right issue

* Move body.dir-setting logic to setLocale to fix dir not setting correctly on page reload

* Change .switchColumn to have align-items: start instead of justify-items: start

I have validated this for all settings tabs; the justify-content: start did nothing in any language, left-to-right or right-to-left. Replacing it with align-items: start aligned all menu switch items by their switches, not by their labels. This makes for a much more uniform settings section for trl languages.

* Fix emergent bug in which history icons are temporarily disabled on changing language to one with different directionality

Given that which icon is displayed for which history arrow is now dynamic based on the user's directionality, changing of the icon resets the font-awesome-icon state and thus re-adds the base disabled class to both arrows. This means that changing your language to one that has a different directionality was falsely setting the arrows to their disabled state (until the route is changed, after which the history icons will be fully back to normal). This commmit refactors the history icon setting logic to use class binding to two booleans in the top-nav component's data rather than adding and removing the disabled classes directly to the arrow elements' classLists, thus cleaning up the implementation and fixing the bug.

* Add Kurdish to rtl languages list & add li items to be right-aligned on rtl languages

* Force FreeTube logo to be ordered left-to-right for 'brand consistency'

* Add styling flipping font-awesome icons for rtl languages except for exclusion list

* Update isRightAligned with additional languages, and use it instead of locale value from store

Kudos to absidue for pointing out this existing function for representing this, and that it grabs directly from the i18n object. This means that FreeTube will display the proper rtl interface if one is the user's system language, where it did not before.

* Update isRightAligned property name to more clearly reflect rtl purpose

* Simplify left/right arrow display logic

Leverage the icons being flipped rather than manually setting the classes to their opposites when the directionality is RTL.

* Replace justify-self: left & justify-self: right with justify-self; start and justify-self: end

* Remove misguided attempt to emulate directionality-agnosticism with rightAligned class

* Explicitly center FreeTube version on About page

* Fix question mark reversing logic for Arabic, Hebrew, Persian, and Urdu

* Fix minor indentation issue

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

* Remove unused function

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

* Update src/renderer/components/ft-slider/ft-slider.css

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-09 18:29:26 +02:00
absidue e832f22c6f
Default theatre mode no sidebar (#3981)
* Revert "! Fix watch page layout when theatre mode enabled and sidebar "hidden" (#3931)"

This reverts commit 621cc27938.

* Fix the watch page layout when the sidebar is hidden and theatre mode mode is enabled by default

* Do not use theatre mode while loading
2023-09-06 23:43:27 -04:00
Benjababe 15437347b4
Add button to pause playlist after current video (#3938)
* Rounded playlist buttons to circles

* Add pause button for playlists

* reverted en_GB changes
2023-09-07 09:28:21 +08:00
absidue 2cecb56a75
Make ft-channel-bubble an actual link when it is being used as one (#3980) 2023-09-06 09:57:19 +00:00
Jason c371f6035d
Pastel & Hot Pink Themes (#3937)
* Add pastel and hot pink base configuration & labels

* Update Author Background Color to be based on --secondary-card-bg-color instead of --scrollbar-color

This unneeded dependency on the scrollbar color here resulted in the Author Background text blending into its background on the new Hot Pink theme. This change does not tangibly affect any other theme, whose scrollbar colors are incidentally similar to the secondary-card-bg-color, as this color is already being used for tags on the Channel About tab.

* Implement Pastel Pink and Hot Pink styling

Note that Hot Pink styling overwrites the primary and secondary color themes to maintain accessible color contrasts throughout FreeTube. It also updates the underline styling to match its aesthetic. The scrollbar-text-color-hover and side-nav-active-text-color colors are added for allow for the text and icon to both change on hover. This allows for more accessible hover and active styling.

* Add textWhiteSmall and iconWhiteSmall to repo; add FT pink icon themes

The textWhiteSmall was actually already sized exactly the same as the other small text files, so I just changed the name to reflect that fact.

* Add side-nav-hover-text-color and side-nav-active-text-color throughout FT

* Update Hot Pink theme accent-color-active

* Add side-nav hover-text and active-text styling to ft-icon-button

* Fix incorrect variable name

* Disable primary & secondary color theme controls when hot pink theme is enabled
2023-09-01 09:17:46 -04:00
David Frederick Batt 884ba91115
Add option to change thumbnail appearance (#3890)
* Add option to blur thumbnails

* Add dropdown for different thumbnail display modes

* Add dropdown for different thumbnail display modes

* Fix thumbnail display mode setting not appearing due to incorrect localization

* Rename thumbnail display mode option 'Not Loaded' to 'Hidden'

* Fix thumbnail display mode 'hidden' not working

* Fix thumbnail display mode not applying to playlists

Makes thumbnail display mode setting also affect thumbnails in ft-list-playlist and playlist-info.

* Remove unnecessary styling

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

* Make hidden thumbnails toggleable from thumbnail preferences

* Replace thumbnail placeholder png with svg

* Fix thumbnail preference 'hidden' not applying to ft-list-playlist

* Fix placeholder svg breaking playlist layout

* Refactor ft-list-video

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-08-31 11:18:52 -04:00
PikachuEXE 621cc27938
! Fix watch page layout when theatre mode enabled and sidebar "hidden" (#3931) 2023-08-30 03:13:11 +00:00
Benjababe 0b44548331
Include hide comment photos setting (#3939)
* Added hide comment photos option into settings

* Hide comment photos if setting is enabled

* include hidden photos for comment replies

* Always show video uploader photo in comments

* reverted en_GB changes

* Updated settings to "Hide Profile Pictures in Comments"
2023-08-30 00:08:55 +00:00
PikachuEXE 1a6c9e98c9
Make constants imported from @fortawesome/free-solid-svg-icons ordered by name again (#3958)
* $ Make constants imported from @fortawesome/free-solid-svg-icons ordered by name again

* ~ Add code comment about constant list ordering
2023-08-29 05:06:42 +00:00
Jason c5be5e5700
Fix HTML styling (e.g., hashtag links) showing up as raw HTML in descriptions (#3946) 2023-08-29 00:15:21 +02:00
Jason ce3de2bb07
Make certain controls non-selectable / non-draggable - Part II (#3957)
* This is due to my previous change which included the use of a poorly researched 'user-select: all' to unset a 'user-select'. The problem is that all does something else altogether: 'The content of the element shall be selected atomically: If a selection would contain part of the element, then the selection must contain the entire element including all its descendants. If a double-click or context-click occurred in sub-elements, the highest ancestor with this value will be selected.' Source: https://developer.mozilla.org/en-US/docs/Web/CSS/user-select

* Add user-select:none to one more area

* Remove extraneous additional dash

Co-authored-by: LQ2' <lq2.apostrophe@gmail.com>

---------

Co-authored-by: LQ2' <lq2.apostrophe@gmail.com>
2023-08-29 00:14:35 +02:00
Jason c32b84c478
Show video list buttons on hover or focus (#3954)
* Implement external player icon and favorites icon only appearing after hover/focus

As a way of cleaning up the look of videos, only shows the video icons on hover or focus. This is for all purposes a very 'free' change that I would opine makes FreeTube appear much cleaner.

* Implement video list settings button only appearing on hover/focus

Same idea as for the favorites & external player icons; much cleaner look without any sizable 'cost' to boot.

* Ensure video list buttons always show on devices without hover (e.g., mobile)

* Remove user-select lines (already in another PR) & one extraneous line
2023-08-28 11:29:27 -07:00
Jason 665da2c1c3
Make certain controls non-selectable / non-draggable (#3947)
* Make settings heading text unselectable

I often encounter the issue of accidentally selecting/highlighting the settings heading text, which ends up highlighting all of the text inside of that settings tab. This is an unpleasant appearance that I have to click to remove. This change removes this issue altogether.

* Switch all instances of user-select to be only user-select and -webkit-user-select

* Make side-nav labels unselectable

* Make side-nav and channels un-draggable

* Remove selection from ft-flex-box, ft-input placeholders, and profile icons
2023-08-27 08:46:19 +08:00
Benjababe 08f8b2768a
Add updated video resolution to auto selector (#3935)
* CSS updates

* Include resolution to 'auto' in quality display

* Include auto info in video statistics

* Value integrity check in CreateDashQualitySelector
2023-08-26 18:20:55 +02:00
Vinit Jha 4c3f369aca
Fix Save icon blocking issue (#3951)
* Fix Save icon blocking issue

* Fixed favorite button style
2023-08-26 09:07:04 -07:00
PikachuEXE 16aee6e094
* Update URL parser to recognize youtube.com/live/xxxxxxx (#3930) 2023-08-26 15:58:23 +00:00
PikachuEXE b10a0c0806
! Fix `Scroll playback rate over video player` prevents page scrolling when not activated (#3933) 2023-08-25 11:41:56 -04:00
Wesley Appler 4a7c4d95bf
Refactoring to community polls & fixes for quizzes (#3865)
* Refactoring to community polls & fixes for quizzes

* Replaced the interactive quiz with a reveal button and small fixes

* Replaced the interactive quiz with a reveal button and small fixes

* Implemented vote formatting

* vote translation fix

* Accessibility additions

* Fixed local API is_correct typo

* Fixed inconsistent indents
2023-08-24 22:26:31 +02:00
PikachuEXE 11c3402e2f
! Fix subscription view error channel list style (#3921) 2023-08-23 21:38:21 +00:00
efb4f5ff-1298-471a-8973-3d47447115dc 4d85ef85e5
Add Discussions to Help section of the About tab (#3901)
* Add Discussions to About tab

* Add translation entry
2023-08-22 22:43:42 +02:00
absidue 8c6bfaafa6
Fix playlist view on the watch page not reacting to playlist changes (#3897) 2023-08-21 09:12:27 +08:00
PrestonN f364229039 Fix linting issues 2023-08-20 20:32:12 -04:00
absidue 4d4dcba20f
Ignore broken audio tracks for videos with multiple audio tracks (#3851) 2023-08-19 23:32:48 -04:00
absidue 3236ce80c3
local API: Add support for PageHeader hashtag header (#3896) 2023-08-19 23:28:02 -04:00
absidue bf24630f92
Upgrade YouTube.js to version 6.0 (#3895) 2023-08-19 16:11:20 +00:00
absidue f0341549b5
Fix the layout of the hashtag page (#3886) 2023-08-17 23:06:44 -04:00
absidue 723739f724
Cleanup some template conditionals (#3888) 2023-08-16 08:50:32 +00:00
ChunkyProgrammer eff4a0a66e
Add semantic roles to make the site more accessible (#3887)
* Add semantic roles to make the site more accessible

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

* Apply suggestions from code review

Co-Authored-By: absidue <48293849+absidue@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-08-16 08:25:59 +00:00
ChunkyProgrammer 0cbe02f88d
Fix Update Subscription Details function when channel name is null (#3884)
* Simplify channel sorting functions

* use deepCopy
2023-08-15 18:17:10 +00:00
absidue 96230c9d1b
local API: Add support for PageHeader channel header (#3871) 2023-08-15 05:37:32 +00:00
absidue cb3a1bdc7e
local API: Support Post Live DVR videos (#3872) 2023-08-14 16:45:17 +00:00
ChunkyProgrammer 2d934eabea
Make profiles keyboard accessible (#3863)
Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2023-08-14 17:07:57 +02:00
Svallinn 079417dbd6
Main+Store: NeDB persistence and integrity + dependency update (#3845)
* Chore/Settings+Store: Remove unnecessary actions

* Store: Replace nedb-promises with @seald-io/nedb

* Main+Store: Ensure datastores' persistence before quitting

* Fix/Store: Fix db identifier oopsie

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

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-08-10 22:38:40 +02:00
absidue 4e4fe69384
Fix focus not showing on channel page tabs and in prompts (#3850) 2023-08-06 13:26:22 -04:00
ChunkyProgrammer 5fffe83237
Parse IV search urls (#3849)
* parse iv search urls

* Move removing query params to if
2023-08-06 14:21:45 +02:00
absidue 072066fbe1
Miscellaneous CSS cleanup (#3847) 2023-08-04 21:02:46 -04:00
absidue b48d04700f
Fix empty channels showing up as errored with RSS (#3824) 2023-08-05 00:33:03 +00:00
absidue e0fceedefd
Fix author for album playlists on the playlist page (#3838)
* Fix author for album playlists on the playlist page

* Only show artists
2023-08-05 07:30:54 +08:00
PikachuEXE 51576a9563
* Show error message in popular tab when instance does not support it (#3841) 2023-08-03 10:44:30 -04:00
absidue 8d9a1b8952
Use video durations from the watch history for RSS (#3839) 2023-08-03 10:32:59 -04:00
PikachuEXE ccefdb34a1
! Fix unnecessary error message display in toast when paused before video started playing on load (#3835)
Caused by https://github.com/FreeTubeApp/FreeTube/pull/3775
2023-08-03 13:01:08 +00:00
absidue 97593e3681
Use emit and props instead of $parent (#3834) 2023-08-03 12:57:09 +00:00
absidue 13d7a357f2
Add custom toast event bus for Vue 3 compatiblity (#3833) 2023-08-03 12:52:54 +00:00
absidue 2ff81338d8
Fix handling of DeArrow titles (#3825) 2023-08-03 12:48:23 +00:00
PikachuEXE 41fd6134ec
* Update top nav bar icon to remove focus state style (#3792)
Fix "navigation bar icons are still being highlighted after click"
2023-08-02 07:20:58 -04:00
PikachuEXE d8ed6b9f3e
Update ft-input for top navbar search input to behave more like Youtube one (#3793)
* * Update ft-input for top navbar search input to behave more like Youtube one

* * Implement mouseleave = deselect

* ! Fix clicking option/enter causes incorrect displayed input

* * Update search input to update input data based on KB selected suggesion value on keydown

* * Allow suggesion deselection via arrow up/down

* $ Fix naming, import code style

* - Remove unused import
2023-08-02 07:20:03 -04:00
ChunkyProgrammer 2296e3a58d
Fix: importing subscriptions with terminated channels (#3816)
* Fix: Cannot read properties of undefined (reading 'author')

* fix importing some newpipe subscriptions

only check url, not service_id
2023-08-01 07:47:52 +00:00
PikachuEXE d2075718b4
Fix outdated subscription cache clearing code when "Remove All Subscriptions / Profiles" performed (#3817)
* ! Fix outdated subscription cache clearing code when "Remove All Subscriptions / Profiles" performed

* * Use one action to clear cache instead of three

* $ Use early return
2023-07-31 21:09:15 -04:00
trostboot 01930e46f6
Add basic support for PotPlayer, MPC-HC, MPC-BE (#3798)
* Add basic support for mpc-hc/be, sort list

* Add startOffset handling for mpc-hc family

* Add basic PotPlayer support

* Fix indentations

* Undo entry sorting
2023-07-29 12:24:55 +02:00
trostboot 47f69fcb02
Fix playlists for external players with no index support (#3797)
* Fix playlists for players with no index support

* Fix typo
2023-07-28 08:56:40 +01:00
absidue 45a50bbbc1
Fix watch page breaking when subscriber count is missing (#3794) 2023-07-21 07:34:43 -04:00
Preston b9eb2a76fb
Add Tabs to subscriptions page for live streams and shorts (#3725)
* Add Tabs to subscriptions page for live streams and shorts

* Fix naming issue with fetching live streams via Invidious RSS

* Remove console log

* Better error handling and better live stream sorting

* Fix linter issues

* Change videos RSS feed. Make live stream call more efficient.

* Store last used tab in memory. Return to last used tab on mount

* Fix live sorting. Reorganize tabs and check for currentTab via created instead of mounted

* Fix linting issue

* Start Global locales object, add distraction free checks for subscriptions tab

* Start Global locales object for all locales

* Cleanup and reduce duplicate code

* Undo original distraction free settings change

* Fix missing change in previous commit

* Add distraction free settings to hide tabs

* Improve accessibility

* Make app-wide hide live streams setting override hide subscriptions live

* Fix incorrect all tabs disabled message

* Fix arrow key navigation

* Create shared UI component for the subscription tabs

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-07-21 07:33:34 -04:00
ChunkyProgrammer 095568e1b1
Channels: Add support for release and podcast tab (#3778)
* Channels: Add support for release and podcast tab (local)

* Add support for releases and podcasts tab (Invidious API)

* add urls with has_url

* Fix copy paste error

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-07-20 00:16:45 +02:00
trostboot 18b758ffaa
Update external-player-map.json: Add basic support for external SMPlayer (#3771)
* Update external-player-map.json: Add basic support for external SMPlayer

Adds basic functionality to open videos in SMPlayer.

Adding more parameters (e.g., startOffset or speed) is not possible at this time as SMPlayer expects different formatting compared to what FreeTube currently passes through.

* Update utils.js: Add special startOffset handling for SMPlayer

* Update external-player-map.json: Add startOffset for SMPlayer

* Update utils.js: Truncate startOffset for SMPlayer

If watchProgress contains a non-integer value, SMPlayer will simply parse it as 0. Thus, truncate it before passing it along.

* Update utils.js: startOffset comments

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

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-07-20 00:15:52 +02:00
PikachuEXE 32635d545c
! Fix exception thrown by `play()` called in timer handler in watch page (#3775) 2023-07-17 05:32:39 -07:00
PikachuEXE 37e67f58c9
Fix `Current Invidious Instance input field removes character while typing` (#3776) 2023-07-17 05:32:07 -07:00
Emma 13e18a8aa7
Improve responsiveness in playlist sidebar when one word channel names are long (#3772)
* Wrap long one word channel names in `infoLine`

* Set height of playlist section to auto on small devices to prevent overflow

* Center videoThumbnail in playlist sidebar to visually be the same as playlist view

* Move CSS changes closer together
2023-07-14 07:23:00 -04:00
absidue 0ba63d5405
Fix local API empty search results loading forever (#3770) 2023-07-13 08:49:47 +08:00
PikachuEXE 35868b408f
Update some views to opt out of "Hide Videos From Channels" (#3748)
* * Update channel view to opt out of "Hide Videos From Channels"

* * Update history, local playlist & subscription view to opt out of "Hide Videos From Channels"
2023-07-12 20:09:48 -04:00
PikachuEXE 325b36ea01
Update recommended video section to use hide videos from channel preference (#3749)
* * Update recommended video section to use hide videos from channel preference

* * Update setting tooltip text

* Update `or` to `and`

* * Update most popular view to use hide videos from channel preference
2023-07-12 20:09:28 -04:00
PikachuEXE 930184d29d
Fix duplicate content updates run on channel switch (#3764)
* Revert "Bump prettier from 2.8.8 to 3.0.0 (#3758)"

This reverts commit f77ae6da16.

* ! Fix duplicate content updates run on channel switch
2023-07-12 20:08:11 -04:00
PikachuEXE 0d10face50
Fix copyToClipboard function (#3762)
* Revert "Bump prettier from 2.8.8 to 3.0.0 (#3758)"

This reverts commit f77ae6da16.

* ! Fix function optioinal option argument declaration
2023-07-12 23:06:22 +02:00
absidue 8ab13b52d8
Extract published date and views for playlists with the local API (#3767) 2023-07-12 15:40:46 -04:00
absidue 11eee77dab
Improve the performance of the side nav (#3743) 2023-07-10 22:43:08 -04:00
absidue 35074efbdd
Fix local API comments for age-restricted videos (#3760) 2023-07-11 09:01:15 +08:00
absidue b0239d197f
Fix web throttling because of double deciphering (#3759) 2023-07-11 08:47:38 +08:00
petaded 3eb657cfed
Fix Hide Channels and Hide Premier settings (#3673)
* fix for invidious (+6 squashed commits)
Squashed commits:
[65932b4b4] update playlist and channel filtering
[952a7213a] update subscriptions js to use premiereDate over durationText
[530dea939] Add back isRSS and viewcount check to fix when in subscriptions page
[93ebb7654] Fix hide premiere
[de7a8b4ec] ft-list-lazy-wrapper put whitespace back to what it was
[8dadb59b1] move showResult from a method to a computed to work with v-if

* Fix Hide Premier for Invidous API

* Refactor code to be more redable with better doc

---------

Co-authored-by: petaded <code@zikl.co.uk>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-07-09 12:38:24 +00:00
Svallinn f7b7fe549b
Fix+Chore: Remove crop directives from community post's images (#3734) 2023-07-09 08:09:26 -04:00
ChunkyProgrammer cf88bd77d8
Add DeArrow support for ft-list-video titles (#3688)
* Add deArrow support for ft-list-video titles

* Implement requested changes

* Remove some code duplication

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

* fix lint issues + exception

* Check for vote count when title is not locked

Co-authored-by: Ajay Ramachandran <dev@ajay.app>

* simplify title

* Apply suggestions from code review

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

* remove unused clearDeArrowCache function

* Fix deArrow title

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

* allow using DeArrow without enabling SB

* add tooltip for DeArrow setting

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
Co-authored-by: Ajay Ramachandran <dev@ajay.app>
2023-07-03 18:27:49 +02:00
Svallinn 649525558b
Utils: Don't provide `ytdl://` protocol links to external players (#3720)
Providing these type of links is currently unnecessary
and can turn into a hassle when the players are extended by scripts
that are not expecting them and don't function as intended.
2023-07-03 18:26:56 +02:00
absidue beaa9cc477
Cleanup some duplicate channel tab URL handling code (#3697)
* Cleanup some duplicate channel tab URL handling code

* Move to method
2023-07-02 22:51:39 -04:00
absidue 1ba0865a09
Only use android formats when the video id in the response is correct (#3719)
* Only use android formats when the video id in the response is correct

* Fix typo in playability status check

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

---------

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2023-07-02 22:48:35 -04:00
PikachuEXE 242c93e163
Update subscription view to be able to load videos from video cache per channel (#3668)
* Changes from PR #3673

* * Update subscription view to be able to load videos from video cache again

* * Update subscription view to be able to load videos from video cache per channel

* * Remove meaningless argument `allowUseOfChannelCache`

* $ Remove unused imports

---------

Co-authored-by: petaded <code@zikl.co.uk>
2023-07-02 10:37:28 -04:00
absidue bcf21f6d44
Use android formats when available, web for everything else (#3715) 2023-07-02 08:42:28 +08:00
absidue 939352347d
Add a script to update the region/geolocation files (#3701)
* Add a script to update the region/geolocation files

* Update tooltip now that we only list supported geolocations

* Add language sensitive sorting
2023-07-01 10:08:09 -04:00
Jaden fc7c252722
Use playlist thumbnail provided by YT (#3710)
* Use playlist thumbnail provided by YT from Local API

* Use correct thumbnails for playlist page

* Fix playlistThumbnail not giving correct value

* Update youtubei.js

* Update package.json

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

* Update yarn.lock to align with package.json

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-06-30 18:18:43 +02:00
absidue afffbf69fc
Fix reading instances from the Invidious fallback file (#3712) 2023-06-28 06:15:44 +00:00
Wesley Appler d989af2326
Fixed incorrect invidious linking (#3711) 2023-06-28 08:44:49 +08:00
absidue 7c7e0e5d7d
Add back sort by oldest (#3698) 2023-06-27 13:30:36 -04:00
absidue 6e0395d58e
Support YouTube's new layout for shorts only playlists (#3708) 2023-06-27 13:13:48 -04:00
PikachuEXE 2c759b8ba1
* Update view to ignore keyboard events caused by user holding keys (#3709)
No point keep refreshing info on key hold
2023-06-27 19:04:48 +02:00
absidue 87a389cce0
Fix focus related race conditions (#3700) 2023-06-27 11:52:39 +00:00
absidue c102996b52
Fix search bar keyboard shortcuts after hide search bar is disabled (#3699)
* Fix search bar keyboard shortcuts after hide search bar is disabled

* Fix copy paste issue
2023-06-26 16:15:42 -04:00
absidue 0a471f8a17
Fix channel tabs accessibility (#3689) 2023-06-26 18:58:31 +00:00
ChunkyProgrammer 23d8af59f6
Fix some web build errors (#3687) 2023-06-26 18:13:32 +00:00
RikThePixel 96835dd703
Fix Hide Channel Subscribers setting still displaying subscribers if changed from a secondary window (#3504) (#3692)
* Fix Hide Channel Subscribers setting still displaying subscribers if changed from a secondary window (#3504)

* Revert naming change subscriptionCountText to channelSubCountText

* Use `!=` instead of `!==` for `subscriberCount` in ft-list-channel

* Set subscriberCount to null if `data.subscribers` is null in ft-list-channel.js

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-06-25 10:40:03 -04:00
absidue 3c6e1d1a8e
Escape HTML in local API text runs to prevent XSS (#3675) 2023-06-19 17:01:12 +00:00
Wesley Appler 8281df7b79
comment url & custom emoji on invidious API (#3658)
* comment url & custom emoji on invidious API

* Multi-custom emoji fix
2023-06-14 07:26:53 -04:00
Emma bb4b0a890a
Fix `proxyVideos` setting for legacy formats & hls urls (#3639)
* Fix `proxyVideos` setting for legacy formats & hls urls

- Replace the hostname of stream urls with the current invidious instance when `proxyVideos` is true
- Add `local` flag to iv hls URLs when proxy videos is true

* Add missing `proxyVideos` getter in `ft-video-player`

* Move change of URI to before `getProxyVideos`
2023-06-12 17:06:08 +02:00
PikachuEXE 27e9a22c21
Update watch page chapter component to scroll to current chapter on expand (#3610)
* * Update watch page chapter component to scroll to current chapter on expand

* ~ Remove irrelavent comment from copy & paste
2023-06-02 18:06:09 +02:00
absidue cd08373b28
Add subsections to the distraction free settings (#3591)
* Add subsections to the distraction free settings

* Change pages to page in section headings
2023-05-29 19:46:57 -04:00
PikachuEXE cf7c6b9974
! Fix live videos as list items had no save to playlist button (#3598)
Already present in watch page
2023-05-29 21:50:56 +02:00
Emma 042626349a
Fix history imports (#3595) 2023-05-28 21:57:31 -04:00
absidue 7d8a4c8cd7
Add support for the short published dates (#3588) 2023-05-28 13:18:45 -04:00
ChunkyProgrammer 8dbad618f9
IV: add support for hashtag pages (#3571)
* IV: add support for hashtag pages

* add fallback support

* remove locale strings
2023-05-26 23:01:26 +02:00
absidue a11533ac8a
Fix keyboard shortcut to toggle the captions (#3580) 2023-05-23 12:28:01 +00:00
absidue 6f95673cf5
Fix playlist thumbnail not getting proxied through Invidious (#3581) 2023-05-23 12:24:03 +00:00
PikachuEXE da6acf2599
Ensure screen saver blocker removed when window closed (#3557)
* $ Extract method for stopping screen saver blocker

* ! Ensure screen saver blocker removed when window closed

* * Move beforeunload event listener removal to beforeDestroy
2023-05-23 07:37:44 -04:00
absidue c53f5b6dac
Add distraction free setting to hide channel shorts (#3569)
* Add distraction free setting to hide channel shorts

* Add support for channel shorts URLs
2023-05-23 08:59:24 +08:00
PikachuEXE 9523bc733a
Fix comment section style inconsistency and more... (#3231)
* ! Fix YT comment loading for video with comment disabled

* * Update video view w/ Local API to render video comment disabled as no comment

* ! Fix style with less side effects
2023-05-22 17:37:59 -04:00
absidue 15b8dffaf3
Fix text wrapping for community posts (#3540)
* Fix text wrapping for community posts

* Use anywhere instead of break-word for overflow-wrap
2023-05-22 09:43:13 +08:00
absidue 3e543aeb24
Fix cursor moving while navigating search suggestions (#3566) 2023-05-21 13:50:27 +00:00
ChunkyProgrammer ccbf7e2155
Use script to create Invidious instance list file (#3545)
* Use script to create static instance list

* save cors, filter out cors when not electron
2023-05-20 15:07:04 +02: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
absidue 137362d7df
Parse shorts links in text runs (#3539) 2023-05-15 10:12:59 +08:00
absidue 9019be2419
Implement the shorts tab on channel pages (#3533)
* Implement the shorts tab on channel pages

* Remove testing code

* Upgrade YouTube.js
2023-05-15 10:01:18 +08: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
ChunkyProgrammer e32417b9cb
Parse IV community playlist attachments (#3465) 2023-05-13 13:23:02 +02:00
ChunkyProgrammer ff19c233c1
IV: Fix search cache issues when fetching more (#3486)
* Fix IV search cache issues

* Add comment

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

* add apiUsed

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-05-13 13:18:49 +02:00
PikachuEXE 8646e93f7f
Fix the flash when more data loaded in History & UserPlaylists view (#3507)
* ! Fix the flash when more data loaded in History & UserPlaylists view

* * Remove unused imports
2023-05-11 20:28:42 +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
absidue 6ef572d1fa
Deduplicate videos on the default trending tab (#3492) 2023-05-07 08:52:39 -04: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 9003b825e5
Fix sorting upcoming subscriptions (#3485) 2023-05-06 14:31:12 +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
ChunkyProgrammer c197b5ac93
IV: Allow fetching more community posts (#3466)
* Allow fetching more community posts with IV

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

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

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-05-06 12:22:29 +00:00
PikachuEXE 1c29745d98
Update History & UserPlaylists view to filter with delay (#3451)
* * Update History & UserPlaylists view to filter with delay

* * Use lodash.debounce to implement

* * Update delay to 500ms

* * Update to have delay with empty query string
2023-05-06 12:19:47 +00:00
PikachuEXE 8765d2ae6d
Fix local run parsing to ensure URL not manipulated unnecessarily breaking the URL (#3467)
* ! Fix local run parsing to ensure URL not manipulated unnecesarily breaking the URL

* Rename new variable
2023-05-03 00:05:30 -04: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
PikachuEXE f6d8e78d25
! Fix video comment external link parsing for local API (#3448) 2023-04-25 20:01:06 -04:00
PikachuEXE a3c4981ffa
! Fix thumbnail URL for protocol-relative URLs (#3452) 2023-04-25 23:12:40 +00:00
absidue db1e88ae16
Various performance improvements (#3455) 2023-04-25 23:02:39 +00:00
absidue 1e21033e82
Fix extracting chapters with handles from description (#3456) 2023-04-21 09:19:42 +08: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
PikachuEXE 8be4b0dffa
Fix "mention" in comments was rendered as link with channel URL (#3351)
* ! Fix "mention" in comments was rendered as link with channel URL

* ! Fix original space padding logic

* $ Refactor code as suggested
2023-04-17 09:22:05 -04: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
ChunkyProgrammer 9612df70cc
Small community post fixes (#3401)
* Small community post fixes

* fix #3387

* Check if post is empty

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-12 08:58:35 +00:00
Yaron Shahrabani c4f6033dee
Update Channel age restricted key (#3237)
* Update Channel.js

Typo fixed

* Fix channel age-restricted key in all files

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-10 08:08:55 -04: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
absidue 5aa67715d0
Reset current chapter index when changing videos (#3400) 2023-04-08 21:36:50 +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
PikachuEXE 5db3ab5b5c
Fix adaptive format picked by video JS sometimes not showing up in quality selector (#3350)
* ! Fix adaptive format picked by video JS sometimes not showing up in quality selector

* Apply suggestions from code review

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

* ! Workaround invidious issue on AV1 formats

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

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-04-01 18:27:30 +00:00
Emma 2a9ec5ee10
Prevent `channelInstance` from being `null` in community tab fallback (#3346)
* Create `getChannelInstanceLocal` function

which allows channel instances for the local API
to be set within the community posts fallback

* Remove channel variable in `getChanneLocal`

* Switch playlist fallback to calling `getChannelPlaylistsLocal`

* Prevent accidentally refetching channel instance from Local API

* Add fallback for fetching more channel videos through invidious

similar to the fallback for playlists

* Use existing `getLocalChannel` instead of creating a new function
2023-04-01 10:43:37 -04: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 94f21f293d
Fix the trending page refresh (#3347) 2023-03-26 09:32:36 +00: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 6513b5d517
Prevent throwing when poll choices do no have images (#3345) 2023-03-22 19:03:37 +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 fe44a75275
Fix alt + arrow keyboard shortcut when a channel tab is focused (#3317) 2023-03-22 08:41:34 -04:00
absidue 5dd8fb0b59
Hide the channel sort by dropdown when the tab isn't sortable (#3323)
* Hide the channel sort by dropdown when the tab isn't sortable

* Hide playlists sort by if there is only one playlist
2023-03-22 08:12:42 -04:00
absidue 4433a183c9
Fix joined date erroring on channels without a joined date (#3314) 2023-03-22 08:09:41 -04:00
dependabot[bot] d881275365
Bump youtubei.js from 3.3.0 to 4.0.1 (#3335)
* Bump youtubei.js from 3.3.0 to 4.0.1

Bumps [youtubei.js](https://github.com/LuanRT/YouTube.js) from 3.3.0 to 4.0.1.
- [Release notes](https://github.com/LuanRT/YouTube.js/releases)
- [Changelog](https://github.com/LuanRT/YouTube.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/LuanRT/YouTube.js/compare/v3.3.0...v4.0.1)

---
updated-dependencies:
- dependency-name: youtubei.js
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Await the toDash function

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-03-22 09:11:38 +08:00
absidue 54ecce1058
Fix lists occasionally having the wrong layout (#3338) 2023-03-22 08:57:06 +08:00
absidue 029f0cb0b9
Fetch the videos tab directly for local API subscriptions (#3315) 2023-03-18 20:27:56 +00:00
absidue 304152fe41
Workaround YouTube bug causing the community tab to be empty (#3318) 2023-03-18 20:25:52 +00:00
absidue f525b0e2d4
Clear community posts array when switching channels (#3316) 2023-03-18 20:09:06 +00:00
absidue 0212467419
Add Live tab to channel pages (#3273)
* Add Live tab to channel pages

* Handle invidious streams tab URL

* Clear live videos when navigating between channels

* Reset sort by when changing channels
2023-03-15 14:37:52 +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
ChunkyProgrammer c37cb95d1b
show member icon for invidious api (#3293) 2023-03-14 18:39:40 +01: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 1335604554
Properly show live and upcoming videos in playlists and up next (#3250) 2023-03-05 11:20:32 -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
absidue b2eaaaa42e
Fix handling user channels without subscribers (#3242) 2023-03-03 21:02:33 +00:00
absidue 7eb148ba51
Fix channel handle URLs with tabs (#3241) 2023-03-03 20:38:27 +00: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
ChunkyProgrammer 76d867a370
fix comment crash, render member info (#3196) 2023-02-16 18:47:12 +00: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
Artur 38fe74a4c6
Fix external player not opening on Subscriptions page (#3172)
* Changed undefined to null

If playlistId is set to undefined it will break /src/renderer/store/modules/utils.js:openInExternalPlayer() as it expects null or string. Undefined makes it believe it is a playlist and ignores the videoId

* revert last commit

* Added tests for undefined in openInExternalPlayer()
2023-02-09 19:24:27 +01: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 e197f9871a
Extract chapters from the description if they are missing (#3167) 2023-02-08 18:44:35 +00:00
absidue bd6f143918
Fix positioning of the live chat scroll to bottom button (#3168) 2023-02-08 18:32:39 +00:00
PikachuEXE 20064c6607
Fix last view playlist saving with multiple windows (#3137)
* $ Rename arguments in functions

* ! Fix last view playlist saving with multiple windows
2023-02-05 20:48:31 -05: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 29f511372f
Support storyboards on very short shorts (#3128) 2023-02-05 14:19:24 -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
Melih 5fd236d963
Fix video fetch when using invidious API and sorting by popular. (#3126)
* Fix video fetch when using invidious API and
also sorting by popular.

* Remove redundant latestVideosPage variable
2023-01-30 11:43:46 +08:00
Emma 7640a93ec9
Reduce overflow in playlist view (#3123)
* Prevent overflow on playlist view on small 📱displays

* Prevent transition of width on `.thumbnailImage`

* Expand styles to be responsive at more widths
2023-01-30 10:02:08 +08: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
absidue 633a20adb1
Fix typo causing the subtitle sorting to error (#3100) 2023-01-23 12:40:41 +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
absidue c3c63654c7
Use a single import for the brand icons (#3094) 2023-01-20 12:00:07 +01:00
PikachuEXE 590f3a6121
! Fix searching (2nd time onward) in channel view broken (#3073) 2023-01-20 01:00:29 +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
Emma 0f4bf0e87e
Map `videos` property on Invidious API response (#3090)
`invidiousAPICall` is returning an object with a `videos` property here
instead of a list.
2023-01-19 16:58:04 +01:00
PikachuEXE a89c2005e8
! Fix search view not loading result starting 2nd page via local API (#3074) 2023-01-19 04:35:20 +01:00
Emma 64d6d9b7ff
Correct argument on `invidiousGetPlaylistInfo` (#3089)
`invidiousGetPlaylistInfo` expects a `string`.
2023-01-19 08:49:56 +08:00
absidue 41687aa185
Don't react when selecting the current trending tab (#3070) 2023-01-18 09:21:35 +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 a953142377
Import store modules with ES6 imports instead of dynamically (#3064) 2023-01-15 09:03:16 +08:00
PikachuEXE 5f522d5635
! Fix searching in channel view broken (#3062) 2023-01-14 15:01:45 +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 97cb339ec5
Decipher format URLs with the local API (#3053) 2023-01-14 08:11:08 +01: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 0c69fc23e6
Generate local API sessions locally (#3052) 2023-01-12 07:54:09 +01:00
Emma 17ad3da18f
Update mastodon link to `@FreeTube@fosstodon.org` (#3038)
AFAIK mastodon.technology is shut down
2023-01-08 12:33:29 +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
absidue 8c181413ee
Use the new retrieve_player option in YouTube.js (#3022) 2023-01-03 09:55:39 +08:00
absidue 47613d8c37
Fix no sources error on the watch page (#3019) 2023-01-02 10:03:21 +08: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
absidue 492ad19558
Make getVideoParamsFromUrl and showExternalPlayerUnsupportedActionToast helpers (#3018) 2023-01-01 03:52:49 +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 eaeb472af1
Remove unused meta.icon properties from the router config (#3000) 2022-12-31 17:14:09 +01:00
absidue 2f01dd4277
Parse channel handles in video descriptions (#3011) 2022-12-31 11:07:53 +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 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 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 bef610f91b
Import the product name instead of using a define for it (#3003) 2022-12-27 10:15:15 +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
petaded c79674d956
Support extra youtube embed playlist links (#2972)
* Fix strange embed playlist links missing /

* support embed/videoseries links

* remove duplicated replace line

Co-authored-by: petaded <code@zikl.co.uk>
2022-12-22 15:22:12 +01: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
absidue 6f7adaaf72
Fix docs link in the data settings section (#2981) 2022-12-20 09:21:55 +08:00
PikachuEXE a09a94ac03
! Fix incorrect selector (meant to be multiple targets not nested) (#2962) 2022-12-19 20:57:26 +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
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
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
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
PikachuEXE e96116af10
* Update app menu to add items for going back/forward in router history (#2933) 2022-12-11 08:41:03 +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
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
absidue c1f257dd79
Clear cached subscription videos when removing all subscriptions (#2905) 2022-12-02 08:30:27 +01:00
absidue d793a8bcda
Make replaceFilenameForbiddenChars a helper (#2904)
* Make replaceFilenameForbiddenChars a helper

* Use function for screenshot file name checking
2022-12-02 08:29:01 +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 9600373216
Themes CSS deduplication (#2868)
* Deduplicate CSS rules for the Catppuccin Mocha colours

* Deduplicate CSS rules for the Dracula colours

* Deduplicate CSS rules for the themes

* Deduplicate CSS rules for the main and secondary colours
2022-11-15 09:14:35 +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
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 644b735005
Use the available space better in the player and theme settings (#2857) 2022-11-12 10:36:09 +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 46bbcafbbc
Reduce duplicate code by introducing a function to create a proxy agent (#2845) 2022-11-09 05:57:26 +00:00
dependabot[bot] 4bb582fabb
Bump socks-proxy-agent from 6.2.0 to 7.0.0 (#2838)
* Bump socks-proxy-agent from 6.2.0 to 7.0.0

Bumps [socks-proxy-agent](https://github.com/TooTallNate/node-socks-proxy-agent) from 6.2.0 to 7.0.0.
- [Release notes](https://github.com/TooTallNate/node-socks-proxy-agent/releases)
- [Changelog](https://github.com/TooTallNate/node-socks-proxy-agent/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TooTallNate/node-socks-proxy-agent/compare/v6.2.0...v7.0.0)

---
updated-dependencies:
- dependency-name: socks-proxy-agent
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Switch to hostname option, as the host option was removed

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2022-11-08 17:59:52 +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