* Add setting to disable automatic fetching of subscriptions
* rename from load to fetch. fix profile switch auto fetching
* add message for when auto fetch is disabled
* add strings to locale file
* Use a switch column grid for the subscription settings
This matches the layout other settings components
* remove import of now unused ft-flex-box component
* add variable to track if an attempt to fetch has been made.
used so the disable automatic fetch message doesn't block the
empty channels message.
* reduce distance between switches by adding compact=true
* edit tooltip wording
* Implement chapters
* Generate chapters locally for the Invidious API backend
* Performance improvements
* More performance improvements
* Improve chapters appearance and add compact mode for Invidious
* Update UI while seeking instead of afterwards
* Invidious extract chapters with range timestamps properly and duplicate chapters
* Minor code improvement
* Add accessibility labels and keyboard navigation
* Add chapter markers
* Fix missing newline at the bottom of ft-video-player.css
* Fix marker placement
* Hiding "smooth-scroll" setting when not electron
- This feature requires the restart of electron and
doesn't work in web builds.
* Removing this comment
- A safeguard was added
- This function won't be called unless IS_ELECTRON is true
- Expanded the fall-back to catch edge
cases where the instance list returns a
completely valid response of [] (an other-
wise useless response which doesn't throw
an error).
* Replace jquery in ft-icon-button with vue functionality
* Rename hide method to hideDropdown
* Fix typo in comment
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
* Fix menu reappearing too soon
* Fix share menu buttons not triggering
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
* use 5px border radius instead of 5%
a 5% border radius will create an oval shape when height and width differ.
this doesn't look good.
5px radius looks better and is used in other places
* offset premiereDate by 12px from bottom left
Increases the offset a tiny amount and adds a left offset aswell.
This looks better than when it was previously only offset from the bottom.
I used 12px because it's what youtube uses.
* use flexbox to align items additional positioning with margins
vertically centes premiere icon and text with by making their parent a flexbox
sets a min width for the text instead of using a set width for the premiereDate
* change font size and weight of timestamp text
* remove uneeded line height styling
line height 1.2 did not affect anything
* fix indentation
* Update src/renderer/views/Watch/Watch.sass
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* Improve premiere timestamp
Removes the unesseccary parts of the timestamp, year and seconds.
displays month as long name (eg., March)
* fix linting... forgot to add the file again before commit.
* get and use current locale set in freetube
this fixes issues where os locale and freetube locale don't match
* use 'default' when no locale is set in freetube.
this defaults to system locale
* use i18n to get locale and format date with intl
* format date with intl.datetimeformat
forgot to add file again after changes...
* use intl relative time format to format upcomingTimeLeft
* rename timeUnitI18nKey to just timeUnit
It's no longer used as a key and is no longer partial
* Implementing the open file dialog in web
- Adding a new function to make loading files
from a dialog box easier in both web and electron
* Canceled should always be false
onchange is only triggered when the file picker
has a file path. If the user cancels, this function
is never called.
* Changing from `function ()` to `() => {`
* Adding a try around processing the history import
* Moving the try-catch to a smaller section
* Adding a listener to when the file picker is closed
* Fixing the grammar on my comment
* Refactoring playlist imports to use readFileFromDialog
* Refactoring handleFreetubeImportFile to use readFileFromDialog
* Refactoring handleYoutubeCsvImportFile to use readFileFromDialog
* Refactoring handleYoutubeImportFile to use readFileFromDialog
* Refactoring importOpmlYoutubeSubscriptions to use readFileFromDialog
* Refactoring importNewPipeSubscriptions to use readFileFromDialog
* Added a check
to prevent resolve from being called multiple times
* Moving the call to removeEventListener
to prevent this event from being triggered twice
* Adding extensions to the web file picker
* Hiding `Check for legacy subscriptions` in web
* Adding comments for better readability
* Correcting my vue syntax
* right click menu for open in a new window
* open video in new window when right click
* router link added to channel images for easier selection in the context of a context menu
* fix security bug user can visit other website via freetube
* simplify context menu entry condition
* createWindow in open new window adapted with the merged function
* Change the open new window selector for the origin of the page no matter the name of the website
* Keypress reintegrate into the code for accesibility
* Keypress reintegrate into the code for accesibility
* Fix style for sidenav subscription links
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
* Improve premiere timestamp
Removes the unesseccary parts of the timestamp, year and seconds.
displays month as long name (eg., March)
* fix linting... forgot to add the file again before commit.
* get and use current locale set in freetube
this fixes issues where os locale and freetube locale don't match
* use 'default' when no locale is set in freetube.
this defaults to system locale
* use i18n to get locale and format date with intl
* format date with intl.datetimeformat
forgot to add file again after changes...
* display year if current year is less than year of premiere date
* Added a copyToClipboard function to utils
This should make it easier to handle errors which
result from the clipboard API (which are more likely
in web builds). This should also make it easier to handle
copying to clipboard in cordova builds by abstracting the
platform specific code out of the views and moving it
all into one function.
* Moved the $t function out of utils
* Removing locale snippets I was using and am not now
* Added function comment to copyToClipboard
* Adding some missing references
* Adding an additional check
* Re-reviewing my changes, I found a mistake
* Update src/renderer/store/modules/utils.js
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* Update static/locales/en-US.yaml
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
* Reverting the language back to what it was previously
* Switching to using i18n.t()
instead of handling the translations myself.
Also, it looks like eslint removed a tab.
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
* Applying a workaround for localization issue
This changes where the title comes from on the response object from ytdl.
This is related to FreeTubeApp#2530.
* Applying the same workaround on the description
* Added a fallback to videoDetails
* Adding a console error to the title try block
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* Simplifying a loop to Array.join
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* Adding a console error to the description try block
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* Add a map for the description lines
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* Added a question mark operator for descriptions
This should prevent errors from erroneously being thrown on videos
which have a blank description. If the description is undefined or does
not contain a 'runs' field, the resulting descriptionLines should be
and empty array. Then, videoDescription will be an empty string.
* Each line already contains a `\n`
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* 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
* display time left until video premiers:
* video premiere display time left with time units
Displays time left in seconds, minutes, hours, and days.
This depends on how much time is left.
* premiere time left, display time in singular if needed
also simplified the big if block
* premiere time left, display time unit in lowercase
* Add Starting Soon string to locale file
* apply fixes reported by linter
* premiere time left, add suggested changes
Better temp variable scoping, flatten nested code, rename temp variables, use string intepolation
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
* replace tabs with spaces
tabs where used in some places in the suggested code
* display time left, remove "starting soon" string
Since upcomingTimeStamp will be null when the time has passed the scheduled timestamp
it doesn't make sense to use something that will rarely be displayed.
e.g. a user has to click on the video with less than a second remaing until it goes live for it to be displayed
it would also be displayed as "Premieres in Starting soon" which doesn't make sense
* display 'less than a minute' instead of exactly how many seconds remain
Looks better and works for values less than 0
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
the seconds length value provided by the API
rather than trying to pull the time from the video
element. This is related to FreeTubeApp#2492 and
MarmadileManteater#9.