* Disable http disk cache and implempent in-memory image cache
* Add comment about removing URL scheme prefix
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
* Add early return to clean up the code
* Rewrite cache expiry logic with fallbacks
* Move this change behind a CLI argument --experiments-disable-disk-cache
* Replace CLI flag with a GUI setting
* Improve warning message styling
* ! Fix incompatibility with latest settings code
* Use CSS instead of sass for the experimental settings
* Return the error as JSON instead of throwing it
* Inline restart prompt label and option names and values
* Mention crash risk and recommend backups in the warning
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
* Adding videojs-mobile-ui as a dependency
- Using the beta because it fixes an issue
with multiple version of videojs loading
at once.
This is related to MarmadileManteater#56.
* Mapping defaultSkipInterval to seekSeconds
* Adding CSS to prevent showing duplicate buttons
- Added a new variable `usingTouch` to selectively hide
the existing `vjs-big-play-button` when the `touch-overlay`
is visible.
* Renaming CSS class to something more specific
* Adding text-shadow behind play / pause button
This should make it more visually distinct against a
light or colorful background.
* Enabling touch-overlay anytime a touch is detected
Disabling it whenever mouse input is detected
The default behavior of `videojs-mobile-ui` is to
only work in Android and iOS, but by
forcing the touch behavior to be enabled and selectively
showing it only when touch input is detected, it should work
on any device with touch input even if the browser doesn't
detect that it is running in Android or iOS.
* Removing unnecessary code
* Removing unintentionally leftover variable
* Removing an unnecessary assignment
Adding comments to explain why a flag called
`forceForTesting` is set to true
Disabling the `lockOnRotate` flag.
* Moving this flag and wrapper class
* Adding whitespace
* Making my comment a little more consistent
* Changing the punctuation of a comment
* Adjusting the CSS to fix a firefox discrepancy
* Adding a check for mobile firefox
For whatever reason, mobile firefox sometimes
triggers onmouseover when a touch occurs, and this
is unwanted behavior.
* Adding a drop-shadow to the ff and rw icons
This should make them easier to see on top of light
videos
* Hiding the mobile play button according to setting
- Added CSS to hide the videojs-mobile-ui play button
when the `Display Play Button In Video Player` setting is disabled.
* Replacing long computed string with class binding
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* Adding newline at the end of videoJS.css
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* Implementing the web callback for `showSaveDialog`
Using the native filesystem API when it is available
* Adding the `writeFileFromDialog` function
It normalizes the behavior of writing to a file handle
given by a file picker between web and electron
* Refactoring `exportFreeTubeSubscriptions`
Now, it should use the profile data stored in memory
rather than reading it from the file system (which may not
be present in web browsers), and it should also work in web
builds
* Refactoring exportYouTubeSubscriptions
Using the `writeFileFromDialog` function instead of `fs`
* Refactoring the rest of the subscription exports
Using the `writeFileFromDialog` function instead of `fs`
* Refactoring exportHistory
- Using the historyCache stored in memory instead of
reading from `fs` to get the history data
- Using `writeFileFromDialog` instead of `fs.writeFile`
* Refactoring exportPlaylists
Using `writeFileFromDialog` instead of `fs`
* Removing no longer needed `fs` import
* Removing something I was using to debug
* Fixing issue with mime types non populating in save picker
* Adding back an unintentionally removed line
* Adding ytpl and ytsr as externals in web.config
This should get rid of those two warnings that were
showing up on web builds
* Reducing discrepancies between dev and prod in web builds
* Removing a line which would prevent hot reloading
`this.locales` is retained between hot reloads, so it shouldn't
be set to `null`.
* Adding a new flag to the dev runner
Adding a new command: `run dev:web`
* Running `loadLocale` in development web builds
* Adding a line back which was removed
* Removing a line which was added
* 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
* remove deprecated @keypress from top-nav
* remove deprecated @keypress from side-nav
* add role and tabindex to new window button
it could previously not be selected by tabbing over the buttons
* Removing a `width:auto` which was overriding
the width for a lot of .select-text
* Making the general-settings component not overflow
* Reducing margin in settings when window is narrow
* Moving invidious instance tooltip to reduce overflow
* Reducing the width of sliders to be 100% at maximum
Before this change, the preset width `380px` could easily
be wider than the window.
* Reducing overflow in Theme Settings
- Added breakpoint for theme `select`s
- Added breakpoint for the UI scale slider
* Reducing the remaining overflow in settings
This moves all of the tooltips slightly to the left
when the window is narrow to reduce overflow.
* Expanding the sponsorblock settings to full width
* Moving remaining tooltips into a fixed zone
* Floating the tooltip icon to the right
When the display is narrow, the tooltip
can sometimes overflow, and it is very
difficult to predict how it will overflow
if the tool tip icon comes directly after
a locale string.
This change floats those icons into a
centralized location where the tooltip
can be guaranteed to not overflow.
* Removing some irrelevant changes
* Reducing margin on switches
* Removing bottom margin on the last section
* Making room for overflow ellipsis
* Adding class `.containsTooltip` to `ft-toggle`
This should make is easier to style the toggles
which contain tooltips specficially.
* Modifying the media query for tooltips
* Adding a media query to reduce data settings margin
* Adding an import for setImmediate
`setImmediate` is a global in node, but
it is technically from the `timers` module,
and it is not global in web.
* Replacing node specific call to `setImmediate`
`setTimeout` is available globally in both node and web
* 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
* 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>
* 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>
* 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>