Merge pull request #1160 from Materialious/update/1.10.18

Update/1.10.18
This commit is contained in:
Ward
2025-11-02 19:33:46 +13:00
committed by GitHub
36 changed files with 162 additions and 210 deletions
+2 -2
View File
@@ -7,8 +7,8 @@ android {
applicationId "us.materialio.app"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 158
versionName "1.10.17"
versionCode 159
versionName "1.10.18"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
@@ -68,7 +68,11 @@
</content_rating>
<releases>
<release version="1.10.17" date="2025-10-16">
<release version="1.10.18" date="2025-11-02">
<url>https://github.com/Materialious/Materialious/releases/tag/1.10.18</url>
</release>
<release version="1.10.17" date="2025-10-16">
<url>https://github.com/Materialious/Materialious/releases/tag/1.10.17</url>
</release>
<release version="1.10.16" date="2025-10-15">
+66 -114
View File
@@ -1,12 +1,12 @@
{
"name": "Materialious",
"version": "1.10.17",
"version": "1.10.18",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "Materialious",
"version": "1.10.17",
"version": "1.10.18",
"license": "MIT",
"dependencies": {
"@capacitor-community/electron": "^5.0.0",
@@ -18,48 +18,64 @@
"electron-unhandled": "^4.0.1",
"electron-updater": "^6.3.4",
"electron-window-state": "^5.0.3",
"jsdom": "^27.0.0",
"jsdom": "^27.1.0",
"jsonfile": "^6.2.0"
},
"devDependencies": {
"electron": "^38.2.2",
"electron": "^39.0.0",
"electron-builder": "^26.0.12",
"electron-rebuild": "^3.2.9",
"typescript": "^5.9.3"
}
},
"node_modules/@acemir/cssom": {
"version": "0.9.19",
"resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.19.tgz",
"integrity": "sha512-Pp2gAQXPZ2o7lt4j0IMwNRXqQ3pagxtDj5wctL5U2Lz4oV0ocDNlkgx4DpxfyKav4S/bePuI+SMqcBSUHLy9kg==",
"license": "MIT"
},
"node_modules/@asamuzakjp/css-color": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.4.tgz",
"integrity": "sha512-cKjSKvWGmAziQWbCouOsFwb14mp1betm8Y7Fn+yglDMUUu3r9DCbJ9iJbeFDenLMqFbIMC0pQP8K+B8LAxX3OQ==",
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.5.tgz",
"integrity": "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==",
"license": "MIT",
"dependencies": {
"@csstools/css-calc": "^2.1.4",
"@csstools/css-color-parser": "^3.0.10",
"@csstools/css-color-parser": "^3.1.0",
"@csstools/css-parser-algorithms": "^3.0.5",
"@csstools/css-tokenizer": "^3.0.4",
"lru-cache": "^11.1.0"
"lru-cache": "^11.2.1"
}
},
"node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
"version": "11.2.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.1.tgz",
"integrity": "sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==",
"version": "11.2.2",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
"integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
"license": "ISC",
"engines": {
"node": "20 || >=22"
}
},
"node_modules/@asamuzakjp/dom-selector": {
"version": "6.5.4",
"resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.5.4.tgz",
"integrity": "sha512-RNSNk1dnB8lAn+xdjlRoM4CzdVrHlmXZtSXAWs2jyl4PiBRWqTZr9ML5M710qgd9RPTBsVG6P0SLy7dwy0Foig==",
"version": "6.7.4",
"resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.4.tgz",
"integrity": "sha512-buQDjkm+wDPXd6c13534URWZqbz0RP5PAhXZ+LIoa5LgwInT9HVJvGIJivg75vi8I13CxDGdTnz+aY5YUJlIAA==",
"license": "MIT",
"dependencies": {
"@asamuzakjp/nwsapi": "^2.3.9",
"bidi-js": "^1.0.3",
"css-tree": "^3.1.0",
"is-potential-custom-element-name": "^1.0.1"
"is-potential-custom-element-name": "^1.0.1",
"lru-cache": "^11.2.2"
}
},
"node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": {
"version": "11.2.2",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
"integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
"license": "ISC",
"engines": {
"node": "20 || >=22"
}
},
"node_modules/@asamuzakjp/nwsapi": {
@@ -233,9 +249,9 @@
}
},
"node_modules/@csstools/css-syntax-patches-for-csstree": {
"version": "1.0.14",
"resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.14.tgz",
"integrity": "sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==",
"version": "1.0.15",
"resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.15.tgz",
"integrity": "sha512-q0p6zkVq2lJnmzZVPR33doA51G7YOja+FBvRdp5ISIthL0MtFCgYHHhR563z9WFGxcOn0WfjSkPDJ5Qig3H3Sw==",
"funding": [
{
"type": "github",
@@ -249,9 +265,6 @@
"license": "MIT-0",
"engines": {
"node": ">=18"
},
"peerDependencies": {
"postcss": "^8.4"
}
},
"node_modules/@csstools/css-tokenizer": {
@@ -2214,9 +2227,9 @@
}
},
"node_modules/cssstyle": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.0.tgz",
"integrity": "sha512-RveJPnk3m7aarYQ2bJ6iw+Urh55S6FzUiqtBq+TihnTDP4cI8y/TYDqGOyqgnG1J1a6BxJXZsV9JFSTulm9Z7g==",
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.2.tgz",
"integrity": "sha512-zDMqXh8Vs1CdRYZQ2M633m/SFgcjlu8RB8b/1h82i+6vpArF507NSYIWJHGlJaTWoS+imcnctmEz43txhbVkOw==",
"license": "MIT",
"dependencies": {
"@asamuzakjp/css-color": "^4.0.3",
@@ -2258,9 +2271,9 @@
}
},
"node_modules/decimal.js": {
"version": "10.5.0",
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz",
"integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==",
"version": "10.6.0",
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
"integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
"license": "MIT"
},
"node_modules/decompress-response": {
@@ -2558,9 +2571,9 @@
}
},
"node_modules/electron": {
"version": "38.2.2",
"resolved": "https://registry.npmjs.org/electron/-/electron-38.2.2.tgz",
"integrity": "sha512-OXSaVNXDlonXDjMRsFNQo1j5tzTKwKXh5/m46IjAFccBcZJZMISI+EjSI07oexIuhvKM8AZLuFuihVn4YjWWrA==",
"version": "39.0.0",
"resolved": "https://registry.npmjs.org/electron/-/electron-39.0.0.tgz",
"integrity": "sha512-UejnuOK4jpRZUq7MkEAnR/szsRWLKBJAdvn6j3xdQLT57fVv13VSNdaUHHjSheaqGzNhCGIdkPsPJnGJVh5kiA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -3919,21 +3932,21 @@
"license": "MIT"
},
"node_modules/jsdom": {
"version": "27.0.0",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.0.0.tgz",
"integrity": "sha512-lIHeR1qlIRrIN5VMccd8tI2Sgw6ieYXSVktcSHaNe3Z5nE/tcPQYQWOq00wxMvYOsz+73eAkNenVvmPC6bba9A==",
"version": "27.1.0",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.1.0.tgz",
"integrity": "sha512-Pcfm3eZ+eO4JdZCXthW9tCDT3nF4K+9dmeZ+5X39n+Kqz0DDIABRP5CAEOHRFZk8RGuC2efksTJxrjp8EXCunQ==",
"license": "MIT",
"dependencies": {
"@asamuzakjp/dom-selector": "^6.5.4",
"cssstyle": "^5.3.0",
"@acemir/cssom": "^0.9.19",
"@asamuzakjp/dom-selector": "^6.7.3",
"cssstyle": "^5.3.2",
"data-urls": "^6.0.0",
"decimal.js": "^10.5.0",
"decimal.js": "^10.6.0",
"html-encoding-sniffer": "^4.0.0",
"http-proxy-agent": "^7.0.2",
"https-proxy-agent": "^7.0.6",
"is-potential-custom-element-name": "^1.0.1",
"parse5": "^7.3.0",
"rrweb-cssom": "^0.8.0",
"parse5": "^8.0.0",
"saxes": "^6.0.0",
"symbol-tree": "^3.2.4",
"tough-cookie": "^6.0.0",
@@ -3941,12 +3954,12 @@
"webidl-conversions": "^8.0.0",
"whatwg-encoding": "^3.1.1",
"whatwg-mimetype": "^4.0.0",
"whatwg-url": "^15.0.0",
"ws": "^8.18.2",
"whatwg-url": "^15.1.0",
"ws": "^8.18.3",
"xml-name-validator": "^5.0.0"
},
"engines": {
"node": ">=20"
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"canvas": "^3.0.0"
@@ -4418,25 +4431,6 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT"
},
"node_modules/nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"peer": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/native-run": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/native-run/-/native-run-2.0.1.tgz",
@@ -4729,9 +4723,9 @@
"license": "BlueOak-1.0.0"
},
"node_modules/parse5": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
"integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz",
"integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==",
"license": "MIT",
"dependencies": {
"entities": "^6.0.0"
@@ -4814,13 +4808,6 @@
"integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
"license": "MIT"
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"license": "ISC",
"peer": true
},
"node_modules/plist": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
@@ -4835,35 +4822,6 @@
"node": ">=10.4.0"
}
},
"node_modules/postcss": {
"version": "8.5.6",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/postject": {
"version": "1.0.0-alpha.6",
"resolved": "https://registry.npmjs.org/postject/-/postject-1.0.0-alpha.6.tgz",
@@ -5220,12 +5178,6 @@
"node": ">=8.0"
}
},
"node_modules/rrweb-cssom": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
"integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
"license": "MIT"
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -5782,15 +5734,15 @@
}
},
"node_modules/tr46": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
"integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz",
"integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==",
"license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
},
"engines": {
"node": ">=18"
"node": ">=20"
}
},
"node_modules/tree-kill": {
@@ -5985,12 +5937,12 @@
}
},
"node_modules/whatwg-url": {
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.0.0.tgz",
"integrity": "sha512-+0q+Pc6oUhtbbeUfuZd4heMNOLDJDdagYxv756mCf9vnLF+NTj4zvv5UyYNkHJpc3CJIesMVoEIOdhi7L9RObA==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz",
"integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==",
"license": "MIT",
"dependencies": {
"tr46": "^5.1.1",
"tr46": "^6.0.0",
"webidl-conversions": "^8.0.0"
},
"engines": {
+5 -4
View File
@@ -1,6 +1,6 @@
{
"name": "Materialious",
"version": "1.10.17",
"version": "1.10.18",
"description": "Modern material design for Invidious.",
"author": {
"name": "Ward Pearce",
@@ -24,17 +24,18 @@
"dependencies": {
"@capacitor-community/electron": "^5.0.0",
"bgutils-js": "^3.2.0",
"capacitor-nodejs": "https://github.com/hampoelz/capacitor-nodejs/releases/download/v1.0.0-beta.9/capacitor-nodejs.tgz",
"chokidar": "~4.0.3",
"electron-is-dev": "~2.0.0",
"electron-serve": "~3.0.0",
"electron-unhandled": "^4.0.1",
"electron-updater": "^6.3.4",
"electron-window-state": "^5.0.3",
"jsdom": "^27.0.0",
"jsdom": "^27.1.0",
"jsonfile": "^6.2.0"
},
"devDependencies": {
"electron": "^38.2.2",
"electron": "^39.0.0",
"electron-builder": "^26.0.12",
"electron-rebuild": "^3.2.9",
"typescript": "^5.9.3"
@@ -43,4 +44,4 @@
"capacitor",
"electron"
]
}
}
@@ -1,4 +1,6 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const CapacitorNodejs = require('../../../node_modules/capacitor-nodejs/electron/dist/plugin.js');
module.exports = {
CapacitorNodejs,
}
+27 -41
View File
@@ -1,12 +1,12 @@
{
"name": "materialious",
"version": "1.10.17",
"version": "1.10.18",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "materialious",
"version": "1.10.17",
"version": "1.10.18",
"hasInstallScript": true,
"dependencies": {
"@capacitor-community/electron": "^5.0.1",
@@ -23,8 +23,8 @@
"fuse.js": "^7.0.0",
"googlevideo": "^4.0.4",
"he": "^1.2.0",
"human-number": "^2.0.6",
"i18next": "^25.5.0",
"human-number": "^2.0.7",
"i18next": "^25.6.0",
"iso-3166": "^4.3.0",
"iso-639-1": "^3.1.5",
"material-dynamic-colors": "^1.1.1",
@@ -35,7 +35,7 @@
"sponsorblock-api": "^0.2.4",
"svelte-infinite-loading": "^1.4.0",
"svelte-persisted-store": "^0.12.0",
"youtubei.js": "^16.0.0"
"youtubei.js": "^16.0.1"
},
"devDependencies": {
"@capacitor/assets": "^3.0.5",
@@ -58,24 +58,11 @@
"patch-package": "^8.0.0",
"prettier": "^3.6.2",
"prettier-plugin-svelte": "^3.4.0",
"svelte": "^5.19.7",
"svelte": "^5.43.2",
"svelte-check": "^4.3.3",
"tslib": "^2.7.0",
"typescript": "^5.6.3",
"vite": "^7.1.9"
}
},
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"license": "Apache-2.0",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
"vite": "^7.1.12"
}
},
"node_modules/@babel/code-frame": {
@@ -2683,7 +2670,6 @@
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
@@ -6110,9 +6096,9 @@
}
},
"node_modules/esrap": {
"version": "1.4.6",
"resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.6.tgz",
"integrity": "sha512-F/D2mADJ9SHY3IwksD4DAXjTt7qt7GWUf3/8RhCNWmC/67tyb55dpimHmy7EplakFaflV0R/PC+fdSPqrRHAQw==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.2.tgz",
"integrity": "sha512-DgvlIQeowRNyvLPWW4PT7Gu13WznY288Du086E751mwwbsgr29ytBiYeLzAGIo0qk3Ujob0SDk8TiSaM5WQzNg==",
"license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15"
@@ -7217,9 +7203,9 @@
}
},
"node_modules/human-number": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/human-number/-/human-number-2.0.6.tgz",
"integrity": "sha512-ZqC6hloPr6qI+HP14ls2ia/iLDH9UBOYLKYlS1d3F7qz+cwNAX8t0SdQq1GF4CHpS+hU2ElVxPUh89swOymPPQ==",
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/human-number/-/human-number-2.0.7.tgz",
"integrity": "sha512-oRlIx8WSLqpGutVzCq72WipnfH1+OaSoxiPc5l2eMxjqgGow3K4jzCxAHkS93nPxFDa0vXUKaDrmdIAKLwBlHQ==",
"license": "MIT",
"dependencies": {
"round-to": "~5.0.0"
@@ -7229,9 +7215,9 @@
}
},
"node_modules/i18next": {
"version": "25.5.0",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-25.5.0.tgz",
"integrity": "sha512-Mm2CgIq0revRFbBvfzqW9kDw1r44M4VDWC+YNRx9vTo5bU/iogSdEAC2HEonDA4czEce/iSbAkK90Tw7UrRZKA==",
"version": "25.6.0",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-25.6.0.tgz",
"integrity": "sha512-tTn8fLrwBYtnclpL5aPXK/tAYBLWVvoHM1zdfXoRNLcI+RvtMsoZRV98ePlaW3khHYKuNh/Q65W/+NVFUeIwVw==",
"funding": [
{
"type": "individual",
@@ -11645,12 +11631,12 @@
}
},
"node_modules/svelte": {
"version": "5.28.2",
"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.28.2.tgz",
"integrity": "sha512-FbWBxgWOpQfhKvoGJv/TFwzqb4EhJbwCD17dB0tEpQiw1XyUEKZJtgm4nA4xq3LLsMo7hu5UY/BOFmroAxKTMg==",
"version": "5.43.2",
"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.43.2.tgz",
"integrity": "sha512-ro1umEzX8rT5JpCmlf0PPv7ncD8MdVob9e18bhwqTKNoLjS8kDvhVpaoYVPc+qMwDAOfcwJtyY7ZFSDbOaNPgA==",
"license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.3.0",
"@jridgewell/remapping": "^2.3.4",
"@jridgewell/sourcemap-codec": "^1.5.0",
"@sveltejs/acorn-typescript": "^1.0.5",
"@types/estree": "^1.0.5",
@@ -11659,7 +11645,7 @@
"axobject-query": "^4.1.0",
"clsx": "^2.1.1",
"esm-env": "^1.2.1",
"esrap": "^1.4.6",
"esrap": "^2.1.0",
"is-reference": "^3.0.3",
"locate-character": "^3.0.0",
"magic-string": "^0.30.11",
@@ -12495,9 +12481,9 @@
}
},
"node_modules/vite": {
"version": "7.1.9",
"resolved": "https://registry.npmjs.org/vite/-/vite-7.1.9.tgz",
"integrity": "sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg==",
"version": "7.1.12",
"resolved": "https://registry.npmjs.org/vite/-/vite-7.1.12.tgz",
"integrity": "sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14002,9 +13988,9 @@
}
},
"node_modules/youtubei.js": {
"version": "16.0.0",
"resolved": "https://registry.npmjs.org/youtubei.js/-/youtubei.js-16.0.0.tgz",
"integrity": "sha512-aMx+ulnrxzsgVsxTr7gbBVnIjti2NQUlMwCoo1/MzICCJS3iMLOPUFdo7bSpwskL6ljzQ/LxmmB4WQC3FtkBlA==",
"version": "16.0.1",
"resolved": "https://registry.npmjs.org/youtubei.js/-/youtubei.js-16.0.1.tgz",
"integrity": "sha512-3802bCAGkBc2/G5WUTc0l/bO5mPYJbQAHL04d9hE9PnrDHoBUT8MN721Yqt4RCNncAXdHcfee9VdJy3Fhq1r5g==",
"funding": [
"https://github.com/sponsors/LuanRT"
],
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "materialious",
"version": "1.10.17",
"version": "1.10.18",
"private": true,
"scripts": {
"dev": "vite dev",
@@ -34,11 +34,11 @@
"patch-package": "^8.0.0",
"prettier": "^3.6.2",
"prettier-plugin-svelte": "^3.4.0",
"svelte": "^5.19.7",
"svelte": "^5.43.2",
"svelte-check": "^4.3.3",
"tslib": "^2.7.0",
"typescript": "^5.6.3",
"vite": "^7.1.9"
"vite": "^7.1.12"
},
"type": "module",
"dependencies": {
@@ -56,8 +56,8 @@
"fuse.js": "^7.0.0",
"googlevideo": "^4.0.4",
"he": "^1.2.0",
"human-number": "^2.0.6",
"i18next": "^25.5.0",
"human-number": "^2.0.7",
"i18next": "^25.6.0",
"iso-3166": "^4.3.0",
"iso-639-1": "^3.1.5",
"material-dynamic-colors": "^1.1.1",
@@ -68,6 +68,6 @@
"sponsorblock-api": "^0.2.4",
"svelte-infinite-loading": "^1.4.0",
"svelte-persisted-store": "^0.12.0",
"youtubei.js": "^16.0.0"
"youtubei.js": "^16.0.1"
}
}
+1 -1
View File
@@ -36,7 +36,6 @@ export interface Video extends VideoBase {
authorVerified: boolean;
description: string;
descriptionHtml: string;
viewCount: number;
published: number;
publishedText: string;
premiereTimestamp: number;
@@ -91,6 +90,7 @@ export interface VideoPlay extends Video {
keywords: string[];
likeCount: number;
dislikeCount: number;
viewCount: number;
subCountText: string;
allowRatings: boolean;
rating: number;
@@ -1,7 +1,7 @@
<script lang="ts">
import { getBestThumbnail } from '$lib/images';
import { letterCase } from '$lib/letterCasing';
import { cleanNumber, videoLength } from '$lib/numbers';
import { videoLength } from '$lib/numbers';
import { onDestroy, onMount } from 'svelte';
import { _ } from '$lib/i18n';
import { get } from 'svelte/store';
@@ -226,7 +226,7 @@
{#if 'publishedText' in video}
<div class="max">
{cleanNumber(video.viewCount)}{video.publishedText}
{video.viewCountText}{video.publishedText}
</div>
{/if}
</div>
@@ -94,11 +94,9 @@
{/if}
{#if replies}
<div style="margin-left: 5em;">
{#each replies.comments as reply}
<CommentSelf comment={reply} {videoId} isSubComp={true} />
{/each}
</div>
{#each replies.comments as reply}
<CommentSelf comment={reply} {videoId} isSubComp={true} />
{/each}
{/if}
</article>
@@ -1,5 +1,5 @@
<script lang="ts">
import { numberWithCommas } from '$lib/numbers';
import { cleanNumber } from '$lib/numbers';
import { _ } from '$lib/i18n';
import type { VideoPlay } from '$lib/api/model';
import { onMount } from 'svelte';
@@ -19,7 +19,7 @@
<summary id="description" class="bold none">
<nav>
<div class="max">
{numberWithCommas(video.viewCount)}
{cleanNumber(video.viewCount)}
{$_('views')}{video.publishedText}
</div>
</nav>
+9 -3
View File
@@ -6,7 +6,8 @@
"materialiousLink": "Kopēt Materialious saiti",
"invidiousRedirect": "Kopēt Invidious servera (instances) saiti",
"title": "Dalīties",
"youtubeLink": "Kopēt YouTube saiti"
"youtubeLink": "Kopēt YouTube saiti",
"includeTimestamp": "Iekļaut atskaņošanas laiku"
},
"download": "Lejupielādēt",
"downloadSteps": {
@@ -71,7 +72,11 @@
"syncPartyWarning": "Lūdzu, ņemiet vērā, ka Jūsu IP adrese būs pieejama lietotājiem, kurus jūs uzaicināt.",
"syncParty": "Kopīga skatīšanās ballīte",
"startSyncParty": "Sākt kopīgu skatīšanās ballīti",
"endSyncParty": "Beigt kopīgu skatīšanās ballīti"
"endSyncParty": "Beigt kopīgu skatīšanās ballīti",
"about": "Par lietotni",
"expandDescription": "Izvērst aprakstu",
"expandChapters": "Izvērst nodaļas",
"expandComments": "Izvērst komentārus"
},
"channels": "kanāli",
"copyUrl": "Kopēt URL saiti",
@@ -134,5 +139,6 @@
},
"invidiousLogin": "Lūdzu, autorizējieties ar savu Invidious kontu",
"noResult": "Bez rezultātiem",
"letterCase": "Virsrakstu burtu reģistrs"
"letterCase": "Virsrakstu burtu reģistrs",
"version": "Versija"
}
+4 -2
View File
@@ -172,7 +172,8 @@
"allowInsecureRequests": "Разрешить небезопасные запросы",
"companionUrl": "URL-адрес компаньона",
"expandChapters": "Раскрывать главы по умолчанию",
"disableAutoUpdate": "Отключить автоматические обновления"
"disableAutoUpdate": "Отключить автоматические обновления",
"about": "О приложении"
},
"subscribe": "Подписаться",
"invalidInstance": "Проверьте URL-адрес. Если он правильный, то возможно сервер сейчас недоступен или не поддерживает сторонние клиенты.",
@@ -185,5 +186,6 @@
"premium": "Премиум-контент YouTube нельзя просматривать в Materialious.",
"isUpcoming": "Видео ещё не готово к просмотру.",
"comments": "комментарии",
"reply": "ответить"
"reply": "ответить",
"version": "Версия"
}
@@ -153,6 +153,8 @@ export async function patchYoutubeJs(videoId: string): Promise<VideoPlay> {
return;
}
console.log(recommended);
recommendedVideos.push({
videoThumbnails: (recommended?.content_image?.image as Thumbnail[]) || [],
videoId: recommended?.content_id || '',
+1 -1
View File
@@ -9,7 +9,7 @@
import Logo from '$lib/components/Logo.svelte';
import PageLoading from '$lib/components/PageLoading.svelte';
import Search from '$lib/components/Search.svelte';
import Settings from '$lib/components/Settings/Settings.svelte';
import Settings from '$lib/components/settings/Settings.svelte';
import SyncParty from '$lib/components/SyncParty.svelte';
import Thumbnail from '$lib/components/Thumbnail.svelte';
import '$lib/css/global.css';
@@ -1,6 +1,6 @@
<script lang="ts">
import { getHashtag } from '$lib/api';
import type { Video } from '$lib/api/model.js';
import type { Video } from '$lib/api/model';
import ItemsList from '$lib/components/ItemsList.svelte';
import { onMount } from 'svelte';
import InfiniteLoading, { type InfiniteEvent } from 'svelte-infinite-loading';
@@ -1,4 +1,4 @@
import { loadEntirePlaylist } from '$lib/playlist.js';
import { loadEntirePlaylist } from '$lib/playlist';
import { error } from '@sveltejs/kit';
export async function load({ params }) {
@@ -6,8 +6,8 @@
import PageLoading from '$lib/components/PageLoading.svelte';
import PlaylistThumbnail from '$lib/components/PlaylistThumbnail.svelte';
import Thumbnail from '$lib/components/Thumbnail.svelte';
import { extractUniqueId } from '$lib/misc.js';
import { feedLastItemId, searchCacheStore } from '$lib/store.js';
import { extractUniqueId } from '$lib/misc';
import { feedLastItemId, searchCacheStore } from '$lib/store';
import { onMount } from 'svelte';
import { _ } from '$lib/i18n';
import InfiniteLoading, { type InfiniteEvent } from 'svelte-infinite-loading';
@@ -1,7 +1,7 @@
import { getSearch } from '$lib/api/index';
import type { Channel, HashTag, Playlist, Video } from '$lib/api/model';
import { excludeDuplicateFeeds } from '$lib/misc.js';
import { searchCacheStore } from '$lib/store.js';
import { excludeDuplicateFeeds } from '$lib/misc';
import { searchCacheStore } from '$lib/store';
import { error } from '@sveltejs/kit';
import { get } from 'svelte/store';
@@ -1,6 +1,6 @@
<script lang="ts">
import { getFeed } from '$lib/api/index';
import type { PlaylistPageVideo, Video, VideoBase } from '$lib/api/model.js';
import type { PlaylistPageVideo, Video, VideoBase } from '$lib/api/model';
import { feedCacheStore } from '$lib/store';
import { _ } from '$lib/i18n';
import InfiniteLoading, { type InfiniteEvent } from 'svelte-infinite-loading';
@@ -6,7 +6,6 @@
removePlaylistVideo
} from '$lib/api/index';
import type { Comments, PlaylistPage } from '$lib/api/model';
import Comment from '$lib/components/Comment.svelte';
import Player from '$lib/components/Player.svelte';
import ShareVideo from '$lib/components/ShareVideo.svelte';
import Thumbnail from '$lib/components/Thumbnail.svelte';
@@ -14,7 +13,7 @@
import { getBestThumbnail } from '$lib/images';
import { letterCase } from '$lib/letterCasing';
import { cleanNumber, humanizeSeconds, numberWithCommas } from '$lib/numbers';
import type { PlayerEvents } from '$lib/player.js';
import type { PlayerEvents } from '$lib/player';
import {
authStore,
interfaceAutoExpandChapters,
@@ -31,11 +30,12 @@
import { onDestroy, onMount, tick } from 'svelte';
import { _ } from '$lib/i18n';
import { get } from 'svelte/store';
import { loadEntirePlaylist } from '$lib/playlist.js';
import Author from '$lib/components/Watch/Author.svelte';
import Description from '$lib/components/Watch/Description.svelte';
import { expandSummery } from '$lib/misc.js';
import LikesDislikes from '$lib/components/Watch/LikesDislikes.svelte';
import { loadEntirePlaylist } from '$lib/playlist';
import Author from '$lib/components/watch/Author.svelte';
import Description from '$lib/components/watch/Description.svelte';
import LikesDislikes from '$lib/components/watch/LikesDislikes.svelte';
import Comment from '$lib/components/watch/Comment.svelte';
import { expandSummery } from '$lib/misc';
let { data = $bindable() } = $props();
@@ -1,4 +1,4 @@
import { getWatchDetails } from '$lib/watch.js';
import { getWatchDetails } from '$lib/watch';
export async function load({ params, url }) {
return getWatchDetails(params.slug, url);
@@ -1,15 +1,14 @@
<script lang="ts">
import ContentColumn from '$lib/components/ContentColumn.svelte';
import Player from '$lib/components/Player.svelte';
import Thumbnail from '$lib/components/Thumbnail.svelte';
import Author from '$lib/components/Watch/Author.svelte';
import Description from '$lib/components/Watch/Description.svelte';
import LikesDislikes from '$lib/components/Watch/LikesDislikes.svelte';
import { letterCase } from '$lib/letterCasing.js';
import Author from '$lib/components/watch/Author.svelte';
import Description from '$lib/components/watch/Description.svelte';
import LikesDislikes from '$lib/components/watch/LikesDislikes.svelte';
import { letterCase } from '$lib/letterCasing';
import Mousetrap from 'mousetrap';
import { onDestroy, onMount, tick } from 'svelte';
import { _ } from '$lib/i18n';
import { playlistCacheStore } from '$lib/store.js';
import { playlistCacheStore } from '$lib/store';
import { fade } from 'svelte/transition';
import ItemsList from '$lib/components/ItemsList.svelte';
@@ -1,5 +1,5 @@
import { isTvRouteLoading } from '$lib/store.js';
import { getWatchDetails } from '$lib/watch.js';
import { isTvRouteLoading } from '$lib/store';
import { getWatchDetails } from '$lib/watch';
export async function load({ params, url }) {
isTvRouteLoading.set(true);
+2 -2
View File
@@ -4,8 +4,8 @@ import androidTv from '$lib/android/plugins/androidTv';
import { getResolveUrl } from '$lib/api';
import '$lib/i18n'; // Import to initialize. Important :)
import { initI18n } from '$lib/i18n';
import { getPages } from '$lib/navPages.js';
import { authStore, interfaceDefaultPage, isAndroidTvStore } from '$lib/store.js';
import { getPages } from '$lib/navPages';
import { authStore, interfaceDefaultPage, isAndroidTvStore } from '$lib/store';
import { get } from 'svelte/store';
export const ssr = false;
+1 -1
View File
@@ -3,7 +3,7 @@ import os
import re
from datetime import datetime
LATEST_VERSION = "1.10.17"
LATEST_VERSION = "1.10.18"
RELEASE_DATE = datetime.now().strftime("%Y-%-m-%d") # Format: YYYY-M-D
WORKING_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "materialious")