Merge branch 'dev' into feat/autoplay

This commit is contained in:
chaos 2024-04-10 19:24:26 +03:00 committed by GitHub
commit e78d7a36f5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 298 additions and 157 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "movie-web", "name": "movie-web",
"version": "4.6.3", "version": "4.6.6",
"private": true, "private": true,
"homepage": "https://github.com/movie-web/movie-web", "homepage": "https://github.com/movie-web/movie-web",
"scripts": { "scripts": {
@ -29,7 +29,7 @@
"@formkit/auto-animate": "^0.8.1", "@formkit/auto-animate": "^0.8.1",
"@headlessui/react": "^1.7.17", "@headlessui/react": "^1.7.17",
"@ladjs/country-language": "^1.0.3", "@ladjs/country-language": "^1.0.3",
"@movie-web/providers": "^2.2.5", "@movie-web/providers": "^2.2.9",
"@noble/hashes": "^1.3.3", "@noble/hashes": "^1.3.3",
"@plasmohq/messaging": "^0.6.1", "@plasmohq/messaging": "^0.6.1",
"@react-spring/web": "^9.7.3", "@react-spring/web": "^9.7.3",
@ -121,7 +121,7 @@
"tailwindcss-themer": "^4.0.0", "tailwindcss-themer": "^4.0.0",
"type-fest": "^4.8.3", "type-fest": "^4.8.3",
"typescript": "^5.3.3", "typescript": "^5.3.3",
"vite": "^5.0.12", "vite": "^5.0.13",
"vite-plugin-checker": "^0.6.2", "vite-plugin-checker": "^0.6.2",
"vite-plugin-package-version": "^1.1.0", "vite-plugin-package-version": "^1.1.0",
"vite-plugin-pwa": "^0.17.4", "vite-plugin-pwa": "^0.17.4",

179
pnpm-lock.yaml generated
View File

@ -22,8 +22,8 @@ dependencies:
specifier: ^1.0.3 specifier: ^1.0.3
version: 1.0.3 version: 1.0.3
'@movie-web/providers': '@movie-web/providers':
specifier: ^2.2.5 specifier: ^2.2.9
version: 2.2.5 version: 2.2.9
'@noble/hashes': '@noble/hashes':
specifier: ^1.3.3 specifier: ^1.3.3
version: 1.3.3 version: 1.3.3
@ -217,7 +217,7 @@ devDependencies:
version: 6.15.0(eslint@8.56.0)(typescript@5.3.3) version: 6.15.0(eslint@8.56.0)(typescript@5.3.3)
'@vitejs/plugin-react': '@vitejs/plugin-react':
specifier: ^4.2.1 specifier: ^4.2.1
version: 4.2.1(vite@5.0.12) version: 4.2.1(vite@5.0.13)
autoprefixer: autoprefixer:
specifier: ^10.4.16 specifier: ^10.4.16
version: 10.4.16(postcss@8.4.32) version: 10.4.16(postcss@8.4.32)
@ -277,7 +277,7 @@ devDependencies:
version: 0.5.9(prettier@3.1.1) version: 0.5.9(prettier@3.1.1)
rollup-plugin-visualizer: rollup-plugin-visualizer:
specifier: ^5.11.0 specifier: ^5.11.0
version: 5.11.0(@rollup/wasm-node@4.13.2) version: 5.11.0(@rollup/wasm-node@4.14.0)
tailwind-scrollbar: tailwind-scrollbar:
specifier: ^3.0.5 specifier: ^3.0.5
version: 3.0.5(tailwindcss@3.4.0) version: 3.0.5(tailwindcss@3.4.0)
@ -294,20 +294,20 @@ devDependencies:
specifier: ^5.3.3 specifier: ^5.3.3
version: 5.3.3 version: 5.3.3
vite: vite:
specifier: ^5.0.12 specifier: ^5.0.13
version: 5.0.12(@types/node@20.10.5) version: 5.0.13(@types/node@20.10.5)
vite-plugin-checker: vite-plugin-checker:
specifier: ^0.6.2 specifier: ^0.6.2
version: 0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.12) version: 0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.13)
vite-plugin-package-version: vite-plugin-package-version:
specifier: ^1.1.0 specifier: ^1.1.0
version: 1.1.0(vite@5.0.12) version: 1.1.0(vite@5.0.13)
vite-plugin-pwa: vite-plugin-pwa:
specifier: ^0.17.4 specifier: ^0.17.4
version: 0.17.4(vite@5.0.12)(workbox-build@7.0.0)(workbox-window@7.0.0) version: 0.17.4(vite@5.0.13)(workbox-build@7.0.0)(workbox-window@7.0.0)
vite-plugin-static-copy: vite-plugin-static-copy:
specifier: ^1.0.0 specifier: ^1.0.0
version: 1.0.0(vite@5.0.12) version: 1.0.0(vite@5.0.13)
vitest: vitest:
specifier: ^1.1.0 specifier: ^1.1.0
version: 1.1.0(@types/node@20.10.5)(jsdom@23.0.1) version: 1.1.0(@types/node@20.10.5)(jsdom@23.0.1)
@ -3053,20 +3053,19 @@ packages:
engines: {node: '>= 14'} engines: {node: '>= 14'}
dev: false dev: false
/@movie-web/providers@2.2.5: /@movie-web/providers@2.2.9:
resolution: {integrity: sha512-/mBtU79uf2pfPwgkqKjoyuHGdDgHjKyGGVtd7xd0EQ5ds6ox5y2bSp4XtQRjZ7rZgyAh0aYFElAsY8SC+Nkz5g==} resolution: {integrity: sha512-NHsyplM9Oe4DK3lIkNaEk0CqoQ6IqlaWXeDh01jj+DH4I4EJjSD4ow7OTeAC+BLz3Gwj6fh/vaE2WBGevPTDkQ==}
requiresBuild: true
dependencies: dependencies:
cheerio: 1.0.0-rc.12 cheerio: 1.0.0-rc.12
cookie: 0.6.0 cookie: 0.6.0
crypto-js: 4.2.0 crypto-js: 4.2.0
form-data: 4.0.0 form-data: 4.0.0
iso-639-1: 3.1.0 iso-639-1: 3.1.2
nanoid: 3.3.7 nanoid: 3.3.7
node-fetch: 2.7.0 node-fetch: 3.3.2
set-cookie-parser: 2.6.0 set-cookie-parser: 2.6.0
unpacker: 1.0.1 unpacker: 1.0.1
transitivePeerDependencies:
- encoding
dev: false dev: false
/@noble/hashes@1.3.3: /@noble/hashes@1.3.3:
@ -3179,7 +3178,7 @@ packages:
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
dev: false dev: false
/@rollup/plugin-babel@5.3.1(@babel/core@7.24.3)(@rollup/wasm-node@4.13.2): /@rollup/plugin-babel@5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.14.0):
resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
engines: {node: '>= 10.0.0'} engines: {node: '>= 10.0.0'}
peerDependencies: peerDependencies:
@ -3190,38 +3189,38 @@ packages:
'@types/babel__core': '@types/babel__core':
optional: true optional: true
dependencies: dependencies:
'@babel/core': 7.24.3 '@babel/core': 7.23.6
'@babel/helper-module-imports': 7.24.3 '@babel/helper-module-imports': 7.22.15
'@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.13.2) '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.14.0)
rollup: /@rollup/wasm-node@4.13.2 rollup: /@rollup/wasm-node@4.14.0
dev: true dev: true
/@rollup/plugin-node-resolve@11.2.1(@rollup/wasm-node@4.13.2): /@rollup/plugin-node-resolve@11.2.1(@rollup/wasm-node@4.14.0):
resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==}
engines: {node: '>= 10.0.0'} engines: {node: '>= 10.0.0'}
peerDependencies: peerDependencies:
rollup: npm:@rollup/wasm-node rollup: npm:@rollup/wasm-node
dependencies: dependencies:
'@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.13.2) '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.14.0)
'@types/resolve': 1.17.1 '@types/resolve': 1.17.1
builtin-modules: 3.3.0 builtin-modules: 3.3.0
deepmerge: 4.3.1 deepmerge: 4.3.1
is-module: 1.0.0 is-module: 1.0.0
resolve: 1.22.8 resolve: 1.22.4
rollup: /@rollup/wasm-node@4.13.2 rollup: /@rollup/wasm-node@4.14.0
dev: true dev: true
/@rollup/plugin-replace@2.4.2(@rollup/wasm-node@4.13.2): /@rollup/plugin-replace@2.4.2(@rollup/wasm-node@4.14.0):
resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==}
peerDependencies: peerDependencies:
rollup: npm:@rollup/wasm-node rollup: npm:@rollup/wasm-node
dependencies: dependencies:
'@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.13.2) '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.14.0)
magic-string: 0.25.9 magic-string: 0.25.9
rollup: /@rollup/wasm-node@4.13.2 rollup: /@rollup/wasm-node@4.14.0
dev: true dev: true
/@rollup/pluginutils@3.1.0(@rollup/wasm-node@4.13.2): /@rollup/pluginutils@3.1.0(@rollup/wasm-node@4.14.0):
resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
engines: {node: '>= 8.0.0'} engines: {node: '>= 8.0.0'}
peerDependencies: peerDependencies:
@ -3230,11 +3229,11 @@ packages:
'@types/estree': 0.0.39 '@types/estree': 0.0.39
estree-walker: 1.0.1 estree-walker: 1.0.1
picomatch: 2.3.1 picomatch: 2.3.1
rollup: /@rollup/wasm-node@4.13.2 rollup: /@rollup/wasm-node@4.14.0
dev: true dev: true
/@rollup/wasm-node@4.13.2: /@rollup/wasm-node@4.14.0:
resolution: {integrity: sha512-4JXYomW63fBnXseG2mFkZwaNMDK0PkNamj9WD6H96FqEEl9ov3VjG3MK9UcOAj7Ap9o2weqSSCVng+QsxBeKfw==} resolution: {integrity: sha512-efST/LGEoabKrDzCgA26GJFSJ6B7y9qA6DY1lGUDamfObWtEjrsybaD0CoUZetpHaSFf/rv4ulYg80iWLyYrcQ==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
dependencies: dependencies:
@ -3620,7 +3619,7 @@ packages:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true dev: true
/@vitejs/plugin-react@4.2.1(vite@5.0.12): /@vitejs/plugin-react@4.2.1(vite@5.0.13):
resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies: peerDependencies:
@ -3631,7 +3630,7 @@ packages:
'@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6) '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6)
'@types/babel__core': 7.20.5 '@types/babel__core': 7.20.5
react-refresh: 0.14.0 react-refresh: 0.14.0
vite: 5.0.12(@types/node@20.10.5) vite: 5.0.13(@types/node@20.10.5)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -4467,6 +4466,11 @@ packages:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
dev: true dev: true
/data-uri-to-buffer@4.0.1:
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
engines: {node: '>= 12'}
dev: false
/data-urls@5.0.0: /data-urls@5.0.0:
resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
engines: {node: '>=18'} engines: {node: '>=18'}
@ -5369,6 +5373,14 @@ packages:
reusify: 1.0.4 reusify: 1.0.4
dev: true dev: true
/fetch-blob@3.2.0:
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
engines: {node: ^12.20 || >= 14.13}
dependencies:
node-domexception: 1.0.0
web-streams-polyfill: 3.3.3
dev: false
/file-entry-cache@6.0.1: /file-entry-cache@6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0} engines: {node: ^10.12.0 || >=12.0.0}
@ -5455,6 +5467,13 @@ packages:
combined-stream: 1.0.8 combined-stream: 1.0.8
mime-types: 2.1.35 mime-types: 2.1.35
/formdata-polyfill@4.0.10:
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
engines: {node: '>=12.20.0'}
dependencies:
fetch-blob: 3.2.0
dev: false
/fraction.js@4.3.7: /fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
dev: true dev: true
@ -6195,8 +6214,8 @@ packages:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true dev: true
/iso-639-1@3.1.0: /iso-639-1@3.1.2:
resolution: {integrity: sha512-rWcHp9dcNbxa5C8jA/cxFlWNFNwy5Vup0KcFvgA8sPQs9ZeJHj/Eq0Y8Yz2eL8XlWYpxw4iwh9FfTeVxyqdRMw==} resolution: {integrity: sha512-Le7BRl3Jt9URvaiEHJCDEdvPZCfhiQoXnFgLAWNRhzFMwRFdWO7/5tLRQbiPzE394I9xd7KdRCM7S6qdOhwG5A==}
engines: {node: '>=6.0'} engines: {node: '>=6.0'}
dev: false dev: false
@ -6541,7 +6560,7 @@ packages:
'@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6)
'@babel/types': 7.23.6 '@babel/types': 7.23.6
kleur: 4.1.5 kleur: 4.1.5
rollup: /@rollup/wasm-node@4.13.2 rollup: /@rollup/wasm-node@4.14.0
unplugin: 1.5.1 unplugin: 1.5.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -6663,20 +6682,22 @@ packages:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
dev: true dev: true
/node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
dev: false
/node-fetch-native@1.4.0: /node-fetch-native@1.4.0:
resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==} resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==}
dev: false dev: false
/node-fetch@2.7.0: /node-fetch@3.3.2:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
engines: {node: 4.x || >=6.0.0} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
peerDependencies:
encoding: ^0.1.0
peerDependenciesMeta:
encoding:
optional: true
dependencies: dependencies:
whatwg-url: 5.0.0 data-uri-to-buffer: 4.0.1
fetch-blob: 3.2.0
formdata-polyfill: 4.0.10
dev: false dev: false
/node-forge@1.3.1: /node-forge@1.3.1:
@ -7511,7 +7532,7 @@ packages:
glob: 7.2.3 glob: 7.2.3
dev: true dev: true
/rollup-plugin-terser@7.0.2(@rollup/wasm-node@4.13.2): /rollup-plugin-terser@7.0.2(@rollup/wasm-node@4.14.0):
resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
peerDependencies: peerDependencies:
@ -7519,12 +7540,12 @@ packages:
dependencies: dependencies:
'@babel/code-frame': 7.24.2 '@babel/code-frame': 7.24.2
jest-worker: 26.6.2 jest-worker: 26.6.2
rollup: /@rollup/wasm-node@4.13.2 rollup: /@rollup/wasm-node@4.14.0
serialize-javascript: 4.0.0 serialize-javascript: 4.0.0
terser: 5.30.0 terser: 5.30.0
dev: true dev: true
/rollup-plugin-visualizer@5.11.0(@rollup/wasm-node@4.13.2): /rollup-plugin-visualizer@5.11.0(@rollup/wasm-node@4.14.0):
resolution: {integrity: sha512-exM0Ms2SN3AgTzMeW7y46neZQcyLY7eKwWAop1ZoRTCZwyrIRdMMJ6JjToAJbML77X/9N8ZEpmXG4Z/Clb9k8g==} resolution: {integrity: sha512-exM0Ms2SN3AgTzMeW7y46neZQcyLY7eKwWAop1ZoRTCZwyrIRdMMJ6JjToAJbML77X/9N8ZEpmXG4Z/Clb9k8g==}
engines: {node: '>=14'} engines: {node: '>=14'}
hasBin: true hasBin: true
@ -7536,7 +7557,7 @@ packages:
dependencies: dependencies:
open: 8.4.2 open: 8.4.2
picomatch: 2.3.1 picomatch: 2.3.1
rollup: /@rollup/wasm-node@4.13.2 rollup: /@rollup/wasm-node@4.14.0
source-map: 0.7.4 source-map: 0.7.4
yargs: 17.7.2 yargs: 17.7.2
dev: true dev: true
@ -8214,10 +8235,6 @@ packages:
url-parse: 1.5.10 url-parse: 1.5.10
dev: true dev: true
/tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
dev: false
/tr46@1.0.1: /tr46@1.0.1:
resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
dependencies: dependencies:
@ -8543,7 +8560,7 @@ packages:
debug: 4.3.4 debug: 4.3.4
pathe: 1.1.1 pathe: 1.1.1
picocolors: 1.0.0 picocolors: 1.0.0
vite: 5.0.12(@types/node@20.10.5) vite: 5.0.13(@types/node@20.10.5)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- less - less
@ -8555,7 +8572,7 @@ packages:
- terser - terser
dev: true dev: true
/vite-plugin-checker@0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.12): /vite-plugin-checker@0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.13):
resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==}
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
peerDependencies: peerDependencies:
@ -8601,22 +8618,22 @@ packages:
strip-ansi: 6.0.1 strip-ansi: 6.0.1
tiny-invariant: 1.3.1 tiny-invariant: 1.3.1
typescript: 5.3.3 typescript: 5.3.3
vite: 5.0.12(@types/node@20.10.5) vite: 5.0.13(@types/node@20.10.5)
vscode-languageclient: 7.0.0 vscode-languageclient: 7.0.0
vscode-languageserver: 7.0.0 vscode-languageserver: 7.0.0
vscode-languageserver-textdocument: 1.0.8 vscode-languageserver-textdocument: 1.0.8
vscode-uri: 3.0.7 vscode-uri: 3.0.7
dev: true dev: true
/vite-plugin-package-version@1.1.0(vite@5.0.12): /vite-plugin-package-version@1.1.0(vite@5.0.13):
resolution: {integrity: sha512-TPoFZXNanzcaKCIrC3e2L/TVRkkRLB6l4RPN/S7KbG7rWfyLcCEGsnXvxn6qR7fyZwXalnnSN/I9d6pSFjHpEA==} resolution: {integrity: sha512-TPoFZXNanzcaKCIrC3e2L/TVRkkRLB6l4RPN/S7KbG7rWfyLcCEGsnXvxn6qR7fyZwXalnnSN/I9d6pSFjHpEA==}
peerDependencies: peerDependencies:
vite: '>=2.0.0-beta.69' vite: '>=2.0.0-beta.69'
dependencies: dependencies:
vite: 5.0.12(@types/node@20.10.5) vite: 5.0.13(@types/node@20.10.5)
dev: true dev: true
/vite-plugin-pwa@0.17.4(vite@5.0.12)(workbox-build@7.0.0)(workbox-window@7.0.0): /vite-plugin-pwa@0.17.4(vite@5.0.13)(workbox-build@7.0.0)(workbox-window@7.0.0):
resolution: {integrity: sha512-j9iiyinFOYyof4Zk3Q+DtmYyDVBDAi6PuMGNGq6uGI0pw7E+LNm9e+nQ2ep9obMP/kjdWwzilqUrlfVRj9OobA==} resolution: {integrity: sha512-j9iiyinFOYyof4Zk3Q+DtmYyDVBDAi6PuMGNGq6uGI0pw7E+LNm9e+nQ2ep9obMP/kjdWwzilqUrlfVRj9OobA==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
peerDependencies: peerDependencies:
@ -8627,14 +8644,14 @@ packages:
debug: 4.3.4 debug: 4.3.4
fast-glob: 3.3.2 fast-glob: 3.3.2
pretty-bytes: 6.1.1 pretty-bytes: 6.1.1
vite: 5.0.12(@types/node@20.10.5) vite: 5.0.13(@types/node@20.10.5)
workbox-build: 7.0.0 workbox-build: 7.0.0
workbox-window: 7.0.0 workbox-window: 7.0.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/vite-plugin-static-copy@1.0.0(vite@5.0.12): /vite-plugin-static-copy@1.0.0(vite@5.0.13):
resolution: {integrity: sha512-kMlrB3WDtC5GzFedNIPkpjnOAr8M11PfWOiUaONrUZ3AqogTsOmIhTt6w7Fh311wl8pN81ld7sfuOEogFJ9N8A==} resolution: {integrity: sha512-kMlrB3WDtC5GzFedNIPkpjnOAr8M11PfWOiUaONrUZ3AqogTsOmIhTt6w7Fh311wl8pN81ld7sfuOEogFJ9N8A==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies: peerDependencies:
@ -8644,11 +8661,11 @@ packages:
fast-glob: 3.3.1 fast-glob: 3.3.1
fs-extra: 11.1.1 fs-extra: 11.1.1
picocolors: 1.0.0 picocolors: 1.0.0
vite: 5.0.12(@types/node@20.10.5) vite: 5.0.13(@types/node@20.10.5)
dev: true dev: true
/vite@5.0.12(@types/node@20.10.5): /vite@5.0.13(@types/node@20.10.5):
resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} resolution: {integrity: sha512-/9ovhv2M2dGTuA+dY93B9trfyWMDRQw2jdVBhHNP6wr0oF34wG2i/N55801iZIpgUpnHDm4F/FabGQLyc+eOgg==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -8678,7 +8695,7 @@ packages:
'@types/node': 20.10.5 '@types/node': 20.10.5
esbuild: 0.19.10 esbuild: 0.19.10
postcss: 8.4.32 postcss: 8.4.32
rollup: /@rollup/wasm-node@4.13.2 rollup: /@rollup/wasm-node@4.14.0
optionalDependencies: optionalDependencies:
fsevents: 2.3.3 fsevents: 2.3.3
dev: true dev: true
@ -8728,7 +8745,7 @@ packages:
strip-literal: 1.3.0 strip-literal: 1.3.0
tinybench: 2.5.1 tinybench: 2.5.1
tinypool: 0.8.1 tinypool: 0.8.1
vite: 5.0.12(@types/node@20.10.5) vite: 5.0.13(@types/node@20.10.5)
vite-node: 1.1.0(@types/node@20.10.5) vite-node: 1.1.0(@types/node@20.10.5)
why-is-node-running: 2.2.2 why-is-node-running: 2.2.2
transitivePeerDependencies: transitivePeerDependencies:
@ -8793,8 +8810,9 @@ packages:
xml-name-validator: 5.0.0 xml-name-validator: 5.0.0
dev: true dev: true
/webidl-conversions@3.0.1: /web-streams-polyfill@3.3.3:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
engines: {node: '>= 8'}
dev: false dev: false
/webidl-conversions@4.0.2: /webidl-conversions@4.0.2:
@ -8835,13 +8853,6 @@ packages:
webidl-conversions: 7.0.0 webidl-conversions: 7.0.0
dev: true dev: true
/whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
dependencies:
tr46: 0.0.3
webidl-conversions: 3.0.1
dev: false
/whatwg-url@7.1.0: /whatwg-url@7.1.0:
resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
dependencies: dependencies:
@ -8948,12 +8959,12 @@ packages:
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
dependencies: dependencies:
'@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0)
'@babel/core': 7.24.3 '@babel/core': 7.23.6
'@babel/preset-env': 7.24.3(@babel/core@7.24.3) '@babel/preset-env': 7.23.6(@babel/core@7.23.6)
'@babel/runtime': 7.24.1 '@babel/runtime': 7.23.6
'@rollup/plugin-babel': 5.3.1(@babel/core@7.24.3)(@rollup/wasm-node@4.13.2) '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.14.0)
'@rollup/plugin-node-resolve': 11.2.1(@rollup/wasm-node@4.13.2) '@rollup/plugin-node-resolve': 11.2.1(@rollup/wasm-node@4.14.0)
'@rollup/plugin-replace': 2.4.2(@rollup/wasm-node@4.13.2) '@rollup/plugin-replace': 2.4.2(@rollup/wasm-node@4.14.0)
'@surma/rollup-plugin-off-main-thread': 2.2.3 '@surma/rollup-plugin-off-main-thread': 2.2.3
ajv: 8.12.0 ajv: 8.12.0
common-tags: 1.8.2 common-tags: 1.8.2
@ -8962,8 +8973,8 @@ packages:
glob: 7.2.3 glob: 7.2.3
lodash: 4.17.21 lodash: 4.17.21
pretty-bytes: 5.6.0 pretty-bytes: 5.6.0
rollup: /@rollup/wasm-node@4.13.2 rollup: /@rollup/wasm-node@4.14.0
rollup-plugin-terser: 7.0.2(@rollup/wasm-node@4.13.2) rollup-plugin-terser: 7.0.2(@rollup/wasm-node@4.14.0)
source-map: 0.8.0-beta.0 source-map: 0.8.0-beta.0
stringify-object: 3.3.0 stringify-object: 3.3.0
strip-comments: 2.0.1 strip-comments: 2.0.1

View File

@ -155,7 +155,8 @@
"types": { "types": {
"movie": "Film", "movie": "Film",
"show": "Serie" "show": "Serie"
} },
"unreleased": "Unveröffentlicht"
}, },
"navigation": { "navigation": {
"banner": { "banner": {

View File

@ -386,7 +386,7 @@
"badge": "اکستنشن غیر فعال شد", "badge": "اکستنشن غیر فعال شد",
"enableExtension": "اکستنشن را فعال کنید", "enableExtension": "اکستنشن را فعال کنید",
"homeButton": "خانه", "homeButton": "خانه",
"text": "شما اکستنشن مووی-وب را نصب کردید. برای شروع استفاده از ان، شما نیاز به فعال کردن آن دارید", "text": "شما اکستنشن مووی-وب را نصب کردید. برای شروع استفاده از ان، نیاز به فعال کردن آن دارید",
"title": "لطفا اکستنشن را فعال کنید" "title": "لطفا اکستنشن را فعال کنید"
}, },
"items": { "items": {
@ -467,7 +467,7 @@
}, },
"register": { "register": {
"cta": "شروع کنید", "cta": "شروع کنید",
"text": "پیشرفت تماشای خود را بین دستگاه‌ها به اشتراک بگذارید و آنها را با یکدیگر همگام سازی کنید.", "text": "جریان تماشای خود را بین دستگاه‌ها به اشتراک بگذارید و آنها را با یکدیگر همگام سازی کنید.",
"title": "همگام سازی" "title": "همگام سازی"
}, },
"title": "حساب کاربری" "title": "حساب کاربری"
@ -487,7 +487,7 @@
"server": { "server": {
"description": "اگر میخواید به یک بک-اند سفارشی برای ذخیره داده متصل شوید، با فعال و ارائه استفاده این لینک ادامه دهید. <0>دستورالعمل ها.</0>", "description": "اگر میخواید به یک بک-اند سفارشی برای ذخیره داده متصل شوید، با فعال و ارائه استفاده این لینک ادامه دهید. <0>دستورالعمل ها.</0>",
"label": "سرور سفارشی", "label": "سرور سفارشی",
"urlLabel": "لینک سرور سفارشی" "urlLabel": "لینک سرور کاستوم"
}, },
"setup": { "setup": {
"doSetup": "راه اندازی کنید", "doSetup": "راه اندازی کنید",

View File

@ -155,7 +155,8 @@
"types": { "types": {
"movie": "मूवी", "movie": "मूवी",
"show": "शृंखला" "show": "शृंखला"
} },
"unreleased": "रिलीज़ नहीं हुवा"
}, },
"navigation": { "navigation": {
"banner": { "banner": {
@ -172,7 +173,7 @@
}, },
"notFound": { "notFound": {
"badge": "नहीं मिला", "badge": "नहीं मिला",
"goHome": "घर वापिस जा रहा हूँ", "goHome": "घर वापिस जाइये",
"message": "हमने हर जगह देखा: डिब्बे के नीचे, कोठरी में, प्रॉक्सी के पीछे लेकिन अंततः वह पेज नहीं मिला जिसे आप ढूंढ रहे थे।", "message": "हमने हर जगह देखा: डिब्बे के नीचे, कोठरी में, प्रॉक्सी के पीछे लेकिन अंततः वह पेज नहीं मिला जिसे आप ढूंढ रहे थे।",
"title": "वह पृष्ठ नहीं मिल सका" "title": "वह पृष्ठ नहीं मिल सका"
}, },
@ -294,6 +295,7 @@
"title": "गुणवत्ता" "title": "गुणवत्ता"
}, },
"settings": { "settings": {
"audioItem": "ऑडियो",
"downloadItem": "डाउनलोड", "downloadItem": "डाउनलोड",
"enableSubtitles": "उपशीर्षक सक्षम करें", "enableSubtitles": "उपशीर्षक सक्षम करें",
"experienceSection": "देखने का अनुभव", "experienceSection": "देखने का अनुभव",
@ -320,8 +322,9 @@
"unknownOption": "अज्ञात" "unknownOption": "अज्ञात"
}, },
"subtitles": { "subtitles": {
"customChoice": "फ़ाइल से उपशीर्षक चुनें", "customChoice": "फ़ाइल ड्रॉप या अपलोड करें",
"customizeLabel": "अनुकूलित करें", "customizeLabel": "अनुकूलित करें",
"dropSubtitleFile": "उपशीर्षक फ़ाइल यहां छोड़ें",
"offChoice": "बंद", "offChoice": "बंद",
"settings": { "settings": {
"backlink": "कस्टम उपशीर्षक", "backlink": "कस्टम उपशीर्षक",
@ -379,6 +382,13 @@
"title": "वीडियो चलाने में विफल!" "title": "वीडियो चलाने में विफल!"
}, },
"scraping": { "scraping": {
"extensionFailure": {
"badge": "एक्सटेंशन बन्द हें",
"enableExtension": "एक्सटेंशन सक्षम करें",
"homeButton": "घर जाओ",
"text": "आपने मूवी-वेब एक्सटेंशन इंस्टॉल कर लिया है. इसका उपयोग शुरू करने के लिए, आपको इस साइट के लिए एक्सटेंशन सक्षम करना होगा।",
"title": "कृपया एक्सटेंशनको सक्षम करें"
},
"items": { "items": {
"failure": "त्रुटि हुई", "failure": "त्रुटि हुई",
"notFound": "वीडियो नहीं है", "notFound": "वीडियो नहीं है",
@ -536,6 +546,7 @@
} }
}, },
"subtitles": { "subtitles": {
"backgroundBlurLabel": "पृष्ठभूमि धुंधला",
"backgroundLabel": "पृष्ठभूमि अस्पष्टता", "backgroundLabel": "पृष्ठभूमि अस्पष्टता",
"colorLabel": "रंग", "colorLabel": "रंग",
"previewQuote": "मुझे डरना नहीं चाहिए. डर मन हत्यारा है।", "previewQuote": "मुझे डरना नहीं चाहिए. डर मन हत्यारा है।",

View File

@ -4,7 +4,7 @@
"faqTitle": "Pertanyaan umum", "faqTitle": "Pertanyaan umum",
"q1": { "q1": {
"body": "movie-web tidak menyimpan berkas media apapun. Ketika anda mengklik sesuatu untuk ditonton, aplikasi akan mencari berkas media di internet (saat media dimuat dan pada tab 'sumber media' anda dapat melihat sumber mana yang digunakan). movie-web tidak pernah mengunggah media apapun, semua media didapat melalui mekanisme pencarian di internet.", "body": "movie-web tidak menyimpan berkas media apapun. Ketika anda mengklik sesuatu untuk ditonton, aplikasi akan mencari berkas media di internet (saat media dimuat dan pada tab 'sumber media' anda dapat melihat sumber mana yang digunakan). movie-web tidak pernah mengunggah media apapun, semua media didapat melalui mekanisme pencarian di internet.",
"title": "Dari mana konten media di sini berasal?" "title": "Dari mana konten berasal?"
}, },
"q2": { "q2": {
"body": "Kami tidak menerima permintaan penambahan serial televisi atau film, movie-web tidak mengelola konten apapun. Semua konten ditonton melalui sumber-sumber dari internet.", "body": "Kami tidak menerima permintaan penambahan serial televisi atau film, movie-web tidak mengelola konten apapun. Semua konten ditonton melalui sumber-sumber dari internet.",
@ -26,24 +26,24 @@
"deviceNamePlaceholder": "Perangkat personal", "deviceNamePlaceholder": "Perangkat personal",
"generate": { "generate": {
"description": "Kombinasi kata ini berfungsi sebagai nama pengguna sekaligus kata sandi anda. Pastikan untuk menyimpannya dengan aman karena anda memerlukannya untuk masuk ke akun anda", "description": "Kombinasi kata ini berfungsi sebagai nama pengguna sekaligus kata sandi anda. Pastikan untuk menyimpannya dengan aman karena anda memerlukannya untuk masuk ke akun anda",
"next": "Saya sudah menyimpan kombinasi kata di atas", "next": "Saya sudah menyimpan kombinasi kata",
"passphraseFrameLabel": "Kombinasi kata", "passphraseFrameLabel": "Kombinasi kata",
"title": "Kombinasi kata anda" "title": "Kombinasi kata Anda"
}, },
"hasAccount": "Sudah memiliki akun? <0>Masuk disini.</0>", "hasAccount": "Sudah memiliki akun? <0>Masuk disini.</0>",
"login": { "login": {
"description": "Mohon masukkan kombinasi kata anda untuk masuk ke akun anda", "description": "Mohon masukkan kombinasi kata anda untuk masuk ke akun Anda",
"deviceLengthError": "Mohon masukkan nama perangkat", "deviceLengthError": "Mohon masukkan nama perangkat",
"passphraseLabel": "12 kombinasi kata unik", "passphraseLabel": "12 kombinasi kata unik",
"passphrasePlaceholder": "Kombinasi kata", "passphrasePlaceholder": "Kombinasi kata",
"submit": "Masuk", "submit": "Masuk",
"title": "Masuk ke akun anda", "title": "Masuk ke akun Anda",
"validationError": "Kombinasi kata unik salah" "validationError": "Kombinasi kata salah atau tidak lengkap"
}, },
"register": { "register": {
"information": { "information": {
"color1": "Gradasi warna profil pertama", "color1": "Warna profil pertama",
"color2": "Gradasi warna profil kedua", "color2": "Warna profil kedua",
"header": "Masukkan nama perangkat anda lalu pilih warna latar belakang dan ikon pengguna yang ingin anda gunakan", "header": "Masukkan nama perangkat anda lalu pilih warna latar belakang dan ikon pengguna yang ingin anda gunakan",
"icon": "Ikon pengguna", "icon": "Ikon pengguna",
"next": "Berikutnya", "next": "Berikutnya",
@ -52,29 +52,31 @@
}, },
"trust": { "trust": {
"failed": { "failed": {
"text": "Apakah anda mengkonfigurasi server dengan benar?", "text": "Apakah Anda mengkonfigurasi server dengan benar?",
"title": "Gagal terhubung dengan server" "title": "Gagal terhubung dengan server"
}, },
"host": "Anda ingin terhubung ke <0>{{hostname}}</0> - mohon konfirmasi anda mempercayai server ini sebelum anda membuat akun", "host": "Anda ingin terhubung ke <0>{{hostname}}</0> - mohon konfirmasi Anda mempercayai server ini sebelum Anda membuat akun",
"no": "Kembali", "no": "Kembali",
"title": "Apakah anda mempercayai server ini?", "noHost": "Server belum dikonfigurasi, maka dari itu Anda tidak dapat membuat akun",
"yes": "Saya percaya" "noHostTitle": "Server belum dikonfigurasi!",
"title": "Apakah Anda mempercayai server ini?",
"yes": "Saya percaya server ini"
}, },
"verify": { "verify": {
"description": "Mohon masukkan kombinasi kata pribadi anda sebelumnya untuk mengonfirmasi bahwa anda telah menyimpannya untuk melanjutkan proses pembuatan akun", "description": "Mohon masukkan kombinasi kata pribadi Anda sebelumnya untuk mengonfirmasi bahwa Anda telah menyimpannya untuk melanjutkan proses pembuatan akun",
"invalidData": "Data tidak valid", "invalidData": "Data tidak valid",
"noMatch": "Kombinasi kata tidak cocok", "noMatch": "Kombinasi kata tidak cocok",
"passphraseLabel": "12 kombinasi kata pribadi anda", "passphraseLabel": "12 kombinasi kata Anda",
"recaptchaFailed": "Validasi reCaptcha gagal", "recaptchaFailed": "Validasi reCaptcha gagal",
"register": "Buat akun", "register": "Buat akun",
"title": "Konfirmasi kombinasi kata pribadi anda" "title": "Konfirmasi kombinasi kata Anda"
} }
}, },
"errors": { "errors": {
"badge": "Terjadi masalah", "badge": "Terjadi masalah",
"details": "Detail eror", "details": "Rincian kesalahan",
"reloadPage": "Muat ulang halaman", "reloadPage": "Muat ulang halaman",
"showError": "Lihat detail eror", "showError": "Lihat rincian kesalahan",
"title": "Kami mengalami galat!" "title": "Kami mengalami galat!"
}, },
"footer": { "footer": {
@ -87,7 +89,7 @@
"dmca": "DMCA", "dmca": "DMCA",
"github": "GitHub" "github": "GitHub"
}, },
"tagline": "Tonton serial televisi dan film favorit anda dengan aplikasi streaming open source ini." "tagline": "Tonton serial televisi dan film favorit anda dengan aplikasi streaming sumber terbuka ini."
}, },
"global": { "global": {
"name": "movie-web", "name": "movie-web",
@ -109,7 +111,7 @@
"sectionTitle": "Lanjut menonton" "sectionTitle": "Lanjut menonton"
}, },
"mediaList": { "mediaList": {
"stopEditing": "Berhenti mengubah" "stopEditing": "Berhenti menyunting"
}, },
"search": { "search": {
"allResults": "Hanya itu yang kami punya!", "allResults": "Hanya itu yang kami punya!",
@ -131,19 +133,19 @@
"day": { "day": {
"default": "Apa yang ingin anda tonton sore ini?", "default": "Apa yang ingin anda tonton sore ini?",
"extra": [ "extra": [
"Lagi pengen nonton genre Adventure? Jurassic Park mungkin cocok buat anda." "Merasa suka bertualang? Jurassic Park mungkin pilihan cocok untuk Anda."
] ]
}, },
"morning": { "morning": {
"default": "Apa yang ingin anda tonton pagi ini?", "default": "Apa yang ingin Anda tonton pagi ini?",
"extra": [ "extra": [
"Kayaknya film Before Sunrise bagus deh" "Saya dengar film Before Sunrise bagus"
] ]
}, },
"night": { "night": {
"default": "Apa yang ingin anda tonton malam ini?", "default": "Apa yang ingin Anda tonton malam ini?",
"extra": [ "extra": [
"Capek? Katanya The Exocist rekomended." "Capek? Saya dengar The Exocist bagus."
] ]
} }
} }
@ -153,11 +155,12 @@
"types": { "types": {
"movie": "Film", "movie": "Film",
"show": "Serial TV" "show": "Serial TV"
} },
"unreleased": "Belum dirilis"
}, },
"navigation": { "navigation": {
"banner": { "banner": {
"offline": "Periksa koneksi internet anda" "offline": "Periksa koneksi internet Anda"
}, },
"menu": { "menu": {
"about": "Tentang kami", "about": "Tentang kami",
@ -171,17 +174,67 @@
"notFound": { "notFound": {
"badge": "Tidak ditemukan", "badge": "Tidak ditemukan",
"goHome": "Kembali", "goHome": "Kembali",
"message": "Kami sudah mencari dimana-mana: di bawah tempat sampah, di lemari, di belakang server proxy, tapi tetap gagal menemukan halaman yang anda cari.", "message": "Kami sudah mencari dimana-mana: di bawah tempat sampah, di lemari, di belakang server proxy, tetapi tidak dapat menemukan halaman yang Anda cari.",
"title": "Gagal menemukan halaman" "title": "Gagal menemukan halaman"
}, },
"onboarding": { "onboarding": {
"defaultConfirm": { "defaultConfirm": {
"cancel": "Batal", "cancel": "Batal",
"title": "Apa kamu yakin?" "confirm": "Gunakan pengaturan bawaan",
"description": "Pengaturan bawaan tidak memiliki streaming terbaik dan bisa menjadi sangat lambat.",
"title": "Apa Anda yakin?"
}, },
"extension": { "extension": {
"back": "Kembali", "back": "Kembali",
"explainerIos": "Sayangnya, ekstensi browser tidak didukung di iOS, Tekan <bold>Kembali<bold> untuk memilih opsi lain." "explainer": "Menggunakan ekstensi browser, Anda dapat mendapatkan streaming terbaik yang kami tawarkan. Dengan instalasi sederhana.",
"explainerIos": "Sayangnya, ekstensi browser tidak didukung di iOS, Tekan <bold>Kembali<bold> untuk memilih opsi lain.",
"extensionHelp": "Jika Anda telah menginstal ekstensi tetapi tidak terdeteksi, <bold>buka ekstensi melalui menu ekstensi browser Anda</bold> dan ikuti instruksi di layar.",
"linkChrome": "Instal ekstensi Chrome",
"linkFirefox": "Instal ekstensi Firefox",
"notDetecting": "Terinstal di Chrome tetapi situs tidak mendeteksinya? Coba muat ulang halaman!",
"notDetectingAction": "Muat ulang halaman",
"status": {
"disallowed": "Ekstensi tidak diaktifkan untuk halaman ini",
"disallowedAction": "Aktifkan ekstensi",
"failed": "Gagal meminta status",
"loading": "Menunggu Anda menginstal ekstensi",
"outdated": "Versi ekstensi terlalu tua",
"success": "Ekstensi berkerja sesuai harapan!"
},
"submit": "Lanjutkan",
"title": "Mari mulai dengan ekstensi"
},
"proxy": {
"back": "Kembali",
"explainer": "Menggunakan metode proxy, Anda dapat mendapatkan streaming berkualitas baik dengan membuat layanan proxy mandiri.",
"input": {
"errorConnection": "Tidak dapat terhubung ke proxy",
"errorInvalidUrl": "URL tidak valid",
"errorNotProxy": "Mengharapkan proxy tapi menerima situs",
"label": "URL proxy",
"placeholder": "https://"
},
"link": "Belajar cara membuat proxy",
"title": "Mari buat proxy baru"
},
"start": {
"explainer": "Untuk mendapatkan streaming terbaik, Anda perlu memilih metode streaming yang Anda ingin gunakan.",
"options": {
"default": {
"text": "Saya tidak menginginkan streaming kualitas baik, <0 /> <1>gunakan pengaturan bawaan</1>"
},
"extension": {
"action": "Instal ekstensi",
"description": "Instal ekstensi browser dan dapatkan akses ke sumber terbaik.",
"quality": "Kualitas terbaik",
"title": "Ekstensi browser"
},
"proxy": {
"action": "Atur proxy",
"description": "Atur proxy dalam hanya 5 menit dan dapatkan akses ke sumber terbaik.",
"quality": "Kualitas baik"
}
}
} }
}, },
"overlays": { "overlays": {
@ -197,12 +250,13 @@
}, },
"menus": { "menus": {
"downloads": { "downloads": {
"copyHlsPlaylist": "Salin tautan daftar putar HLS",
"disclaimer": "Tautan unduhan diambil langsung dari penyedia pihak ketiga. Aplikasi ini tidak memiliki kendali bagaimana unduhan disediakan.", "disclaimer": "Tautan unduhan diambil langsung dari penyedia pihak ketiga. Aplikasi ini tidak memiliki kendali bagaimana unduhan disediakan.",
"downloadSubtitle": "Unduh subtitle", "downloadSubtitle": "Unduh subtitle saat ini",
"downloadVideo": "Unduh media", "downloadVideo": "Unduh media",
"hlsDisclaimer": "Tautan unduhan diambil langsung dari penyedia pihak ketiga. Aplikasi ini tidak memiliki kendali bagaimana unduhan disediakan. Harap diperhatikan, anda akan mengunduh HLS playlist, media ini hanya ditunjukan bagi pengguna tingkat lanjut.", "hlsDisclaimer": "Unduhan didapatkan langsung dari penyedia. movie-web tidak memiliki kendali bagaimana unduan disediakan.<br /><br />Harap diperhatikan bahwa Anda mengunduh daftar putar HLS, <bold>ini tidak direkomendasikan untuk diunduh jika Anda tidak terbiasa dengan format streaming tingkat lanjut</bold>Coba sumber berbeda untuk format berbeda.",
"onAndroid": { "onAndroid": {
"1": "Untuk mengunduh di Android, klik tombol unduh, lalu di halaman baru <bold>klik dan tahan</bold> pada video, lalu pilih <bold>save</bold>.", "1": "Untuk mengunduh di Android, klik tombol unduh, lalu di halaman baru <bold>klik dan tahan</bold> pada video, lalu pilih <bold>simpan</bold>.",
"shortTitle": "Unduh / Android", "shortTitle": "Unduh / Android",
"title": "Unduh di Android" "title": "Unduh di Android"
}, },
@ -220,11 +274,12 @@
}, },
"episodes": { "episodes": {
"button": "Episode", "button": "Episode",
"emptyState": "Tidak ada episode di season ini, check lagi nanti!", "emptyState": "Tidak ada episode di season ini, periksa kembali nanti!",
"episodeBadge": "E{{episode}}", "episodeBadge": "E{{episode}}",
"loadingError": "Eror memuat season", "loadingError": "Gagal memuat season",
"loadingList": "Memuat...", "loadingList": "Memuat...",
"loadingTitle": "Memuat..." "loadingTitle": "Memuat...",
"unairedEpisodes": "Satu atau lebih episode dalam season ini telah dinonaktifkan karena mereka belum ditayangkan."
}, },
"playback": { "playback": {
"speedLabel": "Kecepatan pemutar", "speedLabel": "Kecepatan pemutar",
@ -232,13 +287,13 @@
}, },
"quality": { "quality": {
"automaticLabel": "Otomatis", "automaticLabel": "Otomatis",
"hint": "Anda dapat mencoba <0>mengganti sumber media</0> untuk mendapatkan opsi kualitas yang berbeda.", "hint": "Anda dapat mencoba <0>mengganti sumber</0> untuk mendapatkan opsi kualitas yang berbeda.",
"iosNoQuality": "Karena keterbatasan dari Apple, opsi kualitas pada sumber ini tidak tersedia untuk iOS. Anda dapat mencoba <0>mengganti sumber media</0> untuk mendapatkan opsi kualitas yang berbeda.", "iosNoQuality": "Karena keterbatasan dari Apple, opsi kualitas pada sumber ini tidak tersedia untuk iOS. Anda dapat mencoba <0>mengganti sumber</0> untuk mendapatkan opsi kualitas yang berbeda.",
"title": "Kualitas" "title": "Kualitas"
}, },
"settings": { "settings": {
"downloadItem": "Unduh", "downloadItem": "Unduh",
"enableSubtitles": "Hidupkan subtitle", "enableSubtitles": "Aktifkan subtitle",
"experienceSection": "Pengaturan tambahan", "experienceSection": "Pengaturan tambahan",
"playbackItem": "Pengaturan pemutar", "playbackItem": "Pengaturan pemutar",
"qualityItem": "Kualitas", "qualityItem": "Kualitas",
@ -248,22 +303,22 @@
}, },
"sources": { "sources": {
"failed": { "failed": {
"text": "Terjadi galat saat mencoba mencari media, mohon pilih sumber yang lain.", "text": "Terjadi galat saat mencoba mencari media, mohon pilih sumber lain.",
"title": "Gagal memuat data" "title": "Gagal memuat data"
}, },
"noEmbeds": { "noEmbeds": {
"text": "Kami tidak dapat menemukan tautan, mohon pilih sumber yang lain.", "text": "Kami tidak dapat menemukan tautan, mohon pilih sumber lain.",
"title": "Tautan tidak ditemukan" "title": "Tautan tidak ditemukan"
}, },
"noStream": { "noStream": {
"text": "Sumber ini tidak memiliki media untuk film atau seri yang anda cari.", "text": "Sumber ini tidak memiliki media untuk film atau seri yang Anda cari.",
"title": "Tidak ada media" "title": "Tidak ada media"
}, },
"title": "Sumber", "title": "Sumber",
"unknownOption": "Tidak diketahui" "unknownOption": "Tidak diketahui"
}, },
"subtitles": { "subtitles": {
"customChoice": "Pilih subtitle dari file", "customChoice": "Jatuhkan atau unggah berkas",
"customizeLabel": "Sesuaikan", "customizeLabel": "Sesuaikan",
"offChoice": "Matikan", "offChoice": "Matikan",
"settings": { "settings": {

View File

@ -122,7 +122,7 @@
"default": "무엇을 보고 싶으신가요?", "default": "무엇을 보고 싶으신가요?",
"extra": [ "extra": [
"무엇을 탐험하고 싶으신가요?", "무엇을 탐험하고 싶으신가요?",
null, "관심 목록에 무엇이 있나요?",
"당신이 가장 좋아하는 영화는?", "당신이 가장 좋아하는 영화는?",
"당신이 가장 좋아하는 시리즈는?" "당신이 가장 좋아하는 시리즈는?"
] ]
@ -536,6 +536,7 @@
} }
}, },
"subtitles": { "subtitles": {
"backgroundBlurLabel": "배경 흐림",
"backgroundLabel": "배경 투명도", "backgroundLabel": "배경 투명도",
"colorLabel": "색상", "colorLabel": "색상",
"previewQuote": "두려워해서는 안 됩니다. 두려움은 마음을 죽이는 존재입니다.", "previewQuote": "두려워해서는 안 됩니다. 두려움은 마음을 죽이는 존재입니다.",

View File

@ -155,7 +155,8 @@
"types": { "types": {
"movie": "चलचित्र", "movie": "चलचित्र",
"show": "कार्यक्रम" "show": "कार्यक्रम"
} },
"unreleased": "रिलीज नभएको"
}, },
"navigation": { "navigation": {
"banner": { "banner": {
@ -294,6 +295,7 @@
"title": "क्वालिटी" "title": "क्वालिटी"
}, },
"settings": { "settings": {
"audioItem": "आवाज",
"downloadItem": "डाउनलोड", "downloadItem": "डाउनलोड",
"enableSubtitles": "उपशीर्षकहरू सक्षम गर्नुहोस्", "enableSubtitles": "उपशीर्षकहरू सक्षम गर्नुहोस्",
"experienceSection": "हेर्ने अनुभव", "experienceSection": "हेर्ने अनुभव",
@ -320,8 +322,9 @@
"unknownOption": "अज्ञात" "unknownOption": "अज्ञात"
}, },
"subtitles": { "subtitles": {
"customChoice": "फाइलबाट उपशीर्षक चयन गर्नुहोस्", "customChoice": "ड्रप वा फाइल अपलोड गर्नुहोस्",
"customizeLabel": "अनुकूलन गर्नुहोस्", "customizeLabel": "अनुकूलन गर्नुहोस्",
"dropSubtitleFile": "सबटाइटल फाइल यहाँ छोड्नुहोस्",
"offChoice": "बन्द", "offChoice": "बन्द",
"settings": { "settings": {
"backlink": "अनुकूलन उपशीर्षकहरू", "backlink": "अनुकूलन उपशीर्षकहरू",
@ -379,6 +382,13 @@
"title": "भिडियो प्ले गर्न असफल भयो!" "title": "भिडियो प्ले गर्न असफल भयो!"
}, },
"scraping": { "scraping": {
"extensionFailure": {
"badge": "एक्स्टेन्सन बन्द छ",
"enableExtension": "एक्स्टेन्सन सक्षम गर्नुहोस्",
"homeButton": "होम् जाउँ",
"text": "तपाईंले चलचित्र-वेब एक्स्टेन्सन स्थापना गर्नुभएको छ। यसलाई प्रयोग गर्न सुरु गर्न, तपाईंले यो साइटको लागिएक्स्टेन्सन सक्षम गर्न आवश्यक छ।",
"title": "कृपया एक्स्टेन्सन सक्षम गर्नुहोस्"
},
"items": { "items": {
"failure": "त्रुटि भयो", "failure": "त्रुटि भयो",
"notFound": "भिडियो छैन", "notFound": "भिडियो छैन",
@ -536,6 +546,7 @@
} }
}, },
"subtitles": { "subtitles": {
"backgroundBlurLabel": "पृष्ठभूमि धमिलो",
"backgroundLabel": "पृष्ठभूमि अस्पष्टता", "backgroundLabel": "पृष्ठभूमि अस्पष्टता",
"colorLabel": "रङ", "colorLabel": "रङ",
"previewQuote": "म डराउनु हुँदैन। डर दिमागको हत्यारा हो।", "previewQuote": "म डराउनु हुँदैन। डर दिमागको हत्यारा हो।",

View File

@ -155,7 +155,8 @@
"types": { "types": {
"movie": "Film", "movie": "Film",
"show": "Serie" "show": "Serie"
} },
"unreleased": "Niet uitgebracht"
}, },
"navigation": { "navigation": {
"banner": { "banner": {

View File

@ -155,7 +155,8 @@
"types": { "types": {
"movie": "Filme", "movie": "Filme",
"show": "Série" "show": "Série"
} },
"unreleased": "Não lançado"
}, },
"navigation": { "navigation": {
"banner": { "banner": {
@ -381,6 +382,13 @@
"title": "Falha ao reproduzir o vídeo!" "title": "Falha ao reproduzir o vídeo!"
}, },
"scraping": { "scraping": {
"extensionFailure": {
"badge": "Extensão desativada",
"enableExtension": "Ativar extensão",
"homeButton": "Ir para o início",
"text": "Você instalou a extensão movie-web. Para começar a usá-la, você precisa ativar a extensão neste site.",
"title": "Por favor, ative a extensão"
},
"items": { "items": {
"failure": "Ocorreu um erro", "failure": "Ocorreu um erro",
"notFound": "Não tem o vídeo", "notFound": "Não tem o vídeo",

View File

@ -322,7 +322,7 @@
"unknownOption": "Неизвестный" "unknownOption": "Неизвестный"
}, },
"subtitles": { "subtitles": {
"customChoice": "Перетащите или загрузите файл", "customChoice": "Перетащите файл или нажмите для загрузки",
"customizeLabel": "Настроить", "customizeLabel": "Настроить",
"dropSubtitleFile": "Перетащите файл субтитров", "dropSubtitleFile": "Перетащите файл субтитров",
"offChoice": "Выключить", "offChoice": "Выключить",

View File

@ -155,7 +155,8 @@
"types": { "types": {
"movie": "Film", "movie": "Film",
"show": "Serija" "show": "Serija"
} },
"unreleased": "Neizdano"
}, },
"navigation": { "navigation": {
"banner": { "banner": {
@ -294,6 +295,7 @@
"title": "Kvaliteta" "title": "Kvaliteta"
}, },
"settings": { "settings": {
"audioItem": "Zvok",
"downloadItem": "Prenesi", "downloadItem": "Prenesi",
"enableSubtitles": "Vklopi podnapise", "enableSubtitles": "Vklopi podnapise",
"experienceSection": "Izkušnje ogleda", "experienceSection": "Izkušnje ogleda",
@ -320,8 +322,9 @@
"unknownOption": "Neznano" "unknownOption": "Neznano"
}, },
"subtitles": { "subtitles": {
"customChoice": "Izberi podnapise iz datoteke", "customChoice": "Povleci in naloži datoteko",
"customizeLabel": "Prilagodi", "customizeLabel": "Prilagodi",
"dropSubtitleFile": "Povleci datoteko s podnapisi tukaj",
"offChoice": "Off", "offChoice": "Off",
"settings": { "settings": {
"backlink": "Podnapisi po meri", "backlink": "Podnapisi po meri",
@ -379,6 +382,13 @@
"title": "Ni uspelo predvajati videoposnetka!" "title": "Ni uspelo predvajati videoposnetka!"
}, },
"scraping": { "scraping": {
"extensionFailure": {
"badge": "Razširitev brskalnika je onemogočena",
"enableExtension": "Vklopi razširitev brskalnika",
"homeButton": "Pojdi domov",
"text": "Namestili ste razširitev movie-web. Če jo želite začeti uporabljati, morate razširitev omogočiti za to spletno mesto.",
"title": "Prosim vklopite razširitev brskalnika"
},
"items": { "items": {
"failure": "Zgodila se je napaka", "failure": "Zgodila se je napaka",
"notFound": "Nima videoposnetka", "notFound": "Nima videoposnetka",

View File

@ -155,7 +155,8 @@
"types": { "types": {
"movie": "電影", "movie": "電影",
"show": "節目" "show": "節目"
} },
"unreleased": "尚未上映"
}, },
"navigation": { "navigation": {
"banner": { "banner": {
@ -294,6 +295,7 @@
"title": "品質" "title": "品質"
}, },
"settings": { "settings": {
"audioItem": "音頻",
"downloadItem": "下載", "downloadItem": "下載",
"enableSubtitles": "啟用字幕", "enableSubtitles": "啟用字幕",
"experienceSection": "觀看體驗", "experienceSection": "觀看體驗",
@ -320,8 +322,9 @@
"unknownOption": "未知" "unknownOption": "未知"
}, },
"subtitles": { "subtitles": {
"customChoice": "從檔案中選擇字幕", "customChoice": "把字幕檔案拖入或上傳",
"customizeLabel": "自訂", "customizeLabel": "自訂",
"dropSubtitleFile": "將字幕檔案拖曳到這裡",
"offChoice": "關閉", "offChoice": "關閉",
"settings": { "settings": {
"backlink": "自訂字幕", "backlink": "自訂字幕",
@ -379,6 +382,13 @@
"title": "無法播放視頻!" "title": "無法播放視頻!"
}, },
"scraping": { "scraping": {
"extensionFailure": {
"badge": "擴充功能已被禁用",
"enableExtension": "啟用擴充功能",
"homeButton": "回到首頁",
"text": "您已安裝該擴充功能, 你要啟用擴充程式去用它。",
"title": "請啟用擴充功能"
},
"items": { "items": {
"failure": "發生錯誤", "failure": "發生錯誤",
"notFound": "沒有視頻", "notFound": "沒有視頻",

View File

@ -155,7 +155,8 @@
"types": { "types": {
"movie": "电影", "movie": "电影",
"show": "电视节目" "show": "电视节目"
} },
"unreleased": "未发布"
}, },
"navigation": { "navigation": {
"banner": { "banner": {
@ -294,6 +295,7 @@
"title": "质量" "title": "质量"
}, },
"settings": { "settings": {
"audioItem": "音频",
"downloadItem": "下载", "downloadItem": "下载",
"enableSubtitles": "启用字幕", "enableSubtitles": "启用字幕",
"experienceSection": "观看体验", "experienceSection": "观看体验",
@ -320,8 +322,9 @@
"unknownOption": "未知" "unknownOption": "未知"
}, },
"subtitles": { "subtitles": {
"customChoice": "从文件选取字幕", "customChoice": "拖入或上传文件",
"customizeLabel": "自定义", "customizeLabel": "自定义",
"dropSubtitleFile": "将字幕拖入这里",
"offChoice": "关闭", "offChoice": "关闭",
"settings": { "settings": {
"backlink": "自定义字幕", "backlink": "自定义字幕",
@ -379,6 +382,13 @@
"title": "视频播放失败!" "title": "视频播放失败!"
}, },
"scraping": { "scraping": {
"extensionFailure": {
"badge": "扩展程序已禁用",
"enableExtension": "启用扩展程序",
"homeButton": "返回首页",
"text": "您已经安装 movie-web 扩展程序。要开始使用,您需要为此站点启用扩展。",
"title": "请启用扩展程序"
},
"items": { "items": {
"failure": "发生了错误", "failure": "发生了错误",
"notFound": "没有视频", "notFound": "没有视频",

View File

@ -12,6 +12,7 @@ import {
} from "@/components/player/display/displayInterface"; } from "@/components/player/display/displayInterface";
import { handleBuffered } from "@/components/player/utils/handleBuffered"; import { handleBuffered } from "@/components/player/utils/handleBuffered";
import { getMediaErrorDetails } from "@/components/player/utils/mediaErrorDetails"; import { getMediaErrorDetails } from "@/components/player/utils/mediaErrorDetails";
import { useLanguageStore } from "@/stores/language";
import { import {
LoadableSource, LoadableSource,
SourceQuality, SourceQuality,
@ -83,7 +84,14 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
function reportAudioTracks() { function reportAudioTracks() {
if (!hls) return; if (!hls) return;
const currentTrack = hls.audioTracks[hls.audioTrack]; const currentLanguage = useLanguageStore.getState().language;
const audioTracks = hls.audioTracks;
const languageTrack = audioTracks.find((v) => v.lang === currentLanguage);
if (languageTrack) {
hls.audioTrack = audioTracks.indexOf(languageTrack);
}
const currentTrack = audioTracks?.[hls.audioTrack ?? 0];
if (!currentTrack) return;
emit("changedaudiotrack", { emit("changedaudiotrack", {
id: currentTrack.id.toString(), id: currentTrack.id.toString(),
label: currentTrack.name, label: currentTrack.name,
@ -129,6 +137,7 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
} }
function setupSource(vid: HTMLVideoElement, src: LoadableSource) { function setupSource(vid: HTMLVideoElement, src: LoadableSource) {
hls = null;
if (src.type === "hls") { if (src.type === "hls") {
if (canPlayHlsNatively(vid)) { if (canPlayHlsNatively(vid)) {
vid.src = processCdnLink(src.url); vid.src = processCdnLink(src.url);

View File

@ -71,9 +71,10 @@ export function KeyboardEvents() {
return; return;
const k = evt.key; const k = evt.key;
const keyL = evt.key.toLowerCase();
// Volume // Volume
if (["ArrowUp", "ArrowDown", "m"].includes(k)) { if (["ArrowUp", "ArrowDown", "m", "M"].includes(k)) {
dataRef.current.setShowVolume(true); dataRef.current.setShowVolume(true);
if (volumeDebounce.current) clearTimeout(volumeDebounce.current); if (volumeDebounce.current) clearTimeout(volumeDebounce.current);
@ -89,7 +90,7 @@ export function KeyboardEvents() {
dataRef.current.setVolume( dataRef.current.setVolume(
(dataRef.current.mediaPlaying?.volume || 0) - 0.15, (dataRef.current.mediaPlaying?.volume || 0) - 0.15,
); );
if (k === "m") dataRef.current.toggleMute(); if (keyL === "m") dataRef.current.toggleMute();
// Video playback speed // Video playback speed
if (k === ">" || k === "<") { if (k === ">" || k === "<") {
@ -106,9 +107,9 @@ export function KeyboardEvents() {
dataRef.current.display?.setTime(dataRef.current.time + 5); dataRef.current.display?.setTime(dataRef.current.time + 5);
if (k === "ArrowLeft") if (k === "ArrowLeft")
dataRef.current.display?.setTime(dataRef.current.time - 5); dataRef.current.display?.setTime(dataRef.current.time - 5);
if (k === "j") if (keyL === "j")
dataRef.current.display?.setTime(dataRef.current.time - 10); dataRef.current.display?.setTime(dataRef.current.time - 10);
if (k === "l") if (keyL === "l")
dataRef.current.display?.setTime(dataRef.current.time + 10); dataRef.current.display?.setTime(dataRef.current.time + 10);
if (k === "." && dataRef.current.mediaPlaying?.isPaused) if (k === "." && dataRef.current.mediaPlaying?.isPaused)
dataRef.current.display?.setTime(dataRef.current.time + 1); dataRef.current.display?.setTime(dataRef.current.time + 1);
@ -116,18 +117,18 @@ export function KeyboardEvents() {
dataRef.current.display?.setTime(dataRef.current.time - 1); dataRef.current.display?.setTime(dataRef.current.time - 1);
// Utils // Utils
if (k === "f") dataRef.current.display?.toggleFullscreen(); if (keyL === "f") dataRef.current.display?.toggleFullscreen();
if (k === " ") if (k === " " || keyL === "k")
dataRef.current.display?.[ dataRef.current.display?.[
dataRef.current.mediaPlaying.isPaused ? "play" : "pause" dataRef.current.mediaPlaying.isPaused ? "play" : "pause"
](); ]();
if (k === "Escape") dataRef.current.router.close(); if (k === "Escape") dataRef.current.router.close();
// captions // captions
if (k === "c") dataRef.current.toggleLastUsed().catch(() => {}); // ignore errors if (keyL === "c") dataRef.current.toggleLastUsed().catch(() => {}); // ignore errors
// Do a barrell roll! // Do a barrell roll!
if (k === "r") { if (keyL === "r") {
if (dataRef.current.isRolling || evt.ctrlKey || evt.metaKey) return; if (dataRef.current.isRolling || evt.ctrlKey || evt.metaKey) return;
dataRef.current.setIsRolling(true); dataRef.current.setIsRolling(true);

View File

@ -169,6 +169,8 @@ export const createSourceSlice: MakeSlice<SourceSlice> = (set, get) => ({
s.captionList = captions; s.captionList = captions;
s.interface.error = undefined; s.interface.error = undefined;
s.status = playerStatus.PLAYING; s.status = playerStatus.PLAYING;
s.audioTracks = [];
s.currentAudioTrack = null;
}); });
const store = get(); const store = get();
store.redisplaySource(startAt); store.redisplaySource(startAt);