Commit Graph

147 Commits

Author SHA1 Message Date
absidue
f2f2e9325c Clean up defunct shaka-player types patching (#8224) 2025-11-04 09:59:46 +01:00
absidue
d829cc2b16 Update to Vue 3 (#8094)
* Update to Vue 3

* Fix toasts and removing videos from playlists

* Fix duplicate app ID

* Simplify aria-selected handling now that false doesn't remove attributes

* Fix various errors

* Fix toasts and hiding watched videos

* Update vue-router to 4.6.3

---------

Co-authored-by: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com>
2025-11-02 18:11:41 +00:00
PikachuEXE
95ec469d72 ! Fix sigFrameScript on dev in windows (#8134) 2025-10-15 06:04:01 -04:00
dependabot[bot]
fdf76f3e54 Bump youtubei.js from 15.1.1 to 16.0.0 (#8115)
* Bump youtubei.js from 15.1.1 to 16.0.0

Bumps [youtubei.js](https://github.com/LuanRT/YouTube.js) from 15.1.1 to 16.0.0.
- [Release notes](https://github.com/LuanRT/YouTube.js/releases)
- [Changelog](https://github.com/LuanRT/YouTube.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/LuanRT/YouTube.js/compare/v15.1.1...v16.0.0)

---
updated-dependencies:
- dependency-name: youtubei.js
  dependency-version: 16.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* Implement an iframe based custom sig eval function

---------

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>
2025-10-12 14:27:24 -04:00
absidue
6e6c9204fa Hide webpack-dev-server error overlay for application errors (#8087) 2025-09-27 08:06:27 +08:00
absidue
f5ac1a3a0c Update shaka-player to 4.16.x (#7919)
* Update shaka-player to 4.15.x

* Move some items into the overflow menu on all player sizes

* Fix mouse wheel actions

* Update shaka-player to 4.16.x

* Re-order entries in the overflow menu on mobile

* Fix player icons

* Optimise audio track handling

* Upstream prefers-reduced-transparency for shaka-player's UI elements

* Update shaka-player to 4.16.1
2025-09-16 16:57:57 -04:00
ChunkyProgrammer
77109c87a5 Fix some template strings in locale files, add script to find problematic values (#7519)
* Fix template strings

* add script to make it easier to find issues with template strings

* switch to sync fs, exclude non yaml files, add jsdoc comment

* Don't fail on duplicate templates in the same string

We should only need to validate if the key is in the string, not how many times the key is in the string
2025-06-27 15:10:58 +02:00
absidue
f9a422711b Speed up the loading of the geolocation data (#7527) 2025-06-08 08:28:38 +08:00
absidue
45ecc6b427 Add preload script and disable node integration in renderer processes (#7424) 2025-05-29 11:50:19 -04:00
absidue
4f5b932e8f Convert the electron-builder scripts to ESM (#7471) 2025-05-27 08:43:34 +08:00
absidue
db09988e95 Instruct webpack to embed JSON imports as literals instead of JSON.parse (#7391) 2025-05-10 12:48:10 +00:00
absidue
11b6110660 Fix n/no-path-concat issues (#7392) 2025-05-10 12:36:50 +00:00
absidue
da2bac8464 Rewrite download code to avoid using Node APIs in the renderer (#7347) 2025-05-03 08:43:08 -04:00
absidue
6cf17a890e Remove broken Alpine builds (#7129) 2025-03-31 22:21:41 -04:00
absidue
90e460ae91 Minor build speedups (#7116) 2025-03-30 21:51:08 -04:00
absidue
3261e36ae0 Set process.platform at build time (#6784) 2025-02-17 21:21:40 +00:00
ChunkyProgrammer
fa98e5a7be add missing jsdoc comments to config files (#6780) 2025-02-11 08:40:22 +08:00
absidue
fb098b34eb Shrink mime-db even further (#6659) 2025-01-28 08:28:20 +08:00
absidue
153fde1ce2 Replace rimraf dev dependency with clean script (#6638) 2025-01-26 19:34:17 +00:00
efb4f5ff-1298-471a-8973-3d47447115dc
eec8c7fbcf Update copyleft to 2025 (#6524) 2025-01-08 05:32:23 +08:00
absidue
248581d6b7 Switch back to the WEB client for the local API with potokens (#6436) 2024-12-27 19:49:44 +00:00
absidue
f8495657ec Use dirent.parentPath instead of deprecated .path (#6172) 2024-11-17 22:04:34 +01:00
absidue
9ab38a4a1a Rename custom ESLint rule to prefer-use-i18n-polyfill (#6120)
* Rename custom ESLint rule to prefer-use-i18n-polyfill

* Fix typo

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* Fix typo in filename too

---------

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2024-11-10 08:46:58 +08:00
absidue
c1d020d3df Add a polyfill for vue-i18n's useI18n() composable (#6042)
* Add a polyfill for vue-i18n's useI18n() composable

* Address feedback

* JSDoc ESLint plugin requires each overload to be in a separate comment block
2024-11-06 23:43:15 +01:00
ChunkyProgrammer
a28bb3f0f5 Add some missing jsdoc comments, add jsdoc eslint plugin (#6048)
* Add some missing jsdoc comments, add jsdoc eslint plugin

* remove left over addition

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

* move jsdoc eslint rule configuration

* use dash for list instead

* Enable some additional rules

* Apply suggestions from code review

Co-authored-by: PikachuEXE <git@pikachuexe.net>

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <git@pikachuexe.net>
2024-11-02 11:38:07 +01:00
absidue
fb53a4255b Use import.meta.dirname in mjs scripts (#5984) 2024-10-28 20:55:16 +08:00
absidue
f381f5c085 Switch from deprecated standard to neostandard in ESLint config (#5890)
* Switch from deprecated standard to neostandard in ESLint config

* Update neostandard from 0.11.6 to 0.11.7
2024-10-27 11:08:50 -04:00
ChunkyProgrammer
64d73f4abb Add configurations for linting scripts and add global ignores (#5843)
* Add configurations for linting scripts and add global ignores

* optimize eslint ignore patterns

* remove `node_modules` since it's already ignored by default

* implement code suggestions

Co-Authored-By: PikachuEXE <1018543+PikachuEXE@users.noreply.github.com>

---------

Co-authored-by: PikachuEXE <1018543+PikachuEXE@users.noreply.github.com>
2024-10-10 19:54:07 +02:00
absidue
84ee64cb7b Use BCP 47 compatible languages codes for all locales (#5723) 2024-09-23 22:07:40 +02:00
absidue
b892fb0c30 Rewrite locale file updating to be more Vue 3 friendly (#5660) 2024-09-09 08:50:51 -04:00
absidue
b3ff837468 Migrate video player from video.js to shaka-player (#4978)
* Migrate video player from video.js to shaka-player

* Fix syntax error introduced during cleanup

* Fix typo

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* Show bitrate in stats for Invidious legacy formats

* Sort legacy formats by bitrate instead of qualityLabel

* Use Invidious' newly added isPostLiveDvr property

* Invidious correctly returns the ratelimit for DASH manifests now

* Properly hide unsupported screenshot functionality outside of Electron

* Sort captions in data initialiser

* Update shaka-player to version 4.8.1

* Use textTrackLabelFormat configuration option

* Switch to manifestPreprocessorTXml

* Add support for VR videos that use equirectangular projection

* The AV1 video streams work okay for vr, so allow list them too

* Use woff2 (169 KB) Material Icons font instead of otf (390 KB)

* Use material icons for custom player elements

* Fix legacy formats exception

* Update shaka-player to version 4.8.3

* Sort default quality values the same as in the player

* Cleanup representations search in live subtitle fix

* Slightly speed up sortCaptions

* Fix setPositionState error when playback rate is 0

* Update shaka-player to version 4.8.4

* Fix playback rate changes getting overridden

* Fix current chapter index not updating

* Fix next video not automatically playing

* Fix volume changes not propagating to the mute button

* Reduce work done during UI config updates

* Fix UI customizations not applying after UI config changes

* Update shaka-player to version 4.8.5

* Replace non-reactive workaround with a Vue 3 friendly one

* Fix error when all sponsorblock segments are set to do nothing

* Add some guards to hopefully reduce errors during fast naviagtions

* Make SponsorBlock failure non-fatal

* Update shaka-player to version 4.8.6

* Update shaka-player to version 4.8.8

* Update shaka-player to version 4.9.0

* Update shaka-player to version 4.9.1

* Minor performance improvements

* Update shaka-player to version 4.9.6

* Update shaka-player to version 4.9.9

* Fix sponsor block markers not showing up

* Add some basic error messages for expired urls and ratelimits

* Add some basic error messages for 403s

* Cleanup code comments

* Migrate player to composition API for better performance

* Use reactive for stats instead of ref, as it never gets reassigned

* Update shaka-player to version 4.10.0

* Fix i18n import in custom player components

* Add chapter markers

* Move shaka-player CSS import into the Vue file

* Bump mpd_version from 5 to 7

* Apply suggestions from code review

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* Fix seeking with the arrow keys

* Update shaka-player to version 4.10.3

* Truncate long video titles to the screen width in the full screen overlay

* Fix mouse scroll handlers firing multiple times

* Cleanup unneeded code

* Update shaka-player to version 4.10.6

* Various small optimisations

* Move skipped sponsorblock segement messages to the top right corner

* Support prefers-reduced-transparency in overlays

* Fix stylelint errors

* Update shaka-player to version 4.10.7

* Update shaka-player to version 4.10.8

* Only use variants that are predicted to play smoothly

* Only set preferredDecodingAttributes for DASH playback

* Implement a custom audio track selector instead of using shaka-player's

* Move skipped sponsorblock segement messages to the bottom right corner

* Fix scrolling over the big play pause button not working

* Update shaka-player to version 4.10.9

* Fix some type issues

* Add support for secondary audio tracks

* Downgrade shaka-player to fix subtitle alignment

* Actually downgrade shaka-player

* Fix Invidious API error

* Update outdated comment

* Fix multiple audio track detection for Invidious

* Fix duplicate qualities with the Invidious API

* Use vp9 streams if the Invidious instance is running a new enough version

* When an error occurs with the thumbnails just log it

* Include the video ID in the error logs

* Gracefully handle the internet connection disappearing during playback

* Show a message while buffering if it was caused by the internet connection disappearing

* Fix the text color and RTL handling

* Cleanup the Invidious DASH manifest in builds without the local API

* Fix quality selection when switching from audio to DASH

Unfortunately shaka-player will still override the quality selections
with its ABR bug.

* Update shaka-player to version 4.10.10

* Fix position and alignment for auto-generated subtitles

* Update shaka-player to version 4.10.11

* Use the HLS manifests for live streams

The live DASH manifests are currently unusable on both API backends as
they return 403s after 1 minute of playback. Unfortunately this means we
lose the ability to seek and use the audio formats for live streams.

* Update shaka-player to version 4.10.12

---------

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2024-09-02 19:40:42 +00:00
absidue
cc61f5a96d Fix getRegions script and update the regions (#5450)
* Fix getRegions script and update the regions

* Add mappings for es_AR, es-MX and pt-BR
2024-07-24 07:57:32 +00:00
absidue
89236ac804 Use the ES Modules export of portal-vue instead of the CommonJS one (#5297) 2024-06-24 08:21:29 -04:00
absidue
c4f58dfe5f Add custom webpack loader to remove unused mimetypes from mime-db (#5148)
* Add custom webpack loader to remove unused mimetypes from mime-db

* Update _scripts/mime-db-shrinking-loader.js

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>

---------

Co-authored-by: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com>
Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2024-05-22 15:08:20 +08:00
absidue
61820b1bcf Implement hot reloading for the locale files during development (#5050)
* Stop using deprecated additionalAssets hook

* Watch locale files without webpack-watch-external-files-plugin

* Use Maps instead of objects

* Use webpack's file timestamps instead of checking the files ourselves

* Add hot reloading

* Inject hot reload code snippet
2024-05-14 16:35:50 +00:00
absidue
819139e75a Use webpack dev server's open option (#4988) 2024-04-25 16:05:03 -04:00
absidue
a94910df27 Serve files from a custom protocol instead of using file:// (#4987) 2024-04-23 21:24:59 +00:00
absidue
27eecb9e0b Simplify static file loading (#4971) 2024-04-18 01:09:29 +00:00
absidue
fa66e82a56 Bundle datastores as ES modules instead of commonjs (#4965) 2024-04-17 22:33:13 +00:00
absidue
bb7d90be05 Fix imports of the "electron" module that are missing an Electron guard (#4935) 2024-04-14 13:16:55 +00:00
absidue
af2913592e Add SUPPORTS_LOCAL_API build flag (#4931) 2024-04-12 06:12:50 +00:00
absidue
77df063c71 Fix the web build's manifest.json file getting included in the electron build (#4815) 2024-03-27 08:31:11 +08:00
absidue
31c813ddfd Stop setting node modules path now that we bundle the modules (#4809) 2024-03-26 20:27:35 -04:00
dependabot[bot]
7ef9ce9a4e Bump webpack-dev-server from 4.15.1 to 5.0.2 (#4695)
* Bump webpack-dev-server from 4.15.1 to 5.0.2

Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.15.1 to 5.0.2.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.15.1...v5.0.2)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-major
...

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

* ! Fix running `yarn dev`

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: PikachuEXE <git@pikachuexe.net>
2024-02-25 14:14:30 +01:00
absidue
161633d1d9 Include swiper version in CSS file name, for cache busting (#4685) 2024-02-19 10:58:59 +00:00
absidue
e0942ea8d9 Remove existence checks and fallbacks for files that always exist (#4544) 2024-02-04 20:45:37 +00:00
Jason
baa7b014eb Fix caption sorting & label (#4513)
* Fix auto-translated captions not being ordered properly in non-English languages

* Fix locale showing as 'locale name' in captions list
2024-01-06 11:25:16 +01:00
efb4f5ff-1298-471a-8973-3d47447115dc
e3f95e44b8 Update Copyleft (#4510) 2024-01-02 18:19:04 +01:00
absidue
02ee4c8148 Only bundle the Swiper modules that we use (#4455) 2023-12-16 13:50:09 +00:00
lauren n. liberda
407bcda015 split electron-builder config to a separate file from build script (#4431)
* split electron-builder config to a separate file from build script

* review changes
2023-12-09 09:50:51 +08:00