* Fix handling of video published date in video lists
* Use same date format on the history page as before
* Switch to months at 30 days instead of 32 and correct thresholds
* Add support for formatting as weeks
* According to Invidious everything on the popular tab is a short???
* fix some locale issues
* change local API to Local API
* update translation keys to `Falling back to Local API`
* fix translation key for local api in js files
* 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>
* 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>
* + 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
* ! 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>
* 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
* 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
* 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>
* + 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"
* 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
* 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>
* Use named parameters instead of $ and % in localised strings
* Fix URL warning again
* Update placeholders in most locales
* Let the translators fix the problematic RTL strings
* Fix the missing quotes in some of the YAML files
* Allow webpack to bundle *most* dependencies
* Exclude *most* node_modules from getting packaged by electron-builder
* Import only the required icons instead of bundling the whole icon pack
* Reduce packaging blacklist to only include the few things that still need blacklisting
* * Implement divider for video "more dropdown menu"
* * Update API for ft-icon-button
* * Update existing ft-icon-button user to use new API for dropdown options
* * Update ft-icon-button to remove unused old API
* * Update divider to be less visible
* * Update padding of list item
* * Update WebpackDevServer option to avoid app reloading on MacOS .DS_Store file change
* feat: add support for opening videos/playlists in external players (like mpv) #418
Signed-off-by: Randshot <randshot@norealm.xyz>
* feat: move external player settings into own section
feat: add warnings for when the external player doesn't support the current action (e.g. reversing playlists)
feat: add toggle in settings for ignoring unsupported action warnings
Signed-off-by: Randshot <randshot@norealm.xyz>
* improvement: do not append start offset argument when the watch progress is 0
Signed-off-by: Randshot <randshot@norealm.xyz>
* fix: fix undefined showToast error when clicking on the external player playlist button
Signed-off-by: Randshot <randshot@norealm.xyz>
* feat: add icon button for external player to watch-video-info (below video player) component
improvement: refactor the code for opening the external player into a separate function in utils.js
Signed-off-by: Randshot <randshot@norealm.xyz>
* feat: add support for ytdl protocol urls (supportsYtdlProtocol)
chore: fix lint error
Signed-off-by: Randshot <randshot@norealm.xyz>
* feat: add support for passing default playback rate to external player
improvement: add warning message for when the external player does not support starting playback at
a given offset
chore: rename reverse, shuffle, and loopPlaylist fields for consistency
Signed-off-by: Randshot <randshot@norealm.xyz>
* feat: add setting for custom external player command line arguments
Signed-off-by: Randshot <randshot@norealm.xyz>
* chore: fix lint error
Signed-off-by: Randshot <randshot@norealm.xyz>
* improvement(watch-video-info.js): change the default for playlistId back to null (consistent with other occurrences)
improvement(utils.js/openInExternalPlayer): also check for empty playlistId string
fix(watch-video-info.js): fix merge error
Signed-off-by: Randshot <randshot@norealm.xyz>
* improvement(components/ft-list-video): check whether watch history is turned on, before adding a video to it
fix(store/utils): fix playlistReverse typo, causing `undefined` being set as a command line argument
fix(store/utils): check for 'string' type, instead of `null` and `undefined`
fix(views/Watch): fix getPlaylistIndex returning an incorrect index, when reverse was turned on
chore(locales/en-US): fix thumbnail and suppress typo
chore(locales/en_GB): fix thumbnail and suppress typo
Signed-off-by: Randshot <randshot@norealm.xyz>
* feat: pause player when opening video in external player
Signed-off-by: Randshot <randshot@norealm.xyz>
* feat(externalPlayer): refactor externalPlayerCmdArguments into a separate static file `static/external-player-map.json`
chore(components/ft-list-video): fix lint error
Signed-off-by: Randshot <randshot@norealm.xyz>
* Revert "feat: pause player when opening video in external player"
This reverts commit 28b4713334.
* feat: pause the app's player when opening video in external player
* This commit addresses above requested changes.
improvement(components/external-player-settings): move `externalPlayer` check to `ft-flex-box`
improvement(components/external-player-settings): use `update*` methods, instead of `handle*`
improvement(store/utils): move child_process invocation to `main/index.js` via IPC call to renderer
improvement(store/utils): use `dispatch` for calling actions
improvement(store/utils): get external player related settings directly in the action
improvement(renderer/App): move `checkExternalPlayer` call down into `usingElectron` if statement
fix(renderer/App): fix lint error
improvement(components/ft-list-playlist): remove unnecessary payload fields
fix(components/ft-list-playlist): fix typo in component name
improvement(components/ft-list-video): remove unnecessary payload fields
improvement(components/watch-video-info): remove unnecessary payload fields
improvement(views/Settings): add `usingElectron` condition
Signed-off-by: Randshot <randshot@norealm.xyz>
* fix(store/utils): fix toast message error
Signed-off-by: Randshot <randshot@norealm.xyz>
* fix(store/utils): fix a few code mess-ups
Co-authored-by: Svallinn <41585298+Svallinn@users.noreply.github.com>
* Fix video card info bar for live video
* Lowercase publication date on video card
* Revert "Lowercase publication date on video card"
Due to problems in certain languages
* PR ready distraction free feature
Signed-off-by: Taylor <tayloraviets@gmail.com>
* presumably fixed linter issues
Signed-off-by: Taylor <tayloraviets@gmail.com>
* addressed PR issues and hopefully made the linter happy
Signed-off-by: Taylor <tayloraviets@gmail.com>
* fixed more linter issues
Signed-off-by: Taylor <tayloraviets@gmail.com>
* fixed more linter issues again
Signed-off-by: Taylor <tayloraviets@gmail.com>
* fixed more linter issues again.
Signed-off-by: Taylor <tayloraviets@gmail.com>
* moved bad quote
Signed-off-by: Taylor <tayloraviets@gmail.com>