diff --git a/package.json b/package.json index 940a9ffe..86715f54 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "linkifyjs": "4.1.3", "qrcode": "^1.5.3", "shaka-player": "4.7.1", - "vue": "3.4.3", + "vue": "3.4.4", "vue-i18n": "9.8.0", "vue-router": "4.2.5" }, @@ -40,7 +40,7 @@ "@unocss/transformer-variant-group": "0.58.3", "@vitejs/plugin-legacy": "5.2.0", "@vitejs/plugin-vue": "5.0.2", - "@vue/compiler-sfc": "3.4.3", + "@vue/compiler-sfc": "3.4.4", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-prettier": "5.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 797f8b56..bfadfbb1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ dependencies: version: 6.5.1 '@fortawesome/vue-fontawesome': specifier: 3.0.5 - version: 3.0.5(@fortawesome/fontawesome-svg-core@6.5.1)(vue@3.4.3) + version: 3.0.5(@fortawesome/fontawesome-svg-core@6.5.1)(vue@3.4.4) dompurify: specifier: 3.0.6 version: 3.0.6 @@ -42,14 +42,14 @@ dependencies: specifier: 4.7.1 version: 4.7.1 vue: - specifier: 3.4.3 - version: 3.4.3(typescript@5.3.3) + specifier: 3.4.4 + version: 3.4.4(typescript@5.3.3) vue-i18n: specifier: 9.8.0 - version: 9.8.0(vue@3.4.3) + version: 9.8.0(vue@3.4.4) vue-router: specifier: 4.2.5 - version: 4.2.5(vue@3.4.3) + version: 4.2.5(vue@3.4.4) devDependencies: '@iconify-json/fa6-brands': @@ -87,10 +87,10 @@ devDependencies: version: 5.2.0(terser@5.26.0)(vite@5.0.10) '@vitejs/plugin-vue': specifier: 5.0.2 - version: 5.0.2(vite@5.0.10)(vue@3.4.3) + version: 5.0.2(vite@5.0.10)(vue@3.4.4) '@vue/compiler-sfc': - specifier: 3.4.3 - version: 3.4.3 + specifier: 3.4.4 + version: 3.4.4 eslint: specifier: 8.56.0 version: 8.56.0 @@ -1646,14 +1646,14 @@ packages: '@fortawesome/fontawesome-common-types': 6.5.1 dev: false - /@fortawesome/vue-fontawesome@3.0.5(@fortawesome/fontawesome-svg-core@6.5.1)(vue@3.4.3): + /@fortawesome/vue-fontawesome@3.0.5(@fortawesome/fontawesome-svg-core@6.5.1)(vue@3.4.4): resolution: {integrity: sha512-isZZ4+utQH9qg9cWxWYHQ9GwI3r5FeO7GnmzKYV+gbjxcptQhh+F99iZXi1Y9AvFUEgy8kRpAdvDlbb3drWFrw==} peerDependencies: '@fortawesome/fontawesome-svg-core': ~1 || ~6 vue: '>= 3.0.0 < 4' dependencies: '@fortawesome/fontawesome-svg-core': 6.5.1 - vue: 3.4.3(typescript@5.3.3) + vue: 3.4.4(typescript@5.3.3) dev: false /@humanwhocodes/config-array@0.11.13: @@ -1726,7 +1726,7 @@ packages: magic-string: 0.30.5 mlly: 1.4.2 source-map-js: 1.0.2 - vue-i18n: 9.8.0(vue@3.4.3) + vue-i18n: 9.8.0(vue@3.4.4) yaml-eslint-parser: 1.2.2 dev: true @@ -1766,7 +1766,7 @@ packages: '@intlify/bundle-utils': 7.5.0(vue-i18n@9.8.0) '@intlify/shared': 9.8.0 '@rollup/pluginutils': 5.1.0(rollup@2.79.1) - '@vue/compiler-sfc': 3.4.3 + '@vue/compiler-sfc': 3.4.4 debug: 4.3.4 fast-glob: 3.3.2 js-yaml: 4.1.0 @@ -1775,7 +1775,7 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 unplugin: 1.6.0 - vue-i18n: 9.8.0(vue@3.4.3) + vue-i18n: 9.8.0(vue@3.4.4) transitivePeerDependencies: - rollup - supports-color @@ -2402,7 +2402,7 @@ packages: - supports-color dev: true - /@vitejs/plugin-vue@5.0.2(vite@5.0.10)(vue@3.4.3): + /@vitejs/plugin-vue@5.0.2(vite@5.0.10)(vue@3.4.4): resolution: {integrity: sha512-kEjJHrLb5ePBvjD0SPZwJlw1QTRcjjCA9sB5VyfonoXVBxTS7TMnqL6EkLt1Eu61RDeiuZ/WN9Hf6PxXhPI2uA==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: @@ -2410,75 +2410,75 @@ packages: vue: ^3.2.25 dependencies: vite: 5.0.10(lightningcss@1.22.1)(terser@5.26.0) - vue: 3.4.3(typescript@5.3.3) + vue: 3.4.4(typescript@5.3.3) dev: true - /@vue/compiler-core@3.4.3: - resolution: {integrity: sha512-u8jzgFg0EDtSrb/hG53Wwh1bAOQFtc1ZCegBpA/glyvTlgHl+tq13o1zvRfLbegYUw/E4mSTGOiCnAJ9SJ+lsg==} + /@vue/compiler-core@3.4.4: + resolution: {integrity: sha512-U5AdCN+6skzh2bSJrkMj2KZsVkUpgK8/XlxjSRYQZhNPcvt9/kmgIMpFEiTyK+Dz5E1J+8o8//BEIX+bakgVSw==} dependencies: '@babel/parser': 7.23.6 - '@vue/shared': 3.4.3 + '@vue/shared': 3.4.4 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.0.2 - /@vue/compiler-dom@3.4.3: - resolution: {integrity: sha512-oGF1E9/htI6JWj/lTJgr6UgxNCtNHbM6xKVreBWeZL9QhRGABRVoWGAzxmtBfSOd+w0Zi5BY0Es/tlJrN6WgEg==} + /@vue/compiler-dom@3.4.4: + resolution: {integrity: sha512-iSwkdDULCN+Vr8z6uwdlL044GJ/nUmECxP9vu7MzEs4Qma0FwDLYvnvRcyO0ZITuu3Os4FptGUDnhi1kOLSaGw==} dependencies: - '@vue/compiler-core': 3.4.3 - '@vue/shared': 3.4.3 + '@vue/compiler-core': 3.4.4 + '@vue/shared': 3.4.4 - /@vue/compiler-sfc@3.4.3: - resolution: {integrity: sha512-NuJqb5is9I4uzv316VRUDYgIlPZCG8D+ARt5P4t5UDShIHKL25J3TGZAUryY/Aiy0DsY7srJnZL5ryB6DD63Zw==} + /@vue/compiler-sfc@3.4.4: + resolution: {integrity: sha512-OTFcU6vUxUNHBcarzkp4g6d25nvcmDvFDzPRvSrIsByFFPRYN+y3b+j9HxYwt6nlWvGyFCe0roeJdJlfYxbCBg==} dependencies: '@babel/parser': 7.23.6 - '@vue/compiler-core': 3.4.3 - '@vue/compiler-dom': 3.4.3 - '@vue/compiler-ssr': 3.4.3 - '@vue/shared': 3.4.3 + '@vue/compiler-core': 3.4.4 + '@vue/compiler-dom': 3.4.4 + '@vue/compiler-ssr': 3.4.4 + '@vue/shared': 3.4.4 estree-walker: 2.0.2 magic-string: 0.30.5 postcss: 8.4.32 source-map-js: 1.0.2 - /@vue/compiler-ssr@3.4.3: - resolution: {integrity: sha512-wnYQtMBkeFSxgSSQbYGQeXPhQacQiog2c6AlvMldQH6DB+gSXK/0F6DVXAJfEiuBSgBhUc8dwrrG5JQcqwalsA==} + /@vue/compiler-ssr@3.4.4: + resolution: {integrity: sha512-1DU9DflSSQlx/M61GEBN+NbT/anUki2ooDo9IXfTckCeKA/2IKNhY8KbG3x6zkd3KGrxzteC7de6QL88vEb41Q==} dependencies: - '@vue/compiler-dom': 3.4.3 - '@vue/shared': 3.4.3 + '@vue/compiler-dom': 3.4.4 + '@vue/shared': 3.4.4 /@vue/devtools-api@6.5.1: resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} - /@vue/reactivity@3.4.3: - resolution: {integrity: sha512-q5f9HLDU+5aBKizXHAx0w4whkIANs1Muiq9R5YXm0HtorSlflqv9u/ohaMxuuhHWCji4xqpQ1eL04WvmAmGnFg==} + /@vue/reactivity@3.4.4: + resolution: {integrity: sha512-DFsuJBf6sfhd5SYzJmcBTUG9+EKqjF31Gsk1NJtnpJm9liSZ806XwGJUeNBVQIanax7ODV7Lmk/k17BgxXNuTg==} dependencies: - '@vue/shared': 3.4.3 + '@vue/shared': 3.4.4 - /@vue/runtime-core@3.4.3: - resolution: {integrity: sha512-C1r6QhB1qY7D591RCSFhMULyzL9CuyrGc+3PpB0h7dU4Qqw6GNyo4BNFjHZVvsWncrUlKX3DIKg0Y7rNNr06NQ==} + /@vue/runtime-core@3.4.4: + resolution: {integrity: sha512-zWWwNQAj5JdxrmOA1xegJm+c4VtyIbDEKgQjSb4va5v7gGTCh0ZjvLI+htGFdVXaO9bs2J3C81p5p+6jrPK8Bw==} dependencies: - '@vue/reactivity': 3.4.3 - '@vue/shared': 3.4.3 + '@vue/reactivity': 3.4.4 + '@vue/shared': 3.4.4 - /@vue/runtime-dom@3.4.3: - resolution: {integrity: sha512-wrsprg7An5Ec+EhPngWdPuzkp0BEUxAKaQtN9dPU/iZctPyD9aaXmVtehPJerdQxQale6gEnhpnfywNw3zOv2A==} + /@vue/runtime-dom@3.4.4: + resolution: {integrity: sha512-Nlh2ap1J/eJQ6R0g+AIRyGNwpTJQACN0dk8I8FRLH8Ev11DSvfcPOpn4+Kbg5xAMcuq0cHB8zFYxVrOgETrrvg==} dependencies: - '@vue/runtime-core': 3.4.3 - '@vue/shared': 3.4.3 + '@vue/runtime-core': 3.4.4 + '@vue/shared': 3.4.4 csstype: 3.1.3 - /@vue/server-renderer@3.4.3(vue@3.4.3): - resolution: {integrity: sha512-BUxt8oVGMKKsqSkM1uU3d3Houyfy4WAc2SpSQRebNd+XJGATVkW/rO129jkyL+kpB/2VRKzE63zwf5RtJ3XuZw==} + /@vue/server-renderer@3.4.4(vue@3.4.4): + resolution: {integrity: sha512-+AjoiKcC41k7SMJBYkDO9xs79/Of8DiThS9mH5l2MK+EY0to3psI0k+sElvVqQvsoZTjHMEuMz0AEgvm2T+CwA==} peerDependencies: - vue: 3.4.3 + vue: 3.4.4 dependencies: - '@vue/compiler-ssr': 3.4.3 - '@vue/shared': 3.4.3 - vue: 3.4.3(typescript@5.3.3) + '@vue/compiler-ssr': 3.4.4 + '@vue/shared': 3.4.4 + vue: 3.4.4(typescript@5.3.3) - /@vue/shared@3.4.3: - resolution: {integrity: sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==} + /@vue/shared@3.4.4: + resolution: {integrity: sha512-abSgiVRhfjfl3JALR/cSuBl74hGJ3SePgf1mKzodf1eMWLwHZbfEGxT2cNJSsNiw44jEgrO7bNkhchaWA7RwNw==} /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -5078,7 +5078,7 @@ packages: - supports-color dev: true - /vue-i18n@9.8.0(vue@3.4.3): + /vue-i18n@9.8.0(vue@3.4.4): resolution: {integrity: sha512-Izho+6PYjejsTq2mzjcRdBZ5VLRQoSuuexvR8029h5CpN03FYqiqBrShMyf2I1DKkN6kw/xmujcbvC+4QybpsQ==} engines: {node: '>= 16'} peerDependencies: @@ -5087,30 +5087,30 @@ packages: '@intlify/core-base': 9.8.0 '@intlify/shared': 9.8.0 '@vue/devtools-api': 6.5.1 - vue: 3.4.3(typescript@5.3.3) + vue: 3.4.4(typescript@5.3.3) - /vue-router@4.2.5(vue@3.4.3): + /vue-router@4.2.5(vue@3.4.4): resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} peerDependencies: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.5.1 - vue: 3.4.3(typescript@5.3.3) + vue: 3.4.4(typescript@5.3.3) dev: false - /vue@3.4.3(typescript@5.3.3): - resolution: {integrity: sha512-GjN+culMAGv/mUbkIv8zMKItno8npcj5gWlXkSxf1SPTQf8eJ4A+YfHIvQFyL1IfuJcMl3soA7SmN1fRxbf/wA==} + /vue@3.4.4(typescript@5.3.3): + resolution: {integrity: sha512-suZXgDVT8lRNhKmxdkwOsR0oyUi8is7mtqI18qW97JLoyorEbE9B2Sb4Ws/mR/+0AgA/JUtsv1ytlRSH3/pDIA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.4.3 - '@vue/compiler-sfc': 3.4.3 - '@vue/runtime-dom': 3.4.3 - '@vue/server-renderer': 3.4.3(vue@3.4.3) - '@vue/shared': 3.4.3 + '@vue/compiler-dom': 3.4.4 + '@vue/compiler-sfc': 3.4.4 + '@vue/runtime-dom': 3.4.4 + '@vue/server-renderer': 3.4.4(vue@3.4.4) + '@vue/shared': 3.4.4 typescript: 5.3.3 /webidl-conversions@4.0.2: diff --git a/src/components/FeedPage.vue b/src/components/FeedPage.vue index 1dfd5302..cb8e11de 100644 --- a/src/components/FeedPage.vue +++ b/src/components/FeedPage.vue @@ -124,9 +124,18 @@ export default { authToken: this.getAuthToken(), }); } else { - return await this.fetchJson(this.authApiUrl() + "/feed/unauthenticated", { - channels: this.getUnauthenticatedChannels(), - }); + const channels = this.getUnauthenticatedChannels(); + const split = channels.split(","); + if (split.length > 100) { + return await this.fetchJson(this.authApiUrl() + "/feed/unauthenticated", null, { + method: "POST", + body: JSON.stringify(split), + }); + } else { + return await this.fetchJson(this.authApiUrl() + "/feed/unauthenticated", { + channels: channels, + }); + } } }, async loadChannelGroups() { diff --git a/src/components/SubscriptionsPage.vue b/src/components/SubscriptionsPage.vue index 116e4572..85b49050 100644 --- a/src/components/SubscriptionsPage.vue +++ b/src/components/SubscriptionsPage.vue @@ -167,9 +167,18 @@ export default { }, }); } else { - return await this.fetchJson(this.authApiUrl() + "/subscriptions/unauthenticated", { - channels: this.getUnauthenticatedChannels(), - }); + const channels = this.getUnauthenticatedChannels(); + const split = channels.split(","); + if (split.length > 100) { + return await this.fetchJson(this.authApiUrl() + "/subscriptions/unauthenticated", null, { + method: "POST", + body: JSON.stringify(split), + }); + } else { + return await this.fetchJson(this.authApiUrl() + "/subscriptions/unauthenticated", { + channels: this.getUnauthenticatedChannels(), + }); + } } }, async loadChannelGroups() { diff --git a/src/locales/ro.json b/src/locales/ro.json index a6825dc0..1c7bef97 100644 --- a/src/locales/ro.json +++ b/src/locales/ro.json @@ -93,7 +93,7 @@ "show_more": "Mai mult", "no": "Nu", "export_to_json": "Exportați ca JSON", - "import_from_json": "Importați din JSON/CSV", + "import_from_json": "Importați din JSON", "auto_play_next_video": "Redați automat următorul video", "minimize_recommendations": "Minimizați recomandările", "yes": "Da", @@ -121,7 +121,14 @@ "chapters_layout_mobile": "Mod afișare capitole pe mobil", "show_search_suggestions": "Afișare sugestii căutare", "enable_dearrow": "Activați DeArrow", - "delete_automatically": "Șterge automat după" + "delete_automatically": "Șterge automat după", + "add_to_group": "Adăugați la grup", + "import_from_json_csv": "Importați din JSON/CSV", + "concurrent_prefetch_limit": "Limită de preluare anticipată a fluxului simultan", + "download_frame": "Descarcă cadrul", + "generate_qrcode": "Generează un cod QR", + "instance_privacy_policy": "Politica de confidențialitate", + "instances_not_shown": "Instanțele publice care nu sunt afișate aici nu sunt disponibile în prezent." }, "preferences": { "ssl_score": "Scor SSL", @@ -130,7 +137,8 @@ "instance_name": "Nume instanță", "instance_locations": "Locațiile instanței", "has_cdn": "Are CDN?", - "registered_users": "Utilizatori înregistrați" + "registered_users": "Utilizatori înregistrați", + "uptime_30d": "Timp de funcționare (30 zile)" }, "comment": { "user_disabled": "Comentariile sunt dezactivate în setări.", @@ -150,11 +158,15 @@ "category": "Categorie", "all": "Tot", "chapters_horizontal": "Orizontal", - "chapters_vertical": "Vertical" + "chapters_vertical": "Vertical", + "visibility": "Vizibilitate", + "license": "Licență" }, "login": { "username": "Nume de utilizator", - "password": "Parolă" + "password": "Parolă", + "password_confirm": "Confirmați parola", + "passwords_incorrect": "Parolele nu se potrivesc!" }, "search": { "videos": "YouTube: Videoclipuri", @@ -176,7 +188,12 @@ "register_no_email_note": "Utilizarea unui e-mail ca nume de utilizator nu este recomandată. Continuați oricum?", "local_storage": "Această acțiune necesită localStorage, sunt activate cookie-urile?", "next_video_countdown": "Redarea următorului videoclip în {0}s", - "days": "{amount} zi(le)" + "days": "{amount} zi(le)", + "hours": "{amount} oră(e)", + "login_note": "Conectați-vă cu un cont creat în această instanță.", + "months": "{amount} lună(luni)", + "weeks": "{amount} săptămână(e)", + "register_note": "Înregistrați un cont pentru această instanță Piped. Acest lucru vă va permite să vă sincronizați abonamentele și listele de redare cu contul dvs., astfel încât acestea să fie stocate pe partea serverului. Puteți utiliza toate funcțiile fără un cont, dar toate datele vor fi stocate în memoria cache locală a browserului dvs. Vă rugăm să vă asigurați că NU folosiți o adresă de e-mail ca nume de utilizator și alegeți o parolă sigură pe care nu o folosiți în altă parte." }, "subscriptions": { "subscribed_channels_count": "Abonat la: {0}" @@ -200,6 +217,7 @@ "dearrow": "DeArrow" }, "player": { - "watch_on": "Vizionați pe {0}" + "watch_on": "Vizionați pe {0}", + "failed": "A eșuat cu codul de eroare {0}, consultați jurnalele pentru mai multe informații" } }