Commit Graph

1457 Commits

Author SHA1 Message Date
JonahFoster 0663a29f39
Added a Nordic base theme (#4542)
* Added a Nordic base theme

* Added Nordic icon

* Added Nordic theme to switch

* Update src/renderer/themes.css

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

---------

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2024-02-03 11:25:15 -05:00
Jason ad9cabd5e4
Make video info section more concise (#4338)
* Implement proposed formatting changes

* Increase font-size of video metrics to 14px

* More closely colocate title and channel to compensate for larger video metrics font size

* Update breakpoint for single column template to 1000px to minimize icon wrapping

* Fix like icon being on a different line from the text on smaller screen widths

* Update all Watch breakpoints to 1050px from 900px
2024-02-01 08:03:22 -05:00
absidue 351fdb951d
Playlist performance improvements (#4597)
* Implement pagination for user playlists on the Playlist page

* Fix the load more loading icon being displayed off-screen

* Caching user playlists is unnecessary as they are already in the store

* ft-list-video: Only render description element if there is a description

* Minor speed ups in the playlists store

* ft-list-video: Remove superfluous template around view count

* ft-list-video: Replace watched property with historyEntryExists computed property

* playlist-info: Fix copying partially loaded user playlists

* Fix the playlist number not getting lazy loaded

* Reduce nesting levels

Co-authored-by: PikachuEXE <git@pikachuexe.net>

---------

Co-authored-by: PikachuEXE <git@pikachuexe.net>
2024-02-01 07:08:47 -05:00
PikachuEXE 5a6d4d5038
! Fix playlist type not passed when playing next/prev item in a user playlist (#4623) 2024-01-31 17:16:29 +01:00
ChunkyProgrammer cec2d3647f
Properly localize playlist view and video counts (#4620) 2024-01-31 14:54:25 +00:00
absidue 50bf28f94e
Fix search bar handling of Invidious channel URLs (#4568) 2024-01-30 00:39:10 +00:00
absidue d0e33fbc7b
Local API: List related games in featured channels section (#4562) 2024-01-30 00:37:29 +00:00
absidue 205924c33b
Workaround community post slider dependency incorrectly calculating its size (#4598) 2024-01-30 00:32:49 +00:00
ChunkyProgrammer c983e02011
Add support for viewing movie trailers with local api (#4391)
* Add support for viewing movie trailers with local api

* add support for age restricted trailers

* remove unused changes

* always show trailer, regardless of video playability status

* Improve movie parsing logic

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

* check for null instead of truthy

* Exclude unneeded properties

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2024-01-30 00:30:50 +00:00
dependabot[bot] 6d58410f39
Bump the eslint group with 4 updates (#4581)
* Bump the eslint group with 4 updates

Bumps the eslint group with 4 updates: [eslint-plugin-jsonc](https://github.com/ota-meshi/eslint-plugin-jsonc), [eslint-plugin-vuejs-accessibility](https://github.com/vue-a11y/eslint-plugin-vuejs-accessibility), [eslint-plugin-yml](https://github.com/ota-meshi/eslint-plugin-yml) and [vue-eslint-parser](https://github.com/vuejs/vue-eslint-parser).


Updates `eslint-plugin-jsonc` from 2.11.2 to 2.12.2
- [Release notes](https://github.com/ota-meshi/eslint-plugin-jsonc/releases)
- [Changelog](https://github.com/ota-meshi/eslint-plugin-jsonc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ota-meshi/eslint-plugin-jsonc/compare/v2.11.2...v2.12.2)

Updates `eslint-plugin-vuejs-accessibility` from 2.2.0 to 2.2.1
- [Release notes](https://github.com/vue-a11y/eslint-plugin-vuejs-accessibility/releases)
- [Changelog](https://github.com/vue-a11y/eslint-plugin-vuejs-accessibility/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vue-a11y/eslint-plugin-vuejs-accessibility/compare/v2.2.0...v2.2.1)

Updates `eslint-plugin-yml` from 1.11.0 to 1.12.2
- [Release notes](https://github.com/ota-meshi/eslint-plugin-yml/releases)
- [Changelog](https://github.com/ota-meshi/eslint-plugin-yml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ota-meshi/eslint-plugin-yml/compare/v1.11.0...v1.12.2)

Updates `vue-eslint-parser` from 9.4.0 to 9.4.1
- [Release notes](https://github.com/vuejs/vue-eslint-parser/releases)
- [Commits](https://github.com/vuejs/vue-eslint-parser/compare/v9.4.0...v9.4.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsonc
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint-plugin-vuejs-accessibility
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: eslint-plugin-yml
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: vue-eslint-parser
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

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

* v Revert eslint-plugin-vuejs-accessibility update

* ! Fix `progress` missing label

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: PikachuEXE <git@pikachuexe.net>
2024-01-29 18:01:12 +01:00
PikachuEXE e560a8fb60
Update places generating sharable YT video URLs to always return prefix https://youtu.be/ (#4547)
* * Update places generating sharable YT video URLs to always return prefix https://youtu.be/

* ! Fix short form URL
2024-01-25 08:37:35 -05:00
Jason f763b00066
Fix quick bookmark buttons appearing for remote playlists (#4592) 2024-01-23 06:36:03 +01:00
Jason 64e3f32f78
Video title filter / blacklist (#4202)
* Implement hiding of videos with user-inputted text

* Implement ft-input minInputLength

* Enable for playlists

* Enable feature on channel pages

The premise for this change is that users would not want to see that forbidden content anywhere, as opposed to hidden channels, where you're clearly on a channel page to see things from that channel.

* Fix 'Play Next Video' playing forbiddenTitle videos and hidden channel videos

* Fix issue of hidden recommended videos taking up vertical space

* Rename variables to better match non-video-specific function, and remove blocks from History and videos in playlists

* Fix to respect hideForbiddenTitles value

* Modify label

* Clarify restriction affecting original titles

* Add toast for entered input of length below min input length

* Add toast for element already exists

* Update to not clear if duplicate tag is entered for Hide Forbidden feature
2024-01-22 17:59:46 -05:00
ChunkyProgrammer 1becb8eaf2
Fix system locale setting logic (#4570) 2024-01-19 19:24:57 +01:00
ChunkyProgrammer 0f60880738
remove dearrow markers from titles (#4569) 2024-01-18 23:14:26 +00:00
PikachuEXE 32a2ad9479
Add feature to set a playlist as quick bookmark target (#4518)
* + Add feature to set a playlist as quick bookmark target

* Add back button to watch page

* focus behavior style update

* * Different button text when video saved

* ! Fix mutation function `removeVideos` (still unused)

* * Make default generated favorites playlist as default quick bookmark target

* ! Add fix for `deleteVideoIdsByPlaylistId`

* * Update button text

* * Update quick bookmark playlist first allow revert later

* * Update single playlist view to hide fav button when viewing the target playlist

* - Remove unused code
2024-01-17 22:52:42 -05:00
PikachuEXE 251abe4241
* Make top nav able to parse sharable video URL with playlist param (#4548) 2024-01-15 20:46:24 +00:00
ChunkyProgrammer ae7a2fa221
Add dearrow support for thumbnails (#4520)
* Add dearrow support for thumbnails

* add translations

* add missing tooltip

* make hidden thumbnails take a higher priority over dearrowed thumbnails

* Implement code suggestions

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2024-01-15 04:20:15 +00:00
trostboot 40ff63abbb
Add toggle to suppress sending additional args to external players (#4515)
* Add toggle to supress sending additional args to ext. players

* Reverse ignoreArgs conditional logic

* Disable custom arg input if args are disabled

* Keep custom arguments, rename option accordingly
2024-01-12 23:06:52 -05:00
PikachuEXE dfbb12c444
! Fix comment sort breakpoint (#4514) 2024-01-07 20:52:24 +01:00
PikachuEXE f25b537901
* Update playlist view to auto load next page for local API to workaround issue of useless continuation data (#4519) 2024-01-06 11:27:17 +01:00
Jason baa7b014eb
Fix caption sorting & label (#4513)
* Fix auto-translated captions not being ordered properly in non-English languages

* Fix locale showing as 'locale name' in captions list
2024-01-06 11:25:16 +01:00
PikachuEXE c40b4a69d5
(Multiple) Local Playlist (instead of saving video in one hidden list) (#4234)
* ! Fix add/removing videos from favourite list

* ! Fix playlist type not passed into video list item component

* ! Fix playlist data loading issue on new windows

* ! Fix user playlist data parsing

* * Ensure playlist view rerender on video additonal removal for displayed playlist

* ! Fix icons & moving videos up/down in user playlist

* * Don't show move up/down buttons when cannot be done

* * Make user playlist view filtering function now works for filtering playlists

* ! Fix style of prompt from any button within playlist-info component

* $ Refactor a function to use early return style

* * Disallow empty playlist name when saving in playlist edit mode

* * Update add video to playlist prompt to have simple filtering like user playlist view

* * Update playlist view to only show video reorder/remove buttons in edit mode

With notice message

* ! Fix playlist view for remote playlist unnecessary reload on save

* ! Fix add to playlist prompt behaviour when some playlists are hidden due to filtering

* $ Remove unused watch function arguments

* * Update user playlist view create new playlist button position

* * Update playlist view to add transitions to video reorder/removal

* * Allow playlist with different case to be created

* * Update visibility of user playlist related action components according to hide playlist settings

Only those visible on video, remote playlist are updated

* * Update video items to only show add to playlist buttons on hover

* - Remove add to favorites button from video list item component

* * Update watch-video-info component to add "add to playlist" button

* * Update watch-video-info component to remove "add to favourite" button

* * Ensure video thumbnail image displayed in 16/9 aspect ratio

Mainly due to YT missing video thumbnail image got different aspect ratio 4/3

* * Update new buttons theme

* * Put edit playlist button before copy button

* * Move "remove video from playlist" button to most right

* * Make video reorder & remove button visible on hover in user playlist view, regardless of "edit mode"

* ! Fix video count parsing for user playlist

* * Update user playlist to allow duplicate video entries (per video ID)

* * Remove extra attributes assignment to video object except `timeAdded`

Unintended change

* * Update copy playlist button to like adding multiple videos to playlists

* * Update copy playlist prompt to prefill title if create new playlist prompt shown

* * Ensure all playlists have `playlistName`

* $- Remove unused playlist property `removeOnWatched`

* * Update read all playlist code to ensure existing "default" playlist properties (_id, protected) have same values as those in default

Also fix issue discovered during testing

* *- Remove unnecessary code line

* * Update playlists from default playlists to be deletable

* ! Fix duplicate `timeAdded` value for videos copied from user playlist

* ! Fix playlist import (tested with db file exported from this branch)

* * Update grid view to only display playlist title up to 255 chars

Still can see full title in single playlist view

* * Update add video to playlist prompt to only display playlist title up to 255 chars

* * Update text of new playlist button to be same as new profile button

* * Ignore many extra keys from playlist objectrs

Also make data import check for object keys against required keys not key counts

* * Disallow playlist import from changing internal playlist ID of existing playlists

Existing playlists are matched by playlist name, not by internal playlist ID

* * Ensure playlist name & description trimmed when saved

* * Add missing change for importing playlist to ignore `protected`

* $ Refactor code for "video object has all require keys"

* ! Fix style of prompt from any button within playlist-info component again

z-index war

* * Update some empty message & button text

* * Ensure playlist item action buttons are hidden during animations

* ! Fix other prompt z-index

* * Update `showAddToPlaylistPromptForManyVideos` to throw error when required keys missing from passed in video data

* *- Remove unused video property `paid` from playlist related code

* *- Remove unused video property `type` from playlist related code

* ! Fix duplicate playlist displayed on playlist conversion

* *- Remove unused video property `published` from playlist related code

* * Don't require & generate property `timeAdded` when display a prompt

* *- Remove unused video property `isLive` from playlist related code

* ! Fix text

* ! Revert code change for debugging only

* ! Fix CSS for "Ensure playlist item action buttons are hidden during animations"

* * Update add playlist button to be shown for live videos

* + Add clear all playlists button

* * Update add video to playlist prompt to swap "save" & "create playlist" button

* ! Fix playlist view won't load after default playlist added due to lack of playlist

* * Show toast message when no playlist selected after pressing save button

* * Update add video to playlist prompt to show latest updated playlist first

Easier for copying playlist with new playlist(s)

* ! Fix watch page when visited via history after viewing the video from a deleted user playlist

* ! Fix share buttons emitting user playlist IDs

* * Add toast message after removing all playlists

* ! Fix remote playlist video list rendering with duplicate videos

* ! Fix missing key for some direct child elements under `transition-group`

* ! Fix animation introduced to unnecessary elements

* ! Prevent video link click during animation

* ! Fix playlist creation/removal not reflected in other windows

* * Ensure playlist visual selected state in sync with data in parent

* * Update add video to playlist prompt to auto select playlists created after prompt shown once

* * Update copy playlist button to show warning about not loaded videos when some not loaded yet

For remote playlist

Won't work for Invidious though (coz no way to load more)

* * Update add video prompt to make it easier to access buttons via keyboard

* * Make video reorder & remove button always visible in user playlist view

* * Make plus button can be focused with tab

Side effect is thumbnail link can be focused too (otherwise can't make plus button visible)

* * Update add video to playlist prompt to focus on search input on shown

* * Accept playlist optional property `createdAt` when importing

* * Update playlist view to always show add to playlist button

* $ Refactor `inUserPlaylist`

Only playlist view would supply `playlistType`

* * Improve accessibility for new prompts

* * Make edit playlist inputs focused on entering edit mode

* * Make most prompts focus back to last focused element on close

* $ Use tabindex 0 for prompts

Possible tabindex values unnecessary with elements programatically focused

* * Update add video to playlist prompt to focus back to search input after new playlist created

* * Update ft-list-video to focus back on thumbnail link element after add to playlist prompt closed

* ! Fix unable to import duplicate video entries into an existing playlist

* ! Fix create playlist prompt looks unclosed after playlist created when opened via add video to playlist prompt

* ! Fix duplicate video entry ID when playlist with duplicate videoId entries copied to another playlist

* ! Fix issues caused by last merge in e291cc8b41b2273a0d77c9f35ea760f0e0f7ac10

* $ Remove unused imports

* ! Fix default playlists added when no playlist stored had no required attributes added on 1st run

* ! Fix invalid prop type warning

* * Use v-if instead of v-show

* $ Just assign bool value instead of if-else

* + Update playlists view to add sorting option

* $- Remove unnecessary property assignments

* ! Fix issues caused by "Remove unnecessary property assignments"

* ! Fix issues caused by "Remove unnecessary property assignments"

* * Ensure sort by time also fallbacks to playlist name sorting

* ! Fix add/remove video does not update playlist last created time

* ! Fix multi window playlist sync

* * Show filtering input & sorting element when no. of playlist > 1

* * Update upcoming video to allow saving in playlist

* ! Fix unable to visit previous video when playing first video in a playlist

* * Update sorting options labels

* ! Fix add to play prompt max width

* ! Fix user playlist view incorrectly sorted playlists by latest updated first when filtered

* * Update add to playlist prompt to add sort options

* $ Remove unused classname

* ! Ensure new playlist button focused after add to playlist prompt closed while thumbnail link unselectable

* * Add playlists sort order for last played at, update it on play

* ! Fix bug introduced by last merge

* ! Fix thumbnail not respecting backend preference

* ! Fix empty playlist thumbnail in single playlist view

* * Make adding large no. of videos faster

* $ Remove unused mapActions entries

* $ Remove unused and unusable playlist code for inserting video IDs into a playlist

* * Update single playlist view to only show `Remove watched videos` btn when there is any video

* ! Fix prompt style issue caused by old branch changes

* ! Fix removing video from local playlist remove all entries with same video ID

* ! Fix adding video does not have uniqueID & timeAdded set

Caused by previous add many video performance fix

* ! Fix navigation in user playlist between entries of same video

* * Reflect playlist updates on watch page playlist panel

* $- Remove outdated incorrect prompt style fix

* ! Fix add video to playlist prompt too high when there are too many playlists

* ! Fix watch page play next/prev video in local playlist

* ! Fix error in online playlist playing

* * Keep partial playlist backward compatibility by restoring `type` in persisted playlist videos

* ! Fix grid item for playlist to hide external player button for local playlist

* * Make history rememeber uniqueId (local playlist video entry) when playing video with local playlist

* ! Fix grid item for video in user playlist to hide external player button

* ! Fix grid item for video in history with user playlist to hide external player button

* ! Fix grid item for video in watch page playlist component with user playlist to hide external player button

* * Update watch page to clear `uniqueID` from query when not playing local playlist

* ! Fix watch page about user playlist detection on new window

* * Reflect playlist updates on watch page playlist panel, even for currently playing video

* ! Allow video with local playlist to be played in external player, but without playlist

Also add missing fix for WatchVideoInfo

* ! Fix external player handling for video in local playlist

* ! Fix ft-video having different URLs in links

* yarn run lint-style-fix

* $ Rename uniqueId to playlistItemId

* * Ensure local playlist ID won't conflict with remote playlist ID

* - Remove import video while creating playlist related code

* * Make text translatable

* * Make sort option text translatable

* ! Fix reverse condition

* $ Just use ?.

* Code review changes

* Spaces

* beforeDestroy

* Remove unused methods

* Remove infoData

* filter > find

* avoid importing `crypto` from NodeJS

* Compress CSS ruleset

* $ Remove useless prefix from key

* Use template for element with v-if only

* Make playlist selector look more selectable (cursor: pointer)

* Translate toast messages and fix remove watched videos from playlist

* ! Fix translation

* - Remove unused methods

* $ Remove workaround for issue which cannot be reproduced anymore

* $ Remove remaining useless code following last commit removing workaround

* you have no playlist > you have no playlists

* CSS use var --horizontal-directionality-coefficient

* * Update danger buttons color to primary (like clear search cache button)

* ! Fix playlist icon container size

* ! Fix sorting in add video to playlist prompt when filtered

* $- Update ft-inputs to removed prop input-tabindex

* ! Fix vue warning

* + Add toggle to export playlist for older FT

* * Update tooltip text

* ! Fix vue warning

* * Update text align

* * Remove the extra surrounding spaces

* Backtick > quote

* - Remove useless prop

* Fix tootip in lower width view

* Update default filename

* * Make tooltip auto-wrap

* Revert "* Make tooltip auto-wrap"

This reverts commit 7d932b936c.

* Adjust tooltip styling

* * Wait for local playlist loading only when playing with a user playlist

* * Wait for local playlist loading only when playing with a user playlist requested

Request user playlist can still be absent (but not requested for no playlist or remote playlist)

* ! Fix single playlist view cover image having link when no video

* ! Workaround create playlist prompt won't close when enter pressed in input box

* ! Fix clear text button style

* ! Fix copying playlist twice to the same user playlist produces same playlistItemId

* ! Fix add video to playlist prompt input box style

* ! Fix workaround for "create playlist prompt won't close when enter pressed in input box"

* ! Ensure add video to playlist prompt updated when a playlist deleted (in another window)

* ! Avoid saving and displaying unwanted video attributes into playlists

* ! Fix playlist view for deleted user playlists

* ! Fix copying playlist twice to the same user playlist produces same playlistItemId

Real fix
Cause of issue: updating property of input objects (which is shared across multiple run)

* ! Fix search suggestions being blocked by playlist info component in single playlist view

* ! Fix warning when reversing playlist in watch view

* ! Fix prompt in playlist view (playlistinfo component) not above sidebar

* Remove CSS top comments absent in other CSS files

* Remove not useful comment for CSS

* Float with variable

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

* Revert "! Fix clear text button style"

This reverts commit 44ed286848.

* Missing change for Revert "! Fix clear text button style"

* $ Remove unused style for ft-playlist-selector

* Apply changes from review

* * Use $tc for translation entries with different value according to count values

* ! Fix playlist link in watch view

---------

Co-authored-by: Jason Henriquez <jasonhenriquez@protonmail.com>
Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2024-01-03 19:44:57 +01:00
pkrasicki ead8fc23a9
Fix style for the Select component (#4405)
* Fix style for the Select component

Fixes #1804

Fixes the width of dropdowns and changes their style a little bit

* Fix lint

* Fix comments partially obscuring the sort dropdown

* Move select tooltip
2024-01-03 09:11:10 +08:00
Jason bed4af1c46
Setting to turn on subtitles by default (#4450)
* Add back 'Turn on Subtitles by Default'

* Update variable name

* Fix double-selection issue when auto-generated & native tracks exist, & fix similar pre-existing bug

Also fixes pre-existing bug with pressing 'c' having the effect of multiple tracks (inaccurately) showing as selected.
2024-01-03 08:28:13 +08:00
efb4f5ff-1298-471a-8973-3d47447115dc 9a4637c2b2
Update player-settings.vue (#4511) 2024-01-02 15:10:09 -05:00
absidue b2e1ae0c70
Cleanup shorts duration parsing now that YouTube has removed it (#4509) 2024-01-02 18:08:59 +00:00
absidue bb83a9dea5
Fix the local API about tab for channels without a joined date (#4508) 2024-01-02 16:54:51 +00:00
Jason 57930d8439
Fix forward button being enabled after clicking on forward button (#4462) 2023-12-20 23:21:28 -05:00
absidue 6541695c41
Local API: Support extracting about information from YouTube's new about popup (#4370)
* Support extracting about information from YouTube's new about popup

* Update YouTube.js from 7.0.0 to 8.0.0
2023-12-20 22:27:49 -05:00
absidue 02ee4c8148
Only bundle the Swiper modules that we use (#4455) 2023-12-16 13:50:09 +00:00
Simon Epstein ca94bcef87
Hide playlists in channel search results if "hide channel playlist" preference selected. (#4454)
* Hide playlists in channel search results if "hide channel playlist"
preference selected.

* Apply filtering to invidious api response.

* Correct playlist filtering predicate for invidious API.

---------

Co-authored-by: Simon Epstein <simon.epstein@67bricks.com>
2023-12-16 00:35:17 +00:00
Jason 3c3a83e69d
Fix issue with subscribe button styling in specific views (#4451) 2023-12-15 22:35:22 +00:00
PikachuEXE b945cecb62
! Fix ft-input style (#4437) 2023-12-11 14:03:18 -05:00
Shroomy bc1757e009
Search input keyboard focus enhancements (#4282)
* Search input keyboard focus enhancements

Select text in search input when using Ctrl-L/Meta-L or Alt-D to focus
search input

Add new Slash key shortcut to focus input without selecting text

* Fix search input focus interfering with KDE clipboard sync

* Remove Slash shortcut for focusing search input

* Remove unused function
2023-12-09 12:49:13 +01:00
ChunkyProgrammer d6a6cc0349
use swiper.js instead of tinyslider (#4427) 2023-12-08 20:24:08 +01:00
absidue 695f1d7c89
Various small watch page changes (#4423) 2023-12-05 16:22:57 +08:00
Jason fc210aa663
Order watched recommended videos last (#4394)
* Implement change

* Update to use local variable to potentially improve performance in  non-first load case
2023-12-02 10:19:25 +01:00
ChunkyProgrammer a67541ed03
IV: check for 404 and 500 for subscriptions (#4410) 2023-12-01 17:00:11 +00:00
Jason 71addd2a47
Channel subscribe button in search results (#4376)
* Add subscribe button to channel search result

* Fix description logic not accounting for forceListType

* Fix video list item width issues on smaller viewport widths (esp. when in List mode)

* Expand link area for hashtag and channel list items

* Equalize thumbnail width of different element types (channel, playlist, hashtag, video) in list view

* Fix ft-list-playlist not actually respecting imposed appearance prop

* Add pointer-events: none to # of videos in playlist bar

* Adjust channel click area to be full width in grid view

* Adjust list item sizing for mobile devices

* Implement least-changes fix to subscribe button wrap, & fix channel icon resizing on smaller device sizes
2023-11-28 17:06:35 -05:00
Mitchel Paulin 1838f1e7df
Use F5 to refresh subscriptions (#4399)
* Use F5 to refresh subscriptions

* Add it in other spots as well
2023-11-28 00:26:06 +00:00
Mitchel Paulin 245fb122a5
Miscellaneous improvements to settings page styling (#4235)
* Miscellaneous improvements to settings page styling

* remove superfluous flex box

* Leave buttons as primary color

* PR suggestions
2023-11-28 08:14:32 +08:00
Jason c547c15fd4
Fix bug (#4392) 2023-11-26 20:36:25 -05:00
absidue cb883f254f
Cleanup SponsorBlock video id hashing (#4384) 2023-11-26 08:30:56 +08:00
Jason 6af85b3726
Show latest from channel (#4352)
* Implement 'show latest video from channel' feature

* Apply suggestions from code review

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

* Adjust ordering to maximize chance of content being presented

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-11-26 08:27:29 +08:00
absidue 0bde0b376b
Local API: Support the author-less auto-generated album playlists in video lists (#4371) 2023-11-25 18:16:28 -05:00
Jason 62903ceed8
Open/close all settings tabs persistent toggle (#4204)
* Open or close all settings tabs toggle

* Update labels to expanded/collapsed

* Move settings expansion toggle on top (& shorten label)
2023-11-25 18:44:29 +01:00
Jason 47946ff453
Profile settings UX improvements (#4358)
* Update Edit Profile styling, labels, and order

* Introduce additional styling updates

* Remove check for channel name of All Channels, as that can be faulty for users who renamed it & had another profile take the name

* Force use of All Channels profile translation (& forbid alteration of All Channels profile name

* Combine ProfileSettings and ProfileEdit routes under one route

* Implement active settings profile styling & profileList watcher

* Fix pre-existing bug of selected channels & count in Other Channels not updating when changing the profile filter

* Fix pre-existing behavior of filter profile selection resetting after each use

* Fix pre-existing bug with Edit Profile Subscription List of count bugging after adding new channel mid-count

And vice versa with removing channel mid-count on Other Channels.

* Fix two toasts to use localized profile name, & remove unnecessary mounted

* Remove old modification of base ft-input styling
2023-11-25 18:23:27 +01:00
Jason 16050c79d9
Landing page logic fix (#4378)
* Push fix

* Fix bug

* Prevent subscribe dropdown from opening on SubscribedChannels route
2023-11-24 23:15:47 +01:00
Jason 7e61e53cd6
Implement minor settings section visual fixes & height change (#4343) 2023-11-23 16:08:53 -05:00
Jason 9726cec075
Implement use of color variables (#4351) 2023-11-23 16:06:35 -05:00
Jason e68c534e6c
A new way to subscribe (#4238)
* Implement styling for new subscribe button

* Implement dropdown element and styling

* Implements remaining styling and logic

* Correct use of aria-selected in FT

Note: was able to add aria-controls to ft-profile-selector because it keeps the hidden dropdown in the DOM. The same is not true of the ft-icon-button or ft-subscribe-button. Main point: aria-expanded should go on the button opening the dropdown, not the dropdown itself.

* Resolve subscribe button staying upon bug

* Remove unneeded vendor-specific transition prefixes

See discussion here: https://www.web-plus-plus.com/Articles/css-transition-moz-and-webkit-vs-css3
2023-11-22 17:19:11 +00:00
CelularBat 62e7b439db
Display more profiles on the profile drop-down list, v2 (fixed for low res, fixed linter) (#4359)
* Update ft-profile-selector.css

Fixed for low res, fixed linter complains

* Update comment to max-block-size

* comment to max-block-size

fixed typo

* Update ft-profile-selector.css

adjust for screen with horizontal navbar (mobile)

* Update src/renderer/components/ft-profile-selector/ft-profile-selector.css

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

* Update src/renderer/components/ft-profile-selector/ft-profile-selector.css

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

* Update src/renderer/components/ft-profile-selector/ft-profile-selector.css

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

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-11-22 11:14:54 -05:00
absidue d1a7b84bf3
Display currently watching viewer count on live streams (#4206)
* Display currently watching viewer count on live streams

* Improve watching count styling

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

---------

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2023-11-21 06:05:21 -05:00
absidue c219926c5e
Fix block channel channel ID validation (#4366) 2023-11-21 02:22:29 +00:00
Jason 3fc2e547c9
Update to silently allow channel links (with IDs) (#4347) 2023-11-20 21:11:15 -05:00
Mitchel Paulin 86bad257f5
Add hide channel option directly to More Options menu (#4228)
* Add hide channel option directly to More Options menu

* Added ability to unhide channels as well from the same menu

* Fix issue where unhide would not work with channelId

* Replace filter with some

* Remove extra hide channel

* Hide by channelId rather than name

* Shuffle lang terms to put channel name at the front

* Do not check channel name anymore

* One more spot

* Fixed lang terms
2023-11-20 21:04:41 -05:00
Jason 58fe474d9f
Make landing page configurable (#4200)
* Implement customizable landing pages

* Implement curated list for default landing page dropdown options

* Update top nav link to redirect back to selected landing page

* Update top nav title to be 'Go to {page}' for improved clarity

* Remove landing page from selection and/or restore selection to default if is no longer valid
2023-11-20 15:01:18 -05:00
Benjababe c57daa8cb2
add image to poll & updated quiz style (#4318) 2023-11-17 03:05:53 +00:00
absidue 582df9543e
Move hideOutlines to the utils store instead of using provide/inject (#4246) 2023-11-17 02:08:10 +00:00
Ajay Ramachandran 1acdc0a27f
Fix DeArrow votes threshold too high (#4321)
This was a mistake that I originally suggested. Unverified submissions will be at -1 votes and will still be ignored.
2023-11-12 21:11:48 -05:00
absidue 61fc91f6a2
Add missing Electron guards after #4230 (#4311)
* Add missing Electron guards after #4230

* Fix logic issue
2023-11-10 21:25:51 -05:00
Anima 820264ed62
video id hash length to 4 (#4313) 2023-11-09 22:35:45 +00:00
Benjababe fcb230145b
Add identifiers to channels hidden by ID (#4230)
* add description option to hiding channels

* does channel id search

* add tag tooltip

* legacy support for hidden channels

* update removeTag

* add parenthesis to id name

* add icon and id checking before requesting

* update id regex

* decouple channel hidden from tags

* update handling for legacy hidden channels

* remove tag description

* formatting

* newline

* shorten retrieving hidden channels

* separate channel api requests

* refractor ft-input-tags.js

* replace secondaryName with preferredName for tags

* unify hidden channel name/icon retrieval function

* remove tooltip from ft-input-tags

* auto update hidden channel if ID was used

* remove hiding channel by name

* i18n channels hidden disabled message

* run auto hidden channel id update once

* Update src/renderer/components/ft-input-tags/ft-input-tags.vue

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

* add text selection for ft tags

* add ft-input-tags icon url

* fix icon link

---------

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2023-11-08 23:08:16 -05:00
Wesley Appler 6bbf11f464
Fixed order of elements to allow for proper tabbing in comments section (#4099)
* Rearranged elements and fixed css

* Fixed unclickable comment sorting at 800<=width

---------

Co-authored-by: Wes Appler <wes@lamemakes>
2023-11-07 23:21:12 +00:00
ChunkyProgrammer 7304d75239
Localize proxy test info when possible (#4255)
* Localize proxy test info when possible

* Use a second find in-case a locale with the same language is added in the future

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

* Fix syntax error

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

---------

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-10-31 18:07:42 +01:00
absidue 24678db81d
Handle channel URL resolve redirects in the local API (#4205)
* Handle channel URL resolve redirects in the local API

* Refactor into a for-loop
2023-10-30 22:00:18 -04:00
Jason 262dd67809
Chores: move 'blur' to be thumbnailPreference, move 1 dep to devDependencies (#4218)
* Chore: move stylelint-use-logical-spec to devDependencies

* Update blur to be a thumbnail preference instead of its own ft-toggle-switch

* Update en-US.yaml
2023-10-30 21:59:34 -04:00
absidue 6d6fc73059
Add a 15 second timeout for fetching the Invidious instances at startup (#4233)
* Add a 15 second timeout for fetching the Invidious instances at startup

* Use a better name for the timeout parameter

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

* Fix docs

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-10-27 00:09:49 +00:00
Jason 881bc67aac
Add logo hover styling (#4209) 2023-10-23 00:21:01 -04:00
PikachuEXE b55ad5d327
! Fix single playlist view item index style (#4179) 2023-10-20 17:50:48 +02:00
absidue 046462e024
Fix proxy settings test (#4192) 2023-10-20 15:40:40 +00:00
absidue 05499ce113
Fix playlists not showing up on artist topic channels with the local API (#4129) 2023-10-16 16:17:02 -04:00
Benjababe 7805763b09
Truncate title of playlist in queue window (#4134)
* truncate title of playlist in watch window

* Update src/renderer/components/watch-video-playlist/watch-video-playlist.vue

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-10-14 11:35:15 +00:00
Emma 1a92d4b1b7
Wrap channel tabs as soon as there isn't enough screen space (#4139)
* Wrap channel tabs as soon as there isn't enough screen space

* Remove redundant `flex-wrap`
2023-10-14 11:20:19 +00:00
Benjababe 3c0ed260c1
Keep download folder path when changing to 'ask for download path' and back (#4101)
* separate ask download folder from folder path value

* update variable name

* update download folder prompt handling
2023-10-10 22:44:57 -04:00
absidue 0ebcd24522
Fix error when clicking on the current quality in the DASH quality selector (#4130) 2023-10-11 09:31:04 +08:00
ChunkyProgrammer fffd1393b0
IV: Show channel handle in search results (#3791)
* IV: Show channel handle in search results

* move handle to front, add separator

* remove unused locale key
2023-10-10 20:31:42 +00:00
Jason 8a456834ad
Fix styling for Channel page on desktop view (#4112) 2023-10-08 18:29:07 +02:00
PikachuEXE 5c8d49bf51
! Fix playlist item fetching for local API (#4102) 2023-10-07 22:14:16 +00:00
PikachuEXE 0c92b63b99
! Fix watch page video published time parsing (#4105) 2023-10-07 21:15:51 +00:00
PikachuEXE c936a0ea5e
Update FT history import to accept key lastViewedPlaylistId (#4038)
* * Update FT history import to accept key `lastViewedPlaylistId`

Also update the strange required key check logic
Which was last changed by 58882b3e16

* * Remove unused video property `paid`
2023-09-29 13:16:00 -04:00
Jason bff3a2f824
Mobile/tablet channel page & share button visual improvements (#4061)
* Implement fix to elements escaping container on Channel page at small widths

* Show all Channel tabs on smaller viewport widths & reduce bulky gap

* Update Channel page to not break at even lower sizes

* Re-introduce channel button clipping fix

* Implement updated share button styling

* Fix issue with prompt box shrinking on small enough viewport sizes / overflow

* Update share button to work at all sizes'

* Fix pre-existing issue of Channel tabs overflowing on desktop view in some locales
2023-09-25 14:56:30 +00:00
absidue d91f82f977
Support multiple audio tracks and AV1 for Invidious by using the local API DASH manifest generator (#3942)
* Support multiple audio tracks and AV1 for Invidious by using the local API DASH manifest generator

* Upgrade YouTube.js to 6.2.0 to fix default track selection

* Fix audio formats

* Use Intl.DisplayNames to get the language names

* Simplify returns

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

---------

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2023-09-25 10:55:47 -04:00
Jason 112a76e020
Normalize ft-list-item grid height (#4043)
* Normalize ft-list-item grid height

* Update src/renderer/scss-partials/_ft-list-item.scss

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

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-25 14:23:31 +00:00
PikachuEXE 825aa4e332
! Fix in sub view, restoring last tab is bugged when visible tabs do not include tab to be restored (#4064) 2023-09-23 19:11:17 +00:00
ChunkyProgrammer 47ef3e5746
Subscriptions: Add community tab (#3973)
* Add subscription community tab

* fix up community tab

* simplify if statement

* use global.community for all references to community

* dont show community when useRss is set

* check visibleTabs for showing the community tab

* fix caching, decrease datalimit for community, add missing translations

* L: Hide shared posts, IV: Don't show errors for empty community tab

* add links to related issues
2023-09-23 00:19:50 +00:00
Jason 9d80737907
Fix buttons intersecting on Subscribed Channels tab (#4058)
* Fix buttons intersecting on Subscribed Channels tab in many languages

Note that this can still occur if one of the words in 'Unsubscribe' is pretty big on smaller screen sizes, e.g., Svenska at 515px. This is because we allow the Unsubscribe button to be wider than the element itself, which is hard to change here without completely reworking the structure using  (due to limitations with minmax being unable to have fit-content in a grid definition).

* Update src/renderer/components/ft-subscribe-button/ft-subscribe-button.css

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

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-20 15:14:34 -04:00
MaxMaxMaxCh 529402638a
fix bug with tabbing into three dots menu #4022 (#4060) 2023-09-20 21:10:16 +02:00
Jason a271d4548f
Fix Subscribe button being clipped on Channel page (#4057) 2023-09-19 23:26:24 +02:00
absidue c29d947d5c
Avoid extending the VueI18n class as it won't exist in Vue 3 (#4046) 2023-09-18 18:39:36 +00:00
absidue b80d2c8a2a
Fix comment author focus outline being broken (#4041)
* Fix comment author focus outline being broken

* Wrap overflowing text

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

---------

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2023-09-18 14:14:22 -04:00
absidue c8be5bdfce
Avoid extending the VueRouter class as it won't exist in Vue 3 (#4047) 2023-09-18 12:13:47 +00:00
absidue 9106791698
Fix focus disappearing when visiting the settings (#4042) 2023-09-18 07:00:54 -04:00
absidue d333990fbc
Improve performance of the watch history handling (#4017)
* Improve performance of the watch history handling

* Remove duplicate checks for whether history entries exist

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

* Remove leftover `typeof`

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-13 21:31:07 -04:00
Jason 3db6f437c9
Implement Stylelint linting of CSS logical properties (#4023)
* Add Stylelint plugin and rule for evaluating use of logical properties

* Implement stylelint-advised use of logical properties in SCSS files

* Implement stylelint-advised use of logical properties in CSS files

* Implement stylelint linting before each commit to any branch of the repo

* Remove other Stylelint plugins so that we can add them in later one-by-one

After discussing this with the FreeTube team, it seems that we are still undecided on which rules we want to be active, including ones currently enabled. As a stopgap fix, we disabled Stylelint checking in our pre-commit Git hook and our recommended
> freetube@0.19.0 lint-fix
> run-p eslint-fix lint-style-fix command. With this change, we will be using Stylelint in our
> freetube@0.19.0 lint-fix
> run-p eslint-fix lint-style-fix command, while giving us the flexibility to add in additional desired plugins and rules as separate efforts.

* Add video player to .stylelintignore

* Replace non-logical property usage in templates

This is not enforced by the plugin at this time.

* Remove use of logical properties from ft-video-player, & allow empty input when .stylelintignore files are changed

* Update ft-video-player.css to disable use of logical property linter

We want to avoid introducing directionality-specific properties that could muck up the video player.

* Remove redundant/unnecessary scripts in package.json
2023-09-14 08:22:33 +08:00
ChunkyProgrammer 67bdf718c0
Fix localization of counts (#4011)
* Fix localization of counts

* Apply suggestions from code review

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

* Remove unused locale resources

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-12 19:38:36 +02:00
trostboot b4223e5f29
Sort list of external players (#4036)
* Sort list of external players

* Condense sorting logic

* Rework sorting in utils.js

* Simplify sorting logic
2023-09-12 19:21:52 +02:00
Jason efaf50ec8f
Implement Favorites icon persisting for favorited videos (#4012) 2023-09-12 09:09:49 +08:00
Benjababe 8c07ef3521
Add subscribed icon to comments (#4007)
* add subscribed icon to comments

* update subscribed img src

* update subscribed icon css

* add author id to local api comments

* update subscribe icon on theme change

* add subscription icon to comment replies

* Update src/renderer/components/watch-video-comments/watch-video-comments.css

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

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-09-11 07:14:18 +08:00
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