Commit Graph

983 Commits

Author SHA1 Message Date
absidue ecb9128731
Migrate search suggestions to youtubei.js (#2855)
* 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>
2022-11-28 12:52:47 +01:00
theforbiddenpool 064db4ba28
Add option to hide FreeTube header logo (#2893) 2022-11-27 08:55:34 -05:00
PikachuEXE 2ad431622a
* Update app menu to add item for history (#2870) 2022-11-24 18:47:44 +01:00
M. Ian Graham 207d72a9c2
Add setting: Distraction Free Settings → Hide Upcoming Premieres (#2853) 2022-11-24 13:31:53 +01:00
absidue c8d37cd552
Fix "Open in new window" context menu action in release builds (#2873)
* Fix "Open in new window" context menu action in release builds

* Better check and add comment
2022-11-21 22:29:24 +01:00
absidue 5b67803c32
Add ft-input enter listener the vue way (#2879) 2022-11-21 07:37:38 +01:00
absidue 88e9618651
Fix chapter marker placement (#2874) 2022-11-20 22:46:34 +01:00
absidue 9600373216
Themes CSS deduplication (#2868)
* Deduplicate CSS rules for the Catppuccin Mocha colours

* Deduplicate CSS rules for the Dracula colours

* Deduplicate CSS rules for the themes

* Deduplicate CSS rules for the main and secondary colours
2022-11-15 09:14:35 +01:00
absidue 8a37692f77
Use native DomParser instead of opml-to-json dependency (#2769)
* 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
2022-11-15 09:10:51 +01:00
absidue 24e67bac87
Cleanup unused css and imports on the About page (#2867) 2022-11-15 09:38:47 +08:00
Alhuin 3d473d90ef
#1414 share channels (#2859)
* #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
2022-11-14 12:10:47 +01:00
absidue 644b735005
Use the available space better in the player and theme settings (#2857) 2022-11-12 10:36:09 +01:00
absidue e02594629e
Cleanup webpack aliases (#2846) 2022-11-09 07:34:40 -05:00
absidue 2b233815ec
Move colours and the colour functions to their own file (#2844) 2022-11-09 05:57:48 +00:00
absidue 46bbcafbbc
Reduce duplicate code by introducing a function to create a proxy agent (#2845) 2022-11-09 05:57:26 +00:00
dependabot[bot] 4bb582fabb
Bump socks-proxy-agent from 6.2.0 to 7.0.0 (#2838)
* Bump socks-proxy-agent from 6.2.0 to 7.0.0

Bumps [socks-proxy-agent](https://github.com/TooTallNate/node-socks-proxy-agent) from 6.2.0 to 7.0.0.
- [Release notes](https://github.com/TooTallNate/node-socks-proxy-agent/releases)
- [Changelog](https://github.com/TooTallNate/node-socks-proxy-agent/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TooTallNate/node-socks-proxy-agent/compare/v6.2.0...v7.0.0)

---
updated-dependencies:
- dependency-name: socks-proxy-agent
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* Switch to hostname option, as the host option was removed

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2022-11-08 17:59:52 +00:00
absidue 5addd304ef
Localise subscriber count on the watch page (#2841) 2022-11-08 11:47:02 +00:00
absidue cf30154e51
Remove unused worker (#2804) 2022-11-06 08:17:33 +00:00
absidue b3bf37132d
Replace lodash.isequal with simple comparison (#2827) 2022-11-05 15:13:25 +00:00
absidue 56416700bc
Allow webpack to omit development only dependencies properly (#2828) 2022-11-05 14:44:21 +00:00
absidue e228182d8a
Move openInternalPath and formatDurationAsTimestamp to utils (#2794)
* Move openInternalPath and formatDurationAsTimestamp to utils

* Make openInternalPath take an object parameter again

* Fix small mistake
2022-11-04 07:19:51 +00:00
absidue 27992e47b0
Fix emoji display in the profile selector (#2815) 2022-11-04 07:19:25 +00:00
absidue 6b0724f7e2
Add video numbering to playlists (#2811) 2022-11-04 07:17:14 +00:00
Emma f8ff0e1249
Add setting to toggle `Enter fullscreen on rotate` (#2808)
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.
2022-11-04 09:11:22 +08:00
PikachuEXE 53025b0339
* Update chapter marker style (#2776) 2022-11-01 22:37:04 -04:00
PrestonN 5295fbeb50 Fix super chat styling 2022-11-01 20:36:14 -04:00
absidue 104cbd4af1
Fix watch-video-info overflow for live streams (#2783) 2022-11-01 14:18:33 +00:00
ChunkyProgrammer dcbc0efc53
make stripHTML helper (#2795) 2022-11-01 14:14:09 +00:00
PikachuEXE 31938d9b6f
* Update app menu to add item for preferences (#2777) 2022-10-29 17:08:03 +00:00
Emma b1d6aa5d42
Centralize the code used for parsing invidious comments (#2780) 2022-10-29 11:12:01 -04:00
ChunkyProgrammer f46132ce25
hide `Most Popular` if invidious is disabled (#2772) 2022-10-27 09:34:51 +00:00
absidue 8f55a648b1
Cleanup unused component imports (#2773) 2022-10-27 09:34:39 +00:00
absidue 2c78970f0e
Fix chapters extraction erroring (#2774) 2022-10-27 09:34:04 +00:00
Emma 70baa873fb
Move `Dialog` functions to `utils/helpers` (#2752)
* Moving `FileFromDialog` helpers into helpers/utils

* Moving `showDialog` functions to `utils/helpers`

* Linting

* Update src/renderer/helpers/utils.js

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

* Update refs  `showSaveDialog` in `ft-video-player`

* Formatting long import to be multiline

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

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2022-10-25 16:44:18 +02:00
absidue 697bed23ed
Disable http disk cache and implempent in-memory image cache (#2498)
* 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>
2022-10-25 02:33:08 +00:00
Emma e43fb94a35
Improving touch input by bringing in `videojs-mobile-ui` (#2719)
* 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>
2022-10-24 13:49:52 -04:00
Emma 12cfe6a3fb
Convert Invidious comment publishText to locale (#2758) 2022-10-24 17:10:06 +02:00
Emma 6e693c6c37
Implement `getRegionData` in web (#2743)
* Implement `getRegionData` in web

- Adjust __dirname to be a more sensible value
- Add `process.env.GEOLOCATION_NAMES` for web builds to avoid having
to blindly try and fetch

* Reverting webpack changes

* Change `indexOf` to `includes`

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

* Adding a new helper `createWebURL`

It takes a given path to a resource, and it returns an
 easily fetch-able absolute path

* Using `createWebUrl` inside of the locale fetch

* Using `createWebURL` inside of `getRegionData`

* Removing an unnecessary leftover import

* Wait, no I was mistaken

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2022-10-22 10:31:34 +02:00
absidue 76d7ecd163
More space for the title in watch-video-info (#2751) 2022-10-20 06:06:04 +00:00
absidue f33ad2e5f0
Fix double focus on the sidebar channels (#2749) 2022-10-20 06:04:49 +00:00
ChunkyProgrammer 2c5c654b66
move `toLocalePublicationString` to`utils/helper` (#2748)
* move toLocalePublicationString to helper

* remove unnecessary assignments

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* Update src/renderer/components/ft-list-video/ft-list-video.js

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

* fix linter issue

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2022-10-20 06:03:31 +00:00
ChunkyProgrammer 7819dcd99f
change `this.showToast` to `showToast` (#2746) 2022-10-19 07:50:09 +00:00
Emma 41b3af033b
Implenting `showSaveDialog` in web (#2741)
* 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
2022-10-19 07:50:21 +02:00
absidue d39512db0a
Minor performance improvement in the general-settings component (#2723) 2022-10-19 09:25:13 +08:00
absidue d8f7d073ce
Remove unused ft-grid component and __static variable (#2744)
* Remove unused ft-grid component

* Remove unused __static variable
2022-10-19 09:09:49 +08:00
Emma a6b86fac9c
Adding filePaths to the web file picker response (#2739)
`filePaths` is now used to decide which `subscription.db`
type to parse, so this is needed here
2022-10-18 17:50:59 +02:00
Emma c26445a09d
Expanding the settings which are iterated in `grabUserSettings` (#2737)
Previously, only settings which have a user defined value would
be iterated on in this loop. Now, all settings that have a user defined
value or that have side effects will be iterated. This is important because
`currentLocale`'s side effect handler contains a call to `getRegionData`,
and if this side effect handler is never called, the `Region for Trending`
option in settings will never populate.
2022-10-18 17:50:40 +02:00
Emma b453b01b81
Adding web support to dev-runner (#2729)
* 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
2022-10-18 08:50:32 -04:00
absidue f970936d1e
Make copyToClipboard and openExternalLink helpers (#2722) 2022-10-18 08:15:28 +00:00
absidue 294df19f1b
Replace rss-parser with fetch and the native DomParser (#2726) 2022-10-17 16:09:06 +00:00