* Migrate search suggestions to youtubei.js
* Rename functions to indicate that they are for the local API
* Implement and use a lightweight Innertube session
* Fix typo in comment
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
* Fix another typo in a comment
Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
* Use native DomParser instead of opml-to-json dependency
* Add support for Invidious feed URLs
* Fallback to HTML parser, as HTML is much less strict than XML
* Log error before falling back to the HTML parser
* #1414: Add share button ton Channel view
- Update src/renderer/components/ft-share-button to handle Channels
- Update english locale entries for 'Share channel'
* #1414: Add share button ton Channel view
- update youtubeShareURL() in src/renderer/components/ft-share-button
* #1414: Add share button ton Channel view
- implemented the new button in src/renderer/views/Channel
* #1414: Add share button ton Channel view
- renamed mediaType to shareTargetType in ft-share-button.js
- switched logic from !isChannel to isVideo in ft-share-button.vue
* #1414: Add share button ton Channel view
- renamed target type in ft-share-button.vue
- updated implementation in Channel.vue
It defaults to `false`. This should prevent users with
multiple displays from running into issues when they
drag the window from a portrait display to a landscape
display too quickly.
* 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