From f2679c48136fd7c6c901a27b6ce974e16fd56bc3 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Wed, 3 Jan 2024 20:45:28 +0000 Subject: [PATCH 1/4] Allow loading large amount of unauth subscriptions through POST method. --- src/components/FeedPage.vue | 15 ++++++++++++--- src/components/SubscriptionsPage.vue | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) 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() { From 60552ff2141c474a1b18f5dcfcaa60deba6c2261 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 12:11:21 +0000 Subject: [PATCH 2/4] chore(deps): update vue monorepo to v3.4.4 --- package.json | 4 +- pnpm-lock.yaml | 124 ++++++++++++++++++++++++------------------------- 2 files changed, 64 insertions(+), 64 deletions(-) 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: From 8c0c97e0bd864d54c8a2449bc33d5f80e4c742b0 Mon Sep 17 00:00:00 2001 From: Tang Jing Hang <104249142+keyboardreamer@users.noreply.github.com> Date: Thu, 4 Jan 2024 09:04:02 +0800 Subject: [PATCH 3/4] simplify VideoItem.vue --- src/components/VideoItem.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/VideoItem.vue b/src/components/VideoItem.vue index fc86e08e..1aff69ed 100644 --- a/src/components/VideoItem.vue +++ b/src/components/VideoItem.vue @@ -213,6 +213,6 @@ export default { } .video-info .dark { - @apply mt-1 text-xs text-gray-300 font-normal; + @apply text-gray-300; } From c14bc252acab87c0ec427e024b57c2da1ab4509f Mon Sep 17 00:00:00 2001 From: "bf helish_88 (helish)" Date: Wed, 3 Jan 2024 20:13:26 +0000 Subject: [PATCH 4/4] Translated using Weblate (Romanian) Currently translated at 99.5% (200 of 201 strings) Translation: Piped/Frontend Translate-URL: https://hosted.weblate.org/projects/piped/frontend/ro/ --- src/locales/ro.json | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) 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" } }