From 013af12d00d3e5bc593ce72e48f52ab7628b7fcc Mon Sep 17 00:00:00 2001 From: Dragibus Noir Date: Fri, 15 Jan 2021 22:33:54 +0000 Subject: [PATCH 01/56] Translated using Weblate (French) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/ --- static/locales/fr-FR.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/static/locales/fr-FR.yaml b/static/locales/fr-FR.yaml index 515bd0ac..96a1c405 100644 --- a/static/locales/fr-FR.yaml +++ b/static/locales/fr-FR.yaml @@ -83,6 +83,13 @@ Most Popular: 'Les plus populaires' Playlists: 'Listes de lecture' User Playlists: Your Playlists: 'Vos listes de lecture' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Vous + n'avez enregistré aucune vidéo. Cliquez sur le bouton Enregistrer dans le coin + d'une vidéo pour l'afficher ici + Playlist Message: Cette page ne reflète pas les listes de lecture entièrement fonctionnelles. + Elle ne répertorie que les vidéos que vous avez enregistrées ou mises en favoris. + Une fois le travail terminé, toutes les vidéos actuellement présentes ici seront + migrées vers une liste de lecture «Favoris». History: # On History Page History: 'Historique' @@ -365,6 +372,16 @@ About: View License: Voir la license Licensed under the AGPLv3: Sous licence AGPLv3 Source code: Code source + these people and projects: ces personnes et projets + FreeTube is made possible by: FreeTube est rendu possible par + room rules: règles du salon + Please read the: Veuillez lire le + Please check for duplicates before posting: Veuillez vérifier s'il y a des doublons + avant de poster + GitHub issues: Problèmes GitHub + FreeTube Wiki: Wiki de FreeTube + GitHub releases: Versions sur GitHub + Downloads / Changelog: Téléchargements / Journal des modifications Channel: Subscriber: 'Abonnement' Subscribers: 'Abonnements' @@ -484,6 +501,10 @@ Video: Open Channel in YouTube: Ouvrir la chaîne sur YouTube Started streaming on: Diffusion lancée le Streamed on: Diffusé le + Video has been removed from your saved list: La vidéo a été supprimée de votre liste + enregistrée + Video has been saved: La vidéo a été enregistrée + Save Video: Enregistrer la vidéo Videos: #& Sort By Sort By: From 072585224f3b336e8f90b64ce9628496d5011d53 Mon Sep 17 00:00:00 2001 From: Dennis ten Hoove Date: Fri, 15 Jan 2021 23:20:19 +0000 Subject: [PATCH 02/56] Translated using Weblate (Dutch) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/nl/ --- static/locales/nl.yaml | 55 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/static/locales/nl.yaml b/static/locales/nl.yaml index db3c1b3f..77fcbc1e 100644 --- a/static/locales/nl.yaml +++ b/static/locales/nl.yaml @@ -83,6 +83,13 @@ Most Popular: 'Populair' Playlists: 'Afspeellijsten' User Playlists: Your Playlists: 'Uw afspeellijsten' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Je + opgeslagen video's is leeg. Klik op de video opslaan knop in de hoek van een video + om het hier in de lijst te plaatsen + Playlist Message: Deze pagina is niet reflectief van volledig functionele afspeellijst. + Er worden alleen video's weergegeven die jij hebt opgeslagen of gefavoriet. Wanneer + we klaar zijn met de ontwikkeling van deze feature zullen al deze video's worden + gemigreerd de 'favorieten' afspeellijst. History: # On History Page History: 'Geschiedenis' @@ -95,7 +102,7 @@ Settings: General Settings: 'Algemene instellingen' Fallback to Non-Preferred Backend on Failure: 'Val terug op een Niet-Voorkeur Backend bij falen' - Enable Search Suggestions: 'Schakel Zoek Suggesties in' + Enable Search Suggestions: 'Zoek Suggesties Inschakelen' Default Landing Page: 'Standaard Landingspagina' Locale Preference: 'Locale Voorkeur' Preferred API Backend: @@ -270,6 +277,7 @@ Settings: All watched history has been successfully imported: De bekeken geschiedenis is met succes geïmporteerd Check for Legacy Subscriptions: Controleer op Legacy Abonnementen + Manage Subscriptions: Beheer Abonnementen Distraction Free Settings: Hide Live Chat: Verberg Live Chat Hide Popular Videos: Verberg Populaire Video's @@ -284,6 +292,22 @@ Settings: The app needs to restart for changes to take effect. Restart and apply change?: De applicatie moet opnieuw opstarten om de veranderingen aan te brengen. Wilt u opnieuw opstarten? + Proxy Settings: + Error getting network information. Is your proxy configured properly?: Fout bij + het opvragen van netwerk informatie. Is uw proxy correct geconfigureerd? + City: Stad + Region: Regio + Country: Land + Ip: Ip + Your Info: Uw Informatie + Test Proxy: Test Proxy + Clicking on Test Proxy will send a request to: Door op Test Proxy te klikken zal + er een request worden verstuurd naar + Proxy Port Number: Proxy Poortnummer + Proxy Host: Proxy Host + Proxy Protocol: Proxy Protocol + Enable Tor / Proxy: Tor / Proxy Inschakelen + Proxy Settings: Proxy Instellingen About: #On About page About: 'Over' @@ -316,6 +340,31 @@ About: Latest FreeTube News: 'Laatste FreeTube nieuws' #On Channel Page + Donate: Doneer + these people and projects: deze mensen en project + FreeTube is made possible by: FreeTube is mogelijk gemaakt door + Credits: Met dank aan + Translate: Vertalen + room rules: room regels + Please read the: Lees alstublieft de + Chat on Matrix: Chat op Matrix + Mastodon: Mastodon + Email: Email + Blog: Blog + Website: Website + Please check for duplicates before posting: Controleer op duplicaten voordat u een + issue post + GitHub issues: GitHub issues + Report a problem: Rapporteer een probleem + FAQ: Veelgestelde vragen + FreeTube Wiki: FreeTube Wiki + Help: Hulp + GitHub releases: GitHub releases + Downloads / Changelog: Downloads / Changelog + View License: Bekijk Licentie + Licensed under the AGPLv3: Vrijgegeven onder de AGPLv3 licentie + Source code: Broncode + Beta: Beta Channel: Subscriber: 'Abonnee' Subscribers: 'Abonnees' @@ -433,6 +482,10 @@ Video: Open Channel in YouTube: Open Kanaal op YouTube Started streaming on: Gestart met streamen op Streamed on: Gestreamd op + Video has been removed from your saved list: Video is verwijderd uit uw opgeslagen + video's lijst + Video has been saved: Video is opgeslagen + Save Video: Video Opslaan Videos: #& Sort By Sort By: From 33a0e9ff2d2c8e509dbdb8deec6c2117ef16b645 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Fri, 15 Jan 2021 23:02:39 +0000 Subject: [PATCH 03/56] Translated using Weblate (Croatian) Currently translated at 99.7% (441 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hr/ --- static/locales/hr.yaml | 61 +++++++++++++++++++++++++++++++++++------- 1 file changed, 51 insertions(+), 10 deletions(-) diff --git a/static/locales/hr.yaml b/static/locales/hr.yaml index 4d99dbaf..c532596c 100644 --- a/static/locales/hr.yaml +++ b/static/locales/hr.yaml @@ -82,6 +82,9 @@ Most Popular: 'Najpopularniji' Playlists: 'Zbirke' User Playlists: Your Playlists: 'Tvoje zbirke' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Tvoji + spremljeni videi su prazni. Pritisni gumb za spremanje u kutu videa, kako bi se + ovdje naveli History: # On History Page History: 'Povijest' @@ -267,11 +270,12 @@ Settings: One or more subscriptions were unable to be imported: Neuspio uvoz jedne ili više pretplata Check for Legacy Subscriptions: Potraži stare pretplate + Manage Subscriptions: Upravljaj pretplatama Distraction Free Settings: Hide Trending Videos: Sakrij videa u trendu Hide Recommended Videos: Sakrij preporučena videa Hide Channel Subscribers: Sakrij pretplatnike na kanal - Hide Live Chat: Sakrij chat u živo + Hide Live Chat: Sakrij razgovor uživo Hide Popular Videos: Sakrij popularna videa Hide Comment Likes: Sakrij ocjene komentara Hide Video Likes And Dislikes: Sakrij ocjenjivanje videa @@ -280,6 +284,22 @@ Settings: Hide Active Subscriptions: Sakrij aktivne pretplate The app needs to restart for changes to take effect. Restart and apply change?: Za primjenu promjena, program se mora ponovo pokrenuti. Ponovo pokrenuti program? + Proxy Settings: + Country: Zemlja + Error getting network information. Is your proxy configured properly?: Greška + pri dohvaćanju mrežnih podataka. Je li tvoj posrednik pravilno konfiguriran? + City: Grad + Region: Regija + Ip: IP + Your Info: Tvoji podaci + Test Proxy: Provjeri posrednika + Clicking on Test Proxy will send a request to: Pritiskom gumba „Provjeri posrednika” + šalje se zahtjev na + Proxy Port Number: Broj priključka posrednika + Proxy Host: Računalo posrednika + Proxy Protocol: Protokol posrednika + Enable Tor / Proxy: Aktiviraj Tor/Posrednik + Proxy Settings: Postavke posrednika About: #On About page About: 'Informacije' @@ -328,6 +348,23 @@ About: Useful Links: Korisne poveznice Help: Pomoć Contact: Kontakt + Chat on Matrix: Razgovaraj na Matrixu + Please check for duplicates before posting: Prije slanja greške, provjeri, je li + ista greška već prijavljena + these people and projects: ovi ljudi i projekti + FreeTube is made possible by: FreeTube omogućuju + Translate: Prevodi + room rules: pravila sobe + Please read the: Pročitaj + Mastodon: Mastodon + GitHub issues: GitHub problemi + Report a problem: Prijavi grešku + FreeTube Wiki: FreeTube Wiki + GitHub releases: GitHub izdanja + Downloads / Changelog: Preuzimanja/dnevnik promjena + View License: Pogledaj licencu + Licensed under the AGPLv3: AGPLv3 licenca + Source code: Izvorni kod Profile: All Channels: 'Svi kanali' Profile Manager: 'Upravljač profila' @@ -418,15 +455,15 @@ Video: # As in a Live Video Live: 'Uživo' Live Now: 'Sada uživo' - Live Chat: 'Chat uživo' - Enable Live Chat: 'Aktiviraj chat uživo' - Live Chat is currently not supported in this build.: 'Chat uživo trenutačno nije - podržan u ovoj verziji.' - 'Chat is disabled or the Live Stream has ended.': 'Chat je deaktiviran ili je prijenos - uživo završio.' - Live chat is enabled. Chat messages will appear here once sent.: 'Chat uživo je - aktiviran. Poruke chata pojavit će se ovdje nakon slanja.' - 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Chat + Live Chat: 'Razgovor uživo' + Enable Live Chat: 'Aktiviraj razgovor uživo' + Live Chat is currently not supported in this build.: 'Razgovor uživo trenutačno + nije podržan u ovoj verziji.' + 'Chat is disabled or the Live Stream has ended.': 'Razgovor je deaktiviran ili je + prijenos uživo završio.' + Live chat is enabled. Chat messages will appear here once sent.: 'Razgovor uživo + je aktiviran. Poruke razgovora pojavit će se ovdje nakon slanja.' + 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Razgovor uživo trenutačno nije podržan s Invidious sučeljem. Potrebna je izravna veza s YouTubeom.' Published: @@ -484,6 +521,10 @@ Video: Open Channel in YouTube: 'Otvori kanal na YouTube stranici' Started streaming on: Početak prijenosa Streamed on: Prijenos + Video has been removed from your saved list: Video je uklonjen iz tvojeg popisa + spremljenih + Video has been saved: Video je spremljen + Save Video: Spremi video Videos: #& Sort By Sort By: From d677b1f1b18f5b98a86a0b6f1a5d46371ed435f9 Mon Sep 17 00:00:00 2001 From: Dragibus Noir Date: Sat, 16 Jan 2021 01:25:50 +0000 Subject: [PATCH 04/56] Translated using Weblate (French) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/ --- static/locales/fr-FR.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/static/locales/fr-FR.yaml b/static/locales/fr-FR.yaml index 96a1c405..4b401dde 100644 --- a/static/locales/fr-FR.yaml +++ b/static/locales/fr-FR.yaml @@ -307,8 +307,8 @@ Settings: Ip: Ip Your Info: Vos informations Test Proxy: Test du Proxy - Clicking on Test Proxy will send a request to: En cliquant sur Test Proxy, une - demande sera envoyée à + Clicking on Test Proxy will send a request to: En cliquant sur Test du Proxy, + une demande sera envoyée à Proxy Port Number: Numéro de port du proxy Proxy Host: Hôte du proxy Proxy Protocol: Protocole du proxy @@ -365,7 +365,7 @@ About: Beta: Bêta Donate: Faire un don Useful Links: Liens utiles - Translate: Traduire + Translate: Aidez-nous à traduire FreeTube Chat on Matrix: Chatter sur Matrix Mastodon: Mastodon Report a problem: Signaler un problème @@ -375,12 +375,12 @@ About: these people and projects: ces personnes et projets FreeTube is made possible by: FreeTube est rendu possible par room rules: règles du salon - Please read the: Veuillez lire le + Please read the: Veuillez lire les Please check for duplicates before posting: Veuillez vérifier s'il y a des doublons avant de poster - GitHub issues: Problèmes GitHub + GitHub issues: Les problèmes identifiés par la communauté sur GitHub FreeTube Wiki: Wiki de FreeTube - GitHub releases: Versions sur GitHub + GitHub releases: Les différentes versions de FreeTube disponibles sur GitHub Downloads / Changelog: Téléchargements / Journal des modifications Channel: Subscriber: 'Abonnement' From 261291a64062edef378a05fa207142ec85383378 Mon Sep 17 00:00:00 2001 From: Dennis ten Hoove Date: Sat, 16 Jan 2021 00:45:16 +0000 Subject: [PATCH 05/56] Translated using Weblate (Dutch) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/nl/ --- static/locales/nl.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/locales/nl.yaml b/static/locales/nl.yaml index 77fcbc1e..d4cf0037 100644 --- a/static/locales/nl.yaml +++ b/static/locales/nl.yaml @@ -89,7 +89,7 @@ User Playlists: Playlist Message: Deze pagina is niet reflectief van volledig functionele afspeellijst. Er worden alleen video's weergegeven die jij hebt opgeslagen of gefavoriet. Wanneer we klaar zijn met de ontwikkeling van deze feature zullen al deze video's worden - gemigreerd de 'favorieten' afspeellijst. + gemigreerd naar de 'favorieten' afspeellijst. History: # On History Page History: 'Geschiedenis' @@ -102,7 +102,7 @@ Settings: General Settings: 'Algemene instellingen' Fallback to Non-Preferred Backend on Failure: 'Val terug op een Niet-Voorkeur Backend bij falen' - Enable Search Suggestions: 'Zoek Suggesties Inschakelen' + Enable Search Suggestions: 'Zoeksuggesties Inschakelen' Default Landing Page: 'Standaard Landingspagina' Locale Preference: 'Locale Voorkeur' Preferred API Backend: From aeeb911f0f3964324a844b4b22651ec0370cd7b9 Mon Sep 17 00:00:00 2001 From: Preston Date: Fri, 15 Jan 2021 22:08:50 -0500 Subject: [PATCH 06/56] Fix network leak when using certain modules with the proxy enabled --- package-lock.json | 119 +++++++++++++++++- package.json | 3 + src/renderer/store/modules/ytdl.js | 187 +++++++++++++++++++++++++++-- 3 files changed, 298 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index f10e3912..608c6978 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2041,6 +2041,11 @@ "defer-to-connect": "^1.0.1" } }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, "@types/anymatch": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", @@ -2848,6 +2853,29 @@ "pkcs7": "^1.0.4" } }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -9236,6 +9264,31 @@ "requires-port": "^1.0.0" } }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "http-proxy-middleware": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", @@ -9379,6 +9432,30 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -9572,8 +9649,7 @@ "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "ip-regex": { "version": "2.1.0", @@ -15267,6 +15343,11 @@ "is-fullwidth-code-point": "^3.0.0" } }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -15425,6 +15506,40 @@ } } }, + "socks": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.1.tgz", + "integrity": "sha512-oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ==", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "requires": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", diff --git a/package.json b/package.json index 15ca1700..16303430 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ "bulma-pro": "^0.2.0", "dateformat": "^4.4.1", "electron-context-menu": "^2.4.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", "jquery": "^3.5.1", "js-yaml": "^4.0.0", "lodash.debounce": "^4.0.8", @@ -27,6 +29,7 @@ "nedb": "^1.8.0", "opml-to-json": "1.0.1", "rss-parser": "^3.10.0", + "socks-proxy-agent": "^5.0.0", "video.js": "7.10.2", "videojs-abloop": "^1.2.0", "videojs-contrib-quality-levels": "^2.0.9", diff --git a/src/renderer/store/modules/ytdl.js b/src/renderer/store/modules/ytdl.js index 2ba6998c..647096c2 100644 --- a/src/renderer/store/modules/ytdl.js +++ b/src/renderer/store/modules/ytdl.js @@ -3,6 +3,9 @@ import ytsr from 'ytsr' import ytpl from 'ytpl' import IsEqual from 'lodash.isequal' +import { SocksProxyAgent } from 'socks-proxy-agent' +import { HttpsProxyAgent } from 'https-proxy-agent' +import { HttpProxyAgent } from 'http-proxy-agent' const state = { main: 0, @@ -38,6 +41,47 @@ const actions = { duration: '' } + let agent = null + const settings = rootState.settings + const useProxy = settings.useProxy + + if (useProxy) { + const proxyProtocol = settings.proxyProtocol + const proxyHostname = settings.proxyHostname + const proxyPort = settings.proxyPort + + switch (proxyProtocol) { + case 'http': + agent = new HttpProxyAgent({ + host: proxyHostname, + port: proxyPort + }) + break + case 'https': + agent = new HttpsProxyAgent({ + host: proxyHostname, + port: proxyPort + }) + break + case 'socks4': + agent = new SocksProxyAgent({ + host: proxyHostname, + port: proxyPort, + type: 4 + }) + break + case 'socks5': + agent = new SocksProxyAgent({ + host: proxyHostname, + port: proxyPort, + type: 5 + }) + break + } + + payload.options.requestOptions = { agent } + } + commit('toggleIsYtSearchRunning') if (!IsEqual(defaultFilters, rootState.utils.searchSettings)) { @@ -79,7 +123,51 @@ const actions = { }, async ytSearchGetFilters ({ rootState }, payload) { - let filter = await ytsr.getFilters(payload.query) + let options = null + let agent = null + const settings = rootState.settings + const useProxy = settings.useProxy + + if (useProxy) { + const proxyProtocol = settings.proxyProtocol + const proxyHostname = settings.proxyHostname + const proxyPort = settings.proxyPort + + switch (proxyProtocol) { + case 'http': + agent = new HttpProxyAgent({ + host: proxyHostname, + port: proxyPort + }) + break + case 'https': + agent = new HttpsProxyAgent({ + host: proxyHostname, + port: proxyPort + }) + break + case 'socks4': + agent = new SocksProxyAgent({ + host: proxyHostname, + port: proxyPort, + type: 4 + }) + break + case 'socks5': + agent = new SocksProxyAgent({ + host: proxyHostname, + port: proxyPort, + type: 5 + }) + break + } + + options = { + requestOptions: { agent } + } + } + + let filter = await ytsr.getFilters(payload.query, options) let filterUrl = null let searchSettings = payload.searchSettings @@ -104,7 +192,7 @@ const actions = { break } filterUrl = filter.get('Sort by').get(filterValue).url - filter = await ytsr.getFilters(filterUrl) + filter = await ytsr.getFilters(filterUrl, options) } console.log(`Current ref: ${filterUrl}`) @@ -118,7 +206,7 @@ const actions = { } filterUrl = filter.get('Duration').get(filterValue).url - filter = await ytsr.getFilters(filterUrl) + filter = await ytsr.getFilters(filterUrl, options) } console.log(`Current ref: ${filterUrl}`) @@ -145,7 +233,7 @@ const actions = { } filterUrl = filter.get('Upload date').get(filterValue).url - filter = await ytsr.getFilters(filterUrl) + filter = await ytsr.getFilters(filterUrl, options) } console.log(`Current ref: ${filterUrl}`) @@ -153,7 +241,7 @@ const actions = { if (searchSettings.type !== 'all') { const filterValue = searchSettings.type.charAt(0).toUpperCase() + searchSettings.type.slice(1) filterUrl = filter.get('Type').get(filterValue).url - filter = await ytsr.getFilters(filterUrl) + filter = await ytsr.getFilters(filterUrl, options) } console.log(`Current ref: ${filterUrl}`) @@ -163,11 +251,52 @@ const actions = { }) }, - ytGetPlaylistInfo (_, playlistId) { + ytGetPlaylistInfo ({ rootState }, playlistId) { return new Promise((resolve, reject) => { console.log(playlistId) console.log('Getting playlist info please wait...') - ytpl(playlistId, { limit: 'Infinity' }).then((result) => { + let agent = null + const settings = rootState.settings + const useProxy = settings.useProxy + + if (useProxy) { + const proxyProtocol = settings.proxyProtocol + const proxyHostname = settings.proxyHostname + const proxyPort = settings.proxyPort + + switch (proxyProtocol) { + case 'http': + agent = new HttpProxyAgent({ + host: proxyHostname, + port: proxyPort + }) + break + case 'https': + agent = new HttpsProxyAgent({ + host: proxyHostname, + port: proxyPort + }) + break + case 'socks4': + agent = new SocksProxyAgent({ + host: proxyHostname, + port: proxyPort, + type: 4 + }) + break + case 'socks5': + agent = new SocksProxyAgent({ + host: proxyHostname, + port: proxyPort, + type: 5 + }) + break + } + } + ytpl(playlistId, { + limit: 'Infinity', + requestOptions: { agent } + }).then((result) => { resolve(result) }).catch((err) => { reject(err) @@ -175,11 +304,51 @@ const actions = { }) }, - ytGetVideoInformation (_, videoId) { + ytGetVideoInformation ({ rootState }, videoId) { return new Promise((resolve, reject) => { console.log('Getting video info please wait...') + let agent = null + const settings = rootState.settings + const useProxy = settings.useProxy + + if (useProxy) { + const proxyProtocol = settings.proxyProtocol + const proxyHostname = settings.proxyHostname + const proxyPort = settings.proxyPort + + switch (proxyProtocol) { + case 'http': + agent = new HttpProxyAgent({ + host: proxyHostname, + port: proxyPort + }) + break + case 'https': + agent = new HttpsProxyAgent({ + host: proxyHostname, + port: proxyPort + }) + break + case 'socks4': + agent = new SocksProxyAgent({ + host: proxyHostname, + port: proxyPort, + type: 4 + }) + break + case 'socks5': + agent = new SocksProxyAgent({ + host: proxyHostname, + port: proxyPort, + type: 5 + }) + break + } + } + ytdl.getInfo(videoId, { - lang: localStorage.getItem('locale') + lang: localStorage.getItem('locale'), + requestOptions: { agent } }).then((result) => { resolve(result) }).catch((err) => { From aa6b2925ed045bdd1932c7cb1d5f7e3255f24315 Mon Sep 17 00:00:00 2001 From: Preston Date: Fri, 15 Jan 2021 22:34:49 -0500 Subject: [PATCH 07/56] Add touch controls to video player (Hold to pause, doubel tap to fullscreen) --- .../ft-video-player/ft-video-player.js | 21 +++++++++++++++++++ .../ft-video-player/ft-video-player.vue | 2 ++ 2 files changed, 23 insertions(+) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 98b76249..11e4ce87 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -76,6 +76,8 @@ export default Vue.extend({ maxFramerate: 0, activeSourceList: [], mouseTimeout: null, + touchTimeout: null, + lastTouchTime: null, dataSetup: { fluid: true, nativeTextTracks: false, @@ -719,6 +721,25 @@ export default Vue.extend({ } }, + handleTouchStart: function (event) { + const v = this + this.touchPauseTimeout = setTimeout(() => { + v.togglePlayPause() + }, 1000) + + const touchTime = new Date() + + if (this.lastTouchTime !== null && (touchTime.getTime() - this.lastTouchTime.getTime()) < 250) { + this.toggleFullscreen() + } + + this.lastTouchTime = touchTime + }, + + handleTouchEnd: function (event) { + clearTimeout(this.touchPauseTimeout) + }, + keyboardShortcutHandler: function (event) { const activeInputs = $('.ft-input') diff --git a/src/renderer/components/ft-video-player/ft-video-player.vue b/src/renderer/components/ft-video-player/ft-video-player.vue index 0827a643..80965573 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.vue +++ b/src/renderer/components/ft-video-player/ft-video-player.vue @@ -6,6 +6,8 @@ :poster="thumbnail" controls preload="auto" + @touchstart="handleTouchStart" + @touchend="handleTouchEnd" :data-setup="JSON.stringify(dataSetup)" > Date: Fri, 15 Jan 2021 23:50:13 -0500 Subject: [PATCH 08/56] Update webpack.web.config.js --- _scripts/webpack.web.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_scripts/webpack.web.config.js b/_scripts/webpack.web.config.js index 0716f1b3..35e59c37 100644 --- a/_scripts/webpack.web.config.js +++ b/_scripts/webpack.web.config.js @@ -107,7 +107,8 @@ const config = { fs: 'empty', net: 'empty', tls: 'empty', - child_process: 'empty' + child_process: 'empty', + dns: 'empty' }, plugins: [ // new WriteFilePlugin(), From 926c6a87649d393051b8292048e7a18a87f174f1 Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Sat, 16 Jan 2021 07:04:59 +0000 Subject: [PATCH 09/56] Translated using Weblate (Arabic) Currently translated at 95.4% (422 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ar/ --- static/locales/ar.yaml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/static/locales/ar.yaml b/static/locales/ar.yaml index fb004509..ae869862 100644 --- a/static/locales/ar.yaml +++ b/static/locales/ar.yaml @@ -266,6 +266,7 @@ Settings: One or more subscriptions were unable to be imported: تعذر استيراد واحد أو أكثر من الاشتراكات Check for Legacy Subscriptions: تحقق من وجود اشتراك قديم + Manage Subscriptions: إدارة الإشتراكات Distraction Free Settings: Hide Live Chat: اخفي الدردشة المباشرة Hide Popular Videos: اخفي الفيديوهات الأكثر شعبية @@ -278,6 +279,18 @@ Settings: Distraction Free Settings: إعدادات عدم الإزعاج The app needs to restart for changes to take effect. Restart and apply change?: البرنامج يحتاج لإعادة التشغيل كي يسري مفعول التغييرات. هل تريد إعادة التشغيل و تطبيق التغييرات؟ + Proxy Settings: + City: المدينة + Region: المنطقة + Country: البلد + Ip: عنوان الإيبي + Your Info: معلوماتك + Test Proxy: اختبار البروكسي + Proxy Port Number: رقم منفذ البروكسي + Proxy Host: خادوم البروكسي + Proxy Protocol: بروتوكول البروكسي + Enable Tor / Proxy: تفعيل تور / البروكسي + Proxy Settings: خيارات البروكسي About: #On About page About: 'حول' @@ -309,6 +322,19 @@ About: Latest FreeTube News: 'آخر أخبار FreeTube' + Donate: التبرع + Translate: ساعدنا في ترجمة Freetube + Chat on Matrix: الدردشة على ماتريكس + Mastodon: ماستدون + Email: البريد الإلكتروني + Blog: المدوّنة + Website: موقع الويب + Report a problem: الإبلاغ عن مشكلة + FAQ: الأسئلة المتداولة + Help: المساعدة + View License: اعرض الرخصة + Source code: الشفرة المصدرية + Beta: تجريبي Profile: All Channels: 'جميع القنوات' Profile Manager: 'مدير الملف الشخصي' @@ -466,6 +492,8 @@ Video: Open Channel in Invidious: افتح القناة على انفيديوس Copy YouTube Channel Link: انسخ رابط قناة اليوتيوب Open Channel in YouTube: افتح القناة على يوتيوب + Video has been saved: تم حفظ الفيديو + Save Video: احفظ الفيديو Videos: #& Sort By Sort By: From 96a1d32a07119ce7accbd4fa1a1bb4016060c8e8 Mon Sep 17 00:00:00 2001 From: JasonFlattire Date: Sat, 16 Jan 2021 13:12:27 +0000 Subject: [PATCH 10/56] Translated using Weblate (Kurdish) Currently translated at 25.7% (114 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ku/ --- static/locales/ku.yaml | 136 ++++++++++++++++++++++++++++------------- 1 file changed, 95 insertions(+), 41 deletions(-) diff --git a/static/locales/ku.yaml b/static/locales/ku.yaml index b94205f0..a5f92db2 100644 --- a/static/locales/ku.yaml +++ b/static/locales/ku.yaml @@ -1,5 +1,5 @@ # Put the name of your locale in the same language -Locale Name: 'کوردی' +Locale Name: 'kur-ckb' FreeTube: 'فریتیوب' # Currently on Subscriptions, Playlists, and History 'This part of the app is not ready yet. Come back later when progress has been made.': >- @@ -33,7 +33,7 @@ Forward: 'چونەپێشەوە' Version $ is now available! Click for more details: 'ڤێرژنی $ ئێستا بەردەستە! کلیک بکە بۆ زانیاری زیاتر' Download From Site: 'دایبەزێنە لە سایتەکەوە' -A new blog is now available, $. Click to view more: 'بڵۆگێکە نوێ بەردەستە، $. کلیک +A new blog is now available, $. Click to view more: 'بڵۆگێکی نوێ بەردەستە، $. کلیک بکە بۆ بینینی زیاتر' # Search Bar @@ -43,7 +43,7 @@ Search Filters: Search Filters: 'فیلتەری گەڕان' Sort By: Sort By: 'بگەڕی بە' - Most Relevant: '' + Most Relevant: 'گرنگترین' Rating: 'ڕەیتینگ' Upload Date: 'کاتی بڵاوکردنەوە' View Count: 'ژماری بینراو' @@ -80,25 +80,35 @@ Subscriptions: 'Getting Subscriptions. Please wait.': 'بەشداریکراوەکان وەردەگیرێن. تکایە چاوەڕوان بە.' Refresh Subscriptions: 'بەشداریکراوەکان تازە بکەرەوە' -Trending: '' -Most Popular: '' -Playlists: '' + Load More Videos: ڤیدیۆی زیاتر بهێنە + This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: .ئەم + پرۆفایلە ژمارەیەکی زۆری هەیە لە سەبسکریپشن. بۆ دورکەوتنەوە لە سنوور دانان (رسس) + بەکاردەهێندرێت +Trending: 'زۆر باسکراو' +Most Popular: 'بەناوبانگترین' +Playlists: 'پلەیلیست' User Playlists: - Your Playlists: '' + Your Playlists: 'پلیەلیستەکانت' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: ڤیدیۆ + سەڤکراوەکانت بەتاڵن. کلیک لە دوگمەی سەیڤ کە لە سووچی ڤیدیۆیەک بۆ ئەوەی لێرە لیستکرێت + Playlist Message: ئەم پەیجە شێوەی کۆتایی پلەیلیستەکە دەرناخات. تەنها ڤیدیۆت پیشان + دەدات کە سیڤت کردووە یان فەیڤرتت کردووە. کاتێک کارەکە تەواو بووە، گشت ئەم ڤیدیۆیانەی + لێرەدان دەبرێنە لیستی 'فەیڤرتەکان'. History: # On History Page - History: '' - Watch History: '' - Your history list is currently empty.: '' + History: 'مێژوو' + Watch History: 'لیستی سەیرکراو' + Your history list is currently empty.: 'لیستی سەیرکراوەکانت بەتاڵە.' Settings: # On Settings Page - Settings: '' + Settings: 'دەستکاریکردن' General Settings: - General Settings: '' - Check for Updates: '' - Check for Latest Blog Posts: '' - Fallback to Non-Preferred Backend on Failure: '' - Enable Search Suggestions: '' + General Settings: 'دەستکاریکردنی گشتی' + Check for Updates: 'بزانە تازەکاری هاتووە' + Check for Latest Blog Posts: 'چێکی تازەترین بلۆگ بکە' + Fallback to Non-Preferred Backend on Failure: 'گەڕانەوە بۆ سیستەمە ناخوازراوەکە + لەکاتی فەشەلدا' + Enable Search Suggestions: 'پێشنیارکردن بەکاربخە لەکاتی گەڕاندا' Default Landing Page: '' Locale Preference: '' Preferred API Backend: @@ -216,10 +226,11 @@ Settings: History object has insufficient data, skipping item: '' All watched history has been successfully imported: '' All watched history has been successfully exported: '' - Unable to read file: '' - Unable to write file: '' - Unknown data key: '' - How do I import my subscriptions?: '' + Unable to read file: 'ناتواندرێت فایلەکە بخوێندرێتەوە' + Unable to write file: 'ناتواندریت فایلەکە بنوسرێت' + Unknown data key: 'کلیلی داتای نەناسراو' + How do I import my subscriptions?: 'چۆن بەشدارییەکانم داخڵ بکەم؟' + Manage Subscriptions: بەشدارییەکانت رێکبخە Advanced Settings: Advanced Settings: '' Enable Debug Mode (Prints data to the console): '' @@ -242,9 +253,28 @@ Settings: #& Yes #& No + Proxy Settings: + Error getting network information. Is your proxy configured properly?: کێشە لە + وەرگرتنی زانیاری نێتۆرک. ئایە پرۆکسێکەت بە رێکوپێکی رێکخراوە؟ + City: شار + Region: ناوچە + Country: وڵات + Ip: ئەدرێسی ئەلکترۆنی + Your Info: زانیاریت + Test Proxy: تاقیکردنەوەی پرۆکسی + Clicking on Test Proxy will send a request to: کلیکردن لەسەر تێستی پرۆکسی داواکارییەک + دەنێریت بۆ + Proxy Port Number: ژمارەی پۆرتی پرۆکسی + Proxy Host: پرۆکسی بڵاوکەر + Proxy Protocol: پرۆتۆکۆڵی پڕۆکسی + Enable Tor / Proxy: تۆر/پرۆکسی بەکاربخە + Proxy Settings: گۆڕانکاری پرۆکسی + The app needs to restart for changes to take effect. Restart and apply change?: ئەم + ئەپڵیکەیشنە دەبێت دووبارە بکرێتەوە بۆ ئەوەی گۆڕانکارێکان بگانە ئەنجام. دووبارە + کردنەوە و چەسپکردنی گۆڕانکارێکان؟ About: #On About page - About: '' + About: 'دەربارە' #& About 'This software is FOSS and released under the GNU Affero General Public License v3.0.': '' @@ -264,27 +294,51 @@ About: Latest FreeTube News: '' + Donate: دۆنەیشن + these people and projects: ئەم کەسانە و پڕۆژانە + FreeTube is made possible by: فریتوب بونی هەیە بەهۆی + Translate: تەرجومە + room rules: یاسای ژوورەکە + Please read the: تکایە شتەکە بخوێنەوە + Chat on Matrix: Matrix موناقەشە کە لە + Mastodon: ماستۆدۆن + Email: نامەی ئەلکترۆنی + Blog: بلۆگ + Website: وێبسایت + Please check for duplicates before posting: تکایە چێک بکە بۆ دووبارە پێش پۆستکردن + GitHub issues: GitHub کێشاکانی + Report a problem: کێشەیەک ڕاگەیەنە + FAQ: پرسیارانەی زۆر دەکرێن + FreeTube Wiki: ویکی فریتیوب + Help: یارمەتی + GitHub releases: GitHub دەرچونەکانی + Downloads / Changelog: دابەزاندنەکان / لیستی گۆڕانکاری + View License: قەیدەکە پیشاندە + Licensed under the AGPLv3: AGPLv3 دەرکراوە لەژیر + Source code: سەرچاوەی کۆد + Beta: تاقیکارییە Profile: - Profile Select: '' - All Channels: '' - Profile Manager: '' - Create New Profile: '' - Edit Profile: '' - Color Picker: '' - Custom Color: '' - Profile Preview: '' - Create Profile: '' - Update Profile: '' - Make Default Profile: '' - Delete Profile: '' - Are you sure you want to delete this profile?: '' - All subscriptions will also be deleted.: '' - Profile could not be found: '' - Your profile name cannot be empty: '' - Profile has been created: '' - Profile has been updated: '' - Your default profile has been set to $: '' - Removed $ from your profiles: '' + Profile Select: 'پرۆفایلەکە دیاریکە' + All Channels: 'هەموو کەناڵەکان' + Profile Manager: 'ڕێخەری پڕۆفایل' + Create New Profile: 'پڕۆفایلێکی نوێ دروستبکە' + Edit Profile: 'پڕۆفایل دەستکاری بکە' + Color Picker: 'ڕەنگ هەڵبژاردەر' + Custom Color: 'رەنگی تایبەت' + Profile Preview: 'پڕۆفایل بیشاندە' + Create Profile: 'پرۆفایل دروستبکە' + Update Profile: 'پرۆفایل تازەبکەرەوە' + Make Default Profile: 'بیکە بە پڕۆفایلی ئەسایی' + Delete Profile: 'پڕۆفایلەکە بسڕەوە' + Are you sure you want to delete this profile?: 'ئایە دڵنیایت کە دەتەوێت ئەم پڕۆفایلە + بسڕیتەوە؟' + All subscriptions will also be deleted.: 'هەموو بەشداریکردنەکانیش بە هامەنشێوە دەسڕێنەوە.' + Profile could not be found: 'پڕۆفایلەکە ناتواندرێت بدۆزرێتەوە' + Your profile name cannot be empty: 'ناوی پڕۆفایلەکەت نابێت بەتاڵبێت' + Profile has been created: 'پڕۆفایلەکە دروستکرا' + Profile has been updated: 'پرۆفایلەکە تازەکرایەوە' + Your default profile has been set to $: 'پرۆفایلە ئاساییەکەت دانراوە بۆ $' + Removed $ from your profiles: 'سڕاوەتەوە لە پرۆفایلەکانت $' Your default profile has been changed to your primary profile: '' $ is now the active profile: '' Subscription List: '' From 030e843801e1478c54c770ed55fd2a0e9cec5221 Mon Sep 17 00:00:00 2001 From: Luca Date: Sat, 16 Jan 2021 14:45:05 +0100 Subject: [PATCH 11/56] Update of Trending Scraper module --- package-lock.json | 27 +++++++++++++++++++++------ package.json | 2 +- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 608c6978..1f13c28c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9464,7 +9464,7 @@ }, "humanize-plus": { "version": "1.8.2", - "resolved": "http://registry.npmjs.org/humanize-plus/-/humanize-plus-1.8.2.tgz", + "resolved": "https://registry.npmjs.org/humanize-plus/-/humanize-plus-1.8.2.tgz", "integrity": "sha1-pls0RZrWNnrbs3B6gqPJ+RYWcDA=", "dev": true }, @@ -14816,7 +14816,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { @@ -19242,11 +19242,26 @@ } }, "yt-trending-scraper": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/yt-trending-scraper/-/yt-trending-scraper-1.0.4.tgz", - "integrity": "sha512-RWNHDP0Gx1cKBGy0229jG8XzunsGXF4ZPG1gOtbFF54oF+smahCeWmsuYlmzr+5MwTWzq2s968spTGVgpkNjTA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/yt-trending-scraper/-/yt-trending-scraper-1.0.7.tgz", + "integrity": "sha512-X8Ur9glylaOIOxf7o/IrKo+OKTPNW7e1q2x+Kpq3QxvtQHeI3IaavI7LZ3RwWjruJzUkdLcvR+FwDjFs0PITzw==", "requires": { - "axios": "^0.19.2" + "axios": "^0.21.1" + }, + "dependencies": { + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "follow-redirects": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==" + } } }, "yt-xml2vtt": { diff --git a/package.json b/package.json index 16303430..3af81f55 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "yt-channel-info": "^1.2.0", "yt-comment-scraper": "^1.3.11", "yt-dash-manifest-generator": "^1.1.0", - "yt-trending-scraper": "1.0.4", + "yt-trending-scraper": "1.0.7", "yt-xml2vtt": "^1.2.0", "ytdl-core": "^4.4.3", "ytpl": "^2.0.4", From 44f5764af7610338c04379e28677d3c989a965f9 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Sat, 16 Jan 2021 12:49:07 +0000 Subject: [PATCH 12/56] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/ --- static/locales/zh-TW.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index 4367de79..eff21b17 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -319,6 +319,22 @@ About: Useful Links: 有用連結 Help: 說明 Contact: 聯絡 + these people and projects: 這些人與專案 + FreeTube is made possible by: FreeTube 被做出來是因為 + Translate: 翻譯 + room rules: 聊天室規則 + Please read the: 請閱讀 + Chat on Matrix: 在 Matrix 上聊天 + Mastodon: Mastodon + Please check for duplicates before posting: 張貼前請檢查有無重複 + GitHub issues: GitHub 議題 + Report a problem: 回報問題 + FreeTube Wiki: FreeTube Wiki + GitHub releases: GitHub 版本 + Downloads / Changelog: 下載 / 變更紀錄 + View License: 檢視授權條款 + Licensed under the AGPLv3: 以 AGPLv3 授權 + Source code: 原始碼 Channel: Subscriber: '訂閱者' Subscribers: '訂閱者' From fcb5e5167fedd423e1e98011a9f12ce02e7454c4 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Sat, 16 Jan 2021 15:22:54 +0000 Subject: [PATCH 13/56] Translated using Weblate (Croatian) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hr/ --- static/locales/hr.yaml | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/static/locales/hr.yaml b/static/locales/hr.yaml index c532596c..fc9ffe17 100644 --- a/static/locales/hr.yaml +++ b/static/locales/hr.yaml @@ -3,7 +3,7 @@ Locale Name: 'Hrvatski' FreeTube: 'FreeTube' # Currently on Subscriptions, Playlists, and History 'This part of the app is not ready yet. Come back later when progress has been made.': >- - Ovaj dio programa još nije spreman. Navrati kasnije. + Ovaj dio programa još nije gotov. Navrati kasnije. # Webkit Menu Bar File: 'Datoteka' @@ -33,7 +33,7 @@ Forward: 'Naprijed' Search / Go to URL: 'Pretraži / Idi na URL' # In Filter Button Search Filters: - Search Filters: 'Filtri za pretraživanje' + Search Filters: 'Filtri pretrage' Sort By: Sort By: 'Redoslijed' Most Relevant: 'Najrelevantniji' @@ -60,7 +60,7 @@ Search Filters: Short (< 4 minutes): 'Kratko (< 4 min)' Long (> 20 minutes): 'Dugo (> 20 min)' # On Search Page - Search Results: 'Rezultati pretraživanja' + Search Results: 'Rezultati pretrage' Fetching results. Please wait: 'Rezultati se dohvaćaju. Pričekaj' Fetch more results: 'Dohvati još rezultata' # Sidebar @@ -82,9 +82,12 @@ Most Popular: 'Najpopularniji' Playlists: 'Zbirke' User Playlists: Your Playlists: 'Tvoje zbirke' - Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Tvoji - spremljeni videi su prazni. Pritisni gumb za spremanje u kutu videa, kako bi se - ovdje naveli + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Nemaš + spremljenih videa. Pritisni gumb za spremanje u sličici videa, kako bi se video + ovdje prikazao + Playlist Message: Ova stranica ne odražava potpuno funkcionalne zbirke. Prikazuje + samo spremljena ili označena videa. Kad posao završi, svi trenutačno ovdje prisutni + videi premjestit će se u zbirku „Favoriti”. History: # On History Page History: 'Povijest' @@ -97,7 +100,7 @@ Settings: General Settings: 'Opće postavke' Fallback to Non-Preferred Backend on Failure: 'U slučaju problema koristi sekundarni pozadinski sustav' - Enable Search Suggestions: 'Aktiviraj prijedloge pretraživanja' + Enable Search Suggestions: 'Aktiviraj prijedloge pretrage' Default Landing Page: 'Standardna odredišna stranica' Locale Preference: 'Jezik' Preferred API Backend: @@ -148,7 +151,7 @@ Settings: Deep Orange: 'Tamnonarančasta' Secondary Color Theme: 'Sekundarna boja teme' #* Main Color Theme - UI Scale: Skaliranje korisničkog sučelja + UI Scale: Uvećanje korisničkog sučelja Disable Smooth Scrolling: Deaktiviraj neisprekidano klizanje Expand Side Bar by Default: Standardno proširi bočnu traku Player Settings: @@ -184,10 +187,10 @@ Settings: Privacy Settings: 'Postavke privatnosti' Remember History: 'Zapamti povijest' Save Watched Progress: 'Spremi napredak gledanja' - Clear Search Cache: 'Isprazni predmemoriju pretraživanja' + Clear Search Cache: 'Isprazni predmemoriju pretrage' Are you sure you want to clear out your search cache?: 'Stvarno želiš isprazniti - predmemoriju pretraživanja?' - Search cache has been cleared: 'Predmemorija pretraživanja je ispražnjena' + predmemoriju pretrage?' + Search cache has been cleared: 'Predmemorija pretrage je ispražnjena' Remove Watch History: 'Ukloni povijest gledanja' Are you sure you want to remove your entire watch history?: 'Stvarno želiš ukloniti cijelu povijest gledanja?' @@ -282,8 +285,8 @@ Settings: Hide Video Views: Sakrij broj gledanja videa Distraction Free Settings: Postavke za nesmetan rad Hide Active Subscriptions: Sakrij aktivne pretplate - The app needs to restart for changes to take effect. Restart and apply change?: Za - primjenu promjena, program se mora ponovo pokrenuti. Ponovo pokrenuti program? + The app needs to restart for changes to take effect. Restart and apply change?: Promjene + će se primijeniti nakon ponovnog pokeretanja programa. Ponovo pokrenuti program? Proxy Settings: Country: Zemlja Error getting network information. Is your proxy configured properly?: Greška @@ -629,10 +632,10 @@ Tooltips: Player Settings: Default Video Format: Postavi formate za reprodukciju videa. Dash formati mogu reproducirati višu kvalitetu slike. Stari formati su ograničeni na 720 p, ali - su zato brži. Prijenosi audioformata sadrže samo audiosnimke + su zato brži. Audioformati sadrže samo audiosnimke Proxy Videos Through Invidious: Za reprodukciju videa povezat će se s Invidiousom umjesto izravnog povezivanja s YouTubeom. Zanemaruje postavke sučelja - Force Local Backend for Legacy Formats: Radi samo, kad postaviš Invidious kao + Force Local Backend for Legacy Formats: Radi samo, kad se Invidious postavi kao standardno sučelje. Kad je aktivirano, lokalno sučelje će pokretati i koristiti stare formate umjesto onih koje dostavlja Invidious. Pomaže u slučajevima, kad je reprodukcija videa koje dostavlja Invidious u zemlji zabranjena/ograničena From 0e2390474dead87c4145bf7ed4a435a968551ec7 Mon Sep 17 00:00:00 2001 From: chiak597 Date: Sat, 16 Jan 2021 10:49:16 +0000 Subject: [PATCH 14/56] Translated using Weblate (Czech) Currently translated at 90.4% (400 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index 7885fa07..2babb0ae 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -277,6 +277,8 @@ Settings: #& Yes #& No + Proxy Settings: + Proxy Settings: Nastavení proxy About: #On About page About: 'O aplikaci' From f95f73ee276740208b4f964bba74f61274630dfc Mon Sep 17 00:00:00 2001 From: Preston Date: Sat, 16 Jan 2021 12:18:27 -0500 Subject: [PATCH 15/56] Fix load more button in playlists page --- src/renderer/views/UserPlaylists/UserPlaylists.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/renderer/views/UserPlaylists/UserPlaylists.js b/src/renderer/views/UserPlaylists/UserPlaylists.js index 8e6068cc..d90c83d6 100644 --- a/src/renderer/views/UserPlaylists/UserPlaylists.js +++ b/src/renderer/views/UserPlaylists/UserPlaylists.js @@ -3,6 +3,7 @@ import FtCard from '../../components/ft-card/ft-card.vue' import FtFlexBox from '../../components/ft-flex-box/ft-flex-box.vue' import FtTooltip from '../../components/ft-tooltip/ft-tooltip.vue' import FtLoader from '../../components/ft-loader/ft-loader.vue' +import FtButton from '../../components/ft-button/ft-button.vue' import FtElementList from '../../components/ft-element-list/ft-element-list.vue' export default Vue.extend({ @@ -12,6 +13,7 @@ export default Vue.extend({ 'ft-flex-box': FtFlexBox, 'ft-tooltip': FtTooltip, 'ft-loader': FtLoader, + 'ft-button': FtButton, 'ft-element-list': FtElementList }, data: function () { From 718c440aa1376d822e59a96845c77dd87e2b2352 Mon Sep 17 00:00:00 2001 From: alium Date: Sat, 16 Jan 2021 17:58:28 +0000 Subject: [PATCH 16/56] Translated using Weblate (Czech) Currently translated at 93.6% (414 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index 2babb0ae..bf4b49d1 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -86,6 +86,12 @@ Most Popular: 'Nejpopulárnější' Playlists: 'Playlisty' User Playlists: Your Playlists: 'Vaše playlisty' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Vaše + uložená videa jsou prázdná. Kliknutím na tlačítko Uložit v rohu videa jej zobrazíte + zde + Playlist Message: Tato stránka neodráží plně funkční seznamy skladeb. Uvádí pouze + videa, která jste uložili nebo zařadili mezi oblíbená. Po dokončení práce budou + všechna aktuálně zde umístěná videa přenesena do seznamu „Oblíbené“. History: # On History Page History: 'Historie' @@ -251,6 +257,7 @@ Settings: Unable to write file: 'Soubor nelze uložit' Unknown data key: 'Neznámý datový klíč' How do I import my subscriptions?: 'Jak mohu importovat své odebírané kanály?' + Manage Subscriptions: Spravovat odběry Advanced Settings: Advanced Settings: 'Rozšířené nastavení' Enable Debug Mode (Prints data to the console): 'Povolit režim ladění (výstup @@ -279,6 +286,10 @@ Settings: Proxy Settings: Proxy Settings: Nastavení proxy + City: Město + Ip: IP + Your Info: Vaše informace + Enable Tor / Proxy: Zapnout Tor / Proxy About: #On About page About: 'O aplikaci' From e80b5f72cc544fa0eedbd76a19772ad49069c588 Mon Sep 17 00:00:00 2001 From: chiak597 Date: Sat, 16 Jan 2021 17:58:19 +0000 Subject: [PATCH 17/56] Translated using Weblate (Czech) Currently translated at 93.6% (414 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index bf4b49d1..fdbb6b4c 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -290,6 +290,14 @@ Settings: Ip: IP Your Info: Vaše informace Enable Tor / Proxy: Zapnout Tor / Proxy + Region: Region + Country: Země + Test Proxy: Otestovat proxy + Clicking on Test Proxy will send a request to: Kliknutím na Otestovat proxy se + odešle dotaz na + Proxy Port Number: Port proxy + Proxy Host: Adresa proxy + Proxy Protocol: Protokol proxy About: #On About page About: 'O aplikaci' From 26917643db0ad4d90893cb240d90aeaafe553d9a Mon Sep 17 00:00:00 2001 From: chiak597 Date: Sat, 16 Jan 2021 18:00:12 +0000 Subject: [PATCH 18/56] Translated using Weblate (Czech) Currently translated at 94.3% (417 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index fdbb6b4c..01ea6062 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -289,7 +289,7 @@ Settings: City: Město Ip: IP Your Info: Vaše informace - Enable Tor / Proxy: Zapnout Tor / Proxy + Enable Tor / Proxy: Povolit Tor / Proxy Region: Region Country: Země Test Proxy: Otestovat proxy @@ -329,6 +329,9 @@ About: Latest FreeTube News: 'Nejnovější zprávy z FreeTube' + Licensed under the AGPLv3: Licencováno licencí AGPLv3 + Source code: Zdrojový kód + Beta: Beta Profile: Profile Select: 'Výběr profilu' All Channels: 'Všechny kanály' From 6670440724bce8eb6795019eb7c4634909d43475 Mon Sep 17 00:00:00 2001 From: chiak597 Date: Sat, 16 Jan 2021 18:04:52 +0000 Subject: [PATCH 19/56] Translated using Weblate (Czech) Currently translated at 97.9% (433 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index 01ea6062..cb8a7585 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -332,6 +332,19 @@ About: Licensed under the AGPLv3: Licencováno licencí AGPLv3 Source code: Zdrojový kód Beta: Beta + Donate: Přispět + Credits: Poděkování + room rules: pravidla místnosti + Please read the: Prosím, přečtěte si + Chat on Matrix: Chat na síti Matrix + Mastodon: Mastodon + Email: Email + Blog: Blog + Website: Webová stránka + FAQ: Často kladné dotazy + FreeTube Wiki: FreeTube Wiki + Downloads / Changelog: Ke stažení / Seznam změn + View License: Zobrazit licenci Profile: Profile Select: 'Výběr profilu' All Channels: 'Všechny kanály' @@ -469,16 +482,16 @@ Video: Seconds: 'Sekundy' Minute: 'Minuta' Minutes: 'Minuty' - Hour: 'Hodina' - Hours: 'Hodiny' - Day: 'Den' - Days: 'Dny' - Week: 'Týden' - Weeks: 'Týdny' - Month: 'Měsíc' - Months: 'Měsíce' - Year: 'Rok' - Years: 'Roky' + Hour: 'hodinou' + Hours: 'hodinami' + Day: 'dnem' + Days: 'dny' + Week: 'týdnem' + Weeks: 'týdny' + Month: 'měsícem' + Months: 'měsíci' + Year: 'rokem' + Years: 'lety' Ago: 'Před' Upcoming: 'Premiéra' Published on: 'Publikováno' @@ -487,6 +500,8 @@ Video: #& Videos Started streaming on: Začátek vysílání Streamed on: Vysíláno + Video has been saved: Video bylo uloženo + Save Video: Uložit video Videos: #& Sort By Sort By: From 8944316838e5ce66692109c2c5be09bc99097274 Mon Sep 17 00:00:00 2001 From: alium Date: Sat, 16 Jan 2021 18:04:13 +0000 Subject: [PATCH 20/56] Translated using Weblate (Czech) Currently translated at 97.9% (433 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index cb8a7585..8bb892fa 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -329,7 +329,7 @@ About: Latest FreeTube News: 'Nejnovější zprávy z FreeTube' - Licensed under the AGPLv3: Licencováno licencí AGPLv3 + Licensed under the AGPLv3: Licencováno pod licencí AGPLv3 Source code: Zdrojový kód Beta: Beta Donate: Přispět @@ -345,6 +345,7 @@ About: FreeTube Wiki: FreeTube Wiki Downloads / Changelog: Ke stažení / Seznam změn View License: Zobrazit licenci + Translate: Překlady Profile: Profile Select: 'Výběr profilu' All Channels: 'Všechny kanály' @@ -478,10 +479,10 @@ Video: Oct: 'Říjen' Nov: 'Listopad' Dec: 'Prosinec' - Second: 'Sekunda' - Seconds: 'Sekundy' - Minute: 'Minuta' - Minutes: 'Minuty' + Second: 'sekundou' + Seconds: 'sekundami' + Minute: 'minutou' + Minutes: 'minutami' Hour: 'hodinou' Hours: 'hodinami' Day: 'dnem' From e905ab835ce1975b48e56af54158391122212c50 Mon Sep 17 00:00:00 2001 From: alium Date: Sat, 16 Jan 2021 18:09:45 +0000 Subject: [PATCH 21/56] Translated using Weblate (Czech) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index 8bb892fa..2284e2a1 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -298,6 +298,8 @@ Settings: Proxy Port Number: Port proxy Proxy Host: Adresa proxy Proxy Protocol: Protokol proxy + Error getting network information. Is your proxy configured properly?: Chyba při + získávání informací o síti. Je vaše proxy správně nakonfigurována? About: #On About page About: 'O aplikaci' @@ -337,7 +339,7 @@ About: room rules: pravidla místnosti Please read the: Prosím, přečtěte si Chat on Matrix: Chat na síti Matrix - Mastodon: Mastodon + Mastodon: mastodon Email: Email Blog: Blog Website: Webová stránka @@ -346,6 +348,13 @@ About: Downloads / Changelog: Ke stažení / Seznam změn View License: Zobrazit licenci Translate: Překlady + these people and projects: těmto lidem a projektům + FreeTube is made possible by: FreeTube je možné udělat díky + Please check for duplicates before posting: Před odesláním zkontrolujte duplicity + GitHub issues: Chyby na GitHub + Report a problem: Nahlásit problém + Help: Pomoc + GitHub releases: Vydaní na GitHub Profile: Profile Select: 'Výběr profilu' All Channels: 'Všechny kanály' @@ -503,6 +512,8 @@ Video: Streamed on: Vysíláno Video has been saved: Video bylo uloženo Save Video: Uložit video + Video has been removed from your saved list: Video bylo odstraněno z vašeho uloženého + seznamu Videos: #& Sort By Sort By: From fb01b05d8dadcd6b399594e77725cff98ad912fd Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sat, 16 Jan 2021 23:08:14 +0000 Subject: [PATCH 22/56] Translated using Weblate (Hebrew) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/ --- static/locales/he.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/static/locales/he.yaml b/static/locales/he.yaml index 7d2ca33c..dc181509 100644 --- a/static/locales/he.yaml +++ b/static/locales/he.yaml @@ -344,6 +344,22 @@ About: Useful Links: קישורים שימושיים Help: עזרה Contact: יצירת קשר + these people and projects: האנשים והמיזמים האלו + FreeTube is made possible by: FreeTube זמין לך בזכות + Translate: תרגום + room rules: כללי החדר + Please read the: נא לקרוא את + Chat on Matrix: צ׳אט ב־Matrix + Mastodon: Mastodon + Please check for duplicates before posting: נא לבדוק כפילויות בטרם פרסום תקלה + GitHub issues: תקלות ב־GitHub + Report a problem: דיווח על תקלה + FreeTube Wiki: הוויקי של FreeTube + GitHub releases: מהדורות ב־GitHub + Downloads / Changelog: הורדות / יומן שינויים + View License: הצגת הרישיון + Licensed under the AGPLv3: בכפוף לרישיון AGPLv3 + Source code: קוד מקור Profile: Profile Select: 'בחירת פרופיל' All Channels: 'כל הערוצים' From 0507184e54c61543c3dbadf6d82695151c2c1500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Sun, 17 Jan 2021 08:25:47 +0000 Subject: [PATCH 23/56] Translated using Weblate (Turkish) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/tr/ --- static/locales/tr.yaml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/static/locales/tr.yaml b/static/locales/tr.yaml index 89460c70..df1fdbde 100644 --- a/static/locales/tr.yaml +++ b/static/locales/tr.yaml @@ -352,6 +352,23 @@ About: Useful Links: Faydalı Bağlantılar Help: Yardım Contact: İletişim + these people and projects: bu kişiler ve projeler + FreeTube is made possible by: FreeTube'e katkıda bulunanlar + Translate: Çevir + room rules: oda kuralları + Please read the: Lütfen okuyun + Chat on Matrix: Matrix'te sohbet et + Mastodon: Mastodon + Please check for duplicates before posting: Lütfen göndermeden önce yinelenmeleri + denetleyin + GitHub issues: GitHub sorunları + Report a problem: Sorun bildir + FreeTube Wiki: FreeTube Wiki + GitHub releases: GitHub yayınları + Downloads / Changelog: İndirmeler / Değişiklikler + View License: Lisansı Görüntüle + Licensed under the AGPLv3: AGPLv3 altında lisanslanmıştır + Source code: Kaynak kodları Profile: Profile Select: 'Profil Seçimi' All Channels: 'Tüm Kanallar' From 1d6e9e979ad4899013bfafda3984b479b5cf7208 Mon Sep 17 00:00:00 2001 From: Luca Date: Sun, 17 Jan 2021 12:39:40 +0100 Subject: [PATCH 24/56] Upstream fix for trending page --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1f13c28c..a12e9ff0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19242,9 +19242,9 @@ } }, "yt-trending-scraper": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/yt-trending-scraper/-/yt-trending-scraper-1.0.7.tgz", - "integrity": "sha512-X8Ur9glylaOIOxf7o/IrKo+OKTPNW7e1q2x+Kpq3QxvtQHeI3IaavI7LZ3RwWjruJzUkdLcvR+FwDjFs0PITzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/yt-trending-scraper/-/yt-trending-scraper-1.1.0.tgz", + "integrity": "sha512-9QCSbzKFMTHyvj9y8oRnRZcLH9aVK/8GcPWSAiayfOfswXDnLZYONqavy/04kz/nXZfZQeuIGMsxCW2RxokWlQ==", "requires": { "axios": "^0.21.1" }, diff --git a/package.json b/package.json index 3af81f55..7a12076b 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "yt-channel-info": "^1.2.0", "yt-comment-scraper": "^1.3.11", "yt-dash-manifest-generator": "^1.1.0", - "yt-trending-scraper": "1.0.7", + "yt-trending-scraper": "1.1.0", "yt-xml2vtt": "^1.2.0", "ytdl-core": "^4.4.3", "ytpl": "^2.0.4", From ce115d2737d1e9902746d5c79119967b4c5a16e0 Mon Sep 17 00:00:00 2001 From: Preston Date: Sun, 17 Jan 2021 11:09:51 -0500 Subject: [PATCH 25/56] Tweak aspect ratio logic and fix proxy logic --- .../components/ft-video-player/ft-video-player.js | 2 +- src/renderer/store/modules/ytdl.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 11e4ce87..7290bbeb 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -286,7 +286,7 @@ export default Vue.extend({ return } - if (videoWidth < videoHeight) { + if (videoWidth <= videoHeight) { this.player.fluid(false) this.player.aspectRatio('16:9') } diff --git a/src/renderer/store/modules/ytdl.js b/src/renderer/store/modules/ytdl.js index 647096c2..6ce2edd6 100644 --- a/src/renderer/store/modules/ytdl.js +++ b/src/renderer/store/modules/ytdl.js @@ -41,7 +41,7 @@ const actions = { duration: '' } - let agent = null + let agent = {} const settings = rootState.settings const useProxy = settings.useProxy @@ -161,10 +161,10 @@ const actions = { }) break } + } - options = { - requestOptions: { agent } - } + options = { + requestOptions: { agent } } let filter = await ytsr.getFilters(payload.query, options) From 15da4e470529dcbe960c1063c97328842a047a87 Mon Sep 17 00:00:00 2001 From: Preston Date: Sun, 17 Jan 2021 13:07:26 -0500 Subject: [PATCH 26/56] Fix linter warning --- src/renderer/components/ft-video-player/ft-video-player.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.vue b/src/renderer/components/ft-video-player/ft-video-player.vue index 80965573..06674ac6 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.vue +++ b/src/renderer/components/ft-video-player/ft-video-player.vue @@ -6,9 +6,9 @@ :poster="thumbnail" controls preload="auto" + :data-setup="JSON.stringify(dataSetup)" @touchstart="handleTouchStart" @touchend="handleTouchEnd" - :data-setup="JSON.stringify(dataSetup)" > Date: Sun, 17 Jan 2021 18:07:31 +0000 Subject: [PATCH 27/56] Translated using Weblate (English) Currently translated at 99.7% (441 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/en/ --- static/locales/en-US.yaml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index d7e278b6..9fd739f4 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -86,8 +86,12 @@ Most Popular: Most Popular Playlists: Playlists User Playlists: Your Playlists: Your Playlists - Playlist Message: This page is not reflective of fully working playlists. It only lists videos that you have saved or favorited. When the work has finished, all videos currently here will be migrated to a 'Favorites' playlist. - Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Your saved videos are empty. Click on the save button on the corner of a video to have it listed here + Playlist Message: This page is not reflective of fully working playlists. It only + lists videos that you have saved or favorited. When the work has finished, all + videos currently here will be migrated to a 'Favorites' playlist. + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Your + saved videos are empty. Click on the save button on the corner of a video to have + it listed here History: # On History Page History: History @@ -261,14 +265,16 @@ Settings: Proxy Protocol: Proxy Protocol Proxy Host: Proxy Host Proxy Port Number: Proxy Port Number - Clicking on Test Proxy will send a request to: Clicking on Test Proxy will send a request to + Clicking on Test Proxy will send a request to: Clicking on Test Proxy will send + a request to Test Proxy: Test Proxy Your Info: Your Info Ip: Ip Country: Country Region: Region City: City - Error getting network information. Is your proxy configured properly?: Error getting network information. Is your proxy configured properly? + Error getting network information. Is your proxy configured properly?: Error getting + network information. Is your proxy configured properly? About: #On About page About: About @@ -379,7 +385,8 @@ Video: Video has been removed from your history: Video has been removed from your history Save Video: Save Video Video has been saved: Video has been saved - Video has been removed from your saved list: Video has been removed from your saved list + Video has been removed from your saved list: Video has been removed from your saved + list Open in YouTube: Open in YouTube Copy YouTube Link: Copy YouTube Link Open YouTube Embedded Player: Open YouTube Embedded Player From e27bdb78d5d01243465ea98b0036f6fc2b2e385f Mon Sep 17 00:00:00 2001 From: Alexander Date: Sun, 17 Jan 2021 18:03:29 +0000 Subject: [PATCH 28/56] Translated using Weblate (German) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/ --- static/locales/de-DE.yaml | 47 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml index 95639468..cd4c2134 100644 --- a/static/locales/de-DE.yaml +++ b/static/locales/de-DE.yaml @@ -82,6 +82,13 @@ Most Popular: Am beliebtesten Playlists: Wiedergabelisten User Playlists: Your Playlists: Deine Wiedergabelisten + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Deine + gespeicherten Videos sind leer. Klicken Sie auf die Schaltfläche "Speichern" in + der Ecke eines Videos, damit es hier aufgelistet wird + Playlist Message: Diese Seite spiegelt nicht die vollständig funktionierenden Wiedergabelisten + wider. Sie listet nur Videos auf, die Sie gespeichert oder favorisiert haben. + Wenn die Arbeiten abgeschlossen sind, werden alle Videos, die sich derzeit hier + befinden, in eine Wiedergabeliste "Favoriten" migriert. History: # On History Page History: Verlauf @@ -272,6 +279,7 @@ Settings: Select Import Type: Wähle Importtyp Data Settings: Dateneinstellungen Check for Legacy Subscriptions: Prüfung auf Altabonnements + Manage Subscriptions: Abonnements verwalten Distraction Free Settings: Hide Live Chat: Live-Chat verbergen Hide Popular Videos: Beliebte Videos verbergen @@ -286,6 +294,22 @@ Settings: The app needs to restart for changes to take effect. Restart and apply change?: Um die Änderungen anzuwenden muss die Anwendung neustarten. Jetzt neustarten und Änderungen aktivieren? + Proxy Settings: + Ip: IP-Adresse + Error getting network information. Is your proxy configured properly?: Fehler + beim Abrufen von Netzwerkinformationen. Ist dein Proxy richtig konfiguriert? + City: Stadt + Region: Region / Bundesland + Country: Land / Nation + Your Info: Deine Info + Test Proxy: Proxy testen + Clicking on Test Proxy will send a request to: In dem du auf Proxy Testen klickst, + schickst du eine Anfrage an + Proxy Port Number: Proxy-Portnummer + Proxy Host: Proxy-Host + Proxy Protocol: Proxy-Protokoll + Enable Tor / Proxy: Tor / Proxy aktivieren + Proxy Settings: Proxy-Einstellungen About: #On About page About: Über @@ -338,12 +362,29 @@ About: Useful Links: Nützliche Links Help: Hilfe Contact: Kontakt + these people and projects: diesen Menschen und Projekten + FreeTube is made possible by: FreeTube wird ermöglicht von + Translate: Übersetzen + room rules: Raum-Regeln + Please read the: Bitte lese die + Chat on Matrix: Chatten bei Matrix + Mastodon: Mastodon + Please check for duplicates before posting: Bitte überprüfe vor dem absenden, ob + es Duplikate gibt + GitHub issues: GitHub Issues + Report a problem: Problem melden + FreeTube Wiki: FreeTube Wiki + GitHub releases: GitHub Veröffentlichungen + Downloads / Changelog: Downloads / Änderungsverlauf + View License: Lizenz einsehen + Licensed under the AGPLv3: Lizensiert unter der AGPLv3 + Source code: Quellcode Channel: Subscriber: Abonnement Subscribers: Abonnements Subscribe: Abonnieren Unsubscribe: Deabonnieren - Search Channel: Suche Kanal + Search Channel: Durchsuche Kanal Your search results have returned 0 results: Deine Suche hat 0 Ergebnisse geliefert Sort By: Sortiere nach Videos: @@ -455,6 +496,10 @@ Video: Open Channel in YouTube: Kanal auf YouTube öffnen Started streaming on: Streaming angefangen am Streamed on: Gestreamt am + Video has been removed from your saved list: Video wurde aus der Liste der gespeicherten + Videos entfernt + Video has been saved: Video wurde gespeichert + Save Video: Video speichern Videos: #& Sort By Sort By: From 8e1ad9126ec257893de18f502e567cc63d361b73 Mon Sep 17 00:00:00 2001 From: Kyotaro Iijima Date: Sun, 17 Jan 2021 17:53:34 +0000 Subject: [PATCH 29/56] Translated using Weblate (Japanese) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ja/ --- static/locales/ja.yaml | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/static/locales/ja.yaml b/static/locales/ja.yaml index 7309dba7..40861eef 100644 --- a/static/locales/ja.yaml +++ b/static/locales/ja.yaml @@ -78,6 +78,8 @@ Most Popular: '人気' Playlists: '再生リスト' User Playlists: Your Playlists: 'あなたの再生リスト' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: 保存した動画はありません。一覧に表示させるには、ビデオの角にある保存ボタンをクリックする + Playlist Message: このページは、完全に動作するプレイリストではありません。保存またはお気に入りと設定した動画のみが表示されます。操作が完了すると、現在ここにあるすべての動画は「お気に入り」のプレイリストに移動します。 History: # On History Page History: '履歴' @@ -250,6 +252,7 @@ Settings: Data Settings: データ設定 One or more subscriptions were unable to be imported: いくつかの登録チャンネルはインポートできませんでした Check for Legacy Subscriptions: 旧型式の登録チャンネルの確認 + Manage Subscriptions: 登録チャンネルの管理 Distraction Free Settings: Hide Live Chat: ライブチャットの非表示 Hide Popular Videos: 人気動画の非表示 @@ -262,6 +265,20 @@ Settings: Distraction Free Settings: 集中モード Hide Active Subscriptions: 使用中の登録チャンネルの非表示 The app needs to restart for changes to take effect. Restart and apply change?: 変更の反映には、アプリの再起動が必要です。再起動して変更を適用しますか? + Proxy Settings: + Error getting network information. Is your proxy configured properly?: ネットワーク情報の取得中にエラーが発生しました。プロキシーを正しく設定してますか? + City: 都市名 + Region: 地域 + Country: 国名 + Ip: Ip + Your Info: あなたの情報 + Test Proxy: テスト プロキシー + Clicking on Test Proxy will send a request to: テスト プロキシーをクリックして、送信するリクエスト先は + Proxy Port Number: プロキシーのポート番号 + Proxy Host: プロキシーのホスト + Proxy Protocol: プロキシーのプロトコル + Enable Tor / Proxy: Tor / プロキシーの有効化 + Proxy Settings: プロキシーの設定 About: #On About page About: 'About' @@ -290,6 +307,30 @@ About: Latest FreeTube News: 'FreeTube 新着情報' #On Channel Page + Donate: 寄付 + FreeTube is made possible by: FreeTube が実現できているのは + these people and projects: これらの人々とプロジェクト + Credits: クレジット + Translate: 翻訳 + room rules: ルームの規則 + Please read the: ご覧ください + Chat on Matrix: Matrix でチャット + Mastodon: Mastodon + Email: メール アドレス + Blog: ブログ + Website: WEB サイト + Please check for duplicates before posting: 投稿する前に重複を確認してください + GitHub issues: GitHub の課題ツール + Report a problem: 問題の報告 + FAQ: よくある質問 + FreeTube Wiki: FreeTube の Wiki + Help: ヘルプ + GitHub releases: GitHub リリース + Downloads / Changelog: ダウンロード / 変更ログ + View License: ライセンスの表示 + Licensed under the AGPLv3: AGPLv3 の下でライセンス供与 + Source code: ソースコード + Beta: ベータ Channel: Subscriber: '人の登録者' Subscribers: '人の登録者' @@ -399,6 +440,9 @@ Video: Open Channel in YouTube: YouTube でチャンネル表示 Started streaming on: ライブ配信の開始 Streamed on: ライブ配信 + Video has been removed from your saved list: 動画を保存一覧から削除しました + Video has been saved: ビデオを保存しました + Save Video: 動画の保存 Videos: #& Sort By Sort By: From 1cfb76ca727ddd5a189d49344943a156a97cc3ac Mon Sep 17 00:00:00 2001 From: Preston Date: Sun, 17 Jan 2021 17:31:45 -0500 Subject: [PATCH 30/56] Revert locale strings and test comment fix --- .../watch-video-comments/watch-video-comments.js | 4 +--- static/locales/en-US.yaml | 12 ++++-------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.js b/src/renderer/components/watch-video-comments/watch-video-comments.js index 9093dac0..b696370f 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.js +++ b/src/renderer/components/watch-video-comments/watch-video-comments.js @@ -153,9 +153,7 @@ export default Vue.extend({ modulePath = commentControllerRelativePath } - this.commentProcess = fork(path.join(__dirname, modulePath), ['args'], { - stdio: ['pipe', 'pipe', 'pipe', 'ipc'] - }) + this.commentProcess = fork(path.join(__dirname, modulePath)) this.commentProcess.on('message', (msg) => { if (msg.error === null) { diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index 9fd739f4..dc6390e8 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -89,8 +89,7 @@ User Playlists: Playlist Message: This page is not reflective of fully working playlists. It only lists videos that you have saved or favorited. When the work has finished, all videos currently here will be migrated to a 'Favorites' playlist. - Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Your - saved videos are empty. Click on the save button on the corner of a video to have + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Your saved videos are empty. Click on the save button on the corner of a video to have it listed here History: # On History Page @@ -265,16 +264,14 @@ Settings: Proxy Protocol: Proxy Protocol Proxy Host: Proxy Host Proxy Port Number: Proxy Port Number - Clicking on Test Proxy will send a request to: Clicking on Test Proxy will send - a request to + Clicking on Test Proxy will send a request to: Clicking on Test Proxy will send a request to Test Proxy: Test Proxy Your Info: Your Info Ip: Ip Country: Country Region: Region City: City - Error getting network information. Is your proxy configured properly?: Error getting - network information. Is your proxy configured properly? + Error getting network information. Is your proxy configured properly?: Error getting network information. Is your proxy configured properly? About: #On About page About: About @@ -385,8 +382,7 @@ Video: Video has been removed from your history: Video has been removed from your history Save Video: Save Video Video has been saved: Video has been saved - Video has been removed from your saved list: Video has been removed from your saved - list + Video has been removed from your saved list: Video has been removed from your saved list Open in YouTube: Open in YouTube Copy YouTube Link: Copy YouTube Link Open YouTube Embedded Player: Open YouTube Embedded Player From 0df235dc7e37db5741dfede2087d958b14d409b2 Mon Sep 17 00:00:00 2001 From: ma4ko Date: Mon, 18 Jan 2021 11:51:52 +0000 Subject: [PATCH 31/56] Translated using Weblate (Bulgarian) Currently translated at 99.7% (441 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bg/ --- static/locales/bg.yaml | 53 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/static/locales/bg.yaml b/static/locales/bg.yaml index d5419999..fffcfe24 100644 --- a/static/locales/bg.yaml +++ b/static/locales/bg.yaml @@ -88,6 +88,13 @@ Most Popular: 'Най-популярни' Playlists: 'Плейлисти' User Playlists: Your Playlists: 'Вашите плейлисти' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Запазените + ви видеоклипове са празни. Кликнете върху бутона за запазване в ъгъла на видеоклипа, + за да го добавите тук + Playlist Message: Тази страница не отразява напълно работещи плейлисти. В него са + изброени само видеоклипове, които сте запазили или избрали за любими. Когато работата + приключи, всички видеоклипове, които в момента са тук, ще бъдат мигрирани в плейлист + „Любими“. History: # On History Page History: 'История' @@ -243,6 +250,7 @@ Settings: Unknown data key: 'Непознат ключ данни' How do I import my subscriptions?: 'Как да внеса абонаментите си?' Check for Legacy Subscriptions: Проверка за стари абонаменти + Manage Subscriptions: Управление на абонаменти Advanced Settings: Advanced Settings: 'Разширени настройки' Enable Debug Mode (Prints data to the console): 'Активиране на режим за дебъгване @@ -280,8 +288,26 @@ Settings: Hide Video Likes And Dislikes: Скриване оценките на видеата Hide Video Views: Скриване броя показвания на видеата Distraction Free Settings: Настройки за неразсейване + Hide Active Subscriptions: Скриване на активни абонаменти The app needs to restart for changes to take effect. Restart and apply change?: Приложението трябва да се рестартира за да се приложат промените. Рестартиране? + Proxy Settings: + Error getting network information. Is your proxy configured properly?: Грешка + при получаване на информация за мрежата. Правилно ли е конфигуриран вашият прокси + сървър? + City: Град + Region: Регион + Country: Държава + Ip: Ip + Your Info: Вашата информация + Test Proxy: Тестово прокси + Clicking on Test Proxy will send a request to: Кликването върху тестово прокси + ще изпрати заявка до + Proxy Port Number: Номер на прокси порта + Proxy Host: Прокси хост + Proxy Protocol: Прокси протокол + Enable Tor / Proxy: Активирайте Tor / Proxy + Proxy Settings: Настройки на прокси About: #On About page About: 'Относно' @@ -313,6 +339,29 @@ About: Latest FreeTube News: 'Последни FreeTube новини' + Donate: Дарете + these people and projects: тези хора и проекти + FreeTube is made possible by: FreeTube е възможен чрез + Translate: Превод + room rules: правилата за стаите + Please read the: Моля, прочетете + Chat on Matrix: Чат в Matrix + Mastodon: Mastodon + Email: Имейл + Blog: Блог + Website: Уебсайт + Please check for duplicates before posting: Моля, проверете за дубликати преди публикуване + GitHub issues: GitHub проблеми + Report a problem: Съобщете за проблем + FAQ: ЧЗВ + FreeTube Wiki: FreeTube Wiki + Help: Помощ + GitHub releases: GitHub издания + Downloads / Changelog: Изтегляния / Дневник с промени + View License: Преглед на лиценза + Licensed under the AGPLv3: Лицензиран съгласно AGPLv3 + Source code: Програмен код + Beta: Бета Profile: Profile Select: 'Избор на профил' All Channels: 'Всички канали' @@ -473,6 +522,10 @@ Video: Open Channel in YouTube: Отваряне на канала в YouTube Started streaming on: Начало на излъчването Streamed on: Излъчване + Video has been removed from your saved list: Видеоклипът е премахнат от вашия запазен + списък + Video has been saved: Видеото е запазено + Save Video: Запазване на видео Videos: #& Sort By Sort By: From d1e9f2c2736f65c37d8d0a96aca4b4c99a7335bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20W=C3=B3jcicki?= Date: Mon, 18 Jan 2021 20:41:27 +0000 Subject: [PATCH 32/56] Translated using Weblate (Polish) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pl/ --- static/locales/pl.yaml | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/static/locales/pl.yaml b/static/locales/pl.yaml index a6c2b0d0..66c82985 100644 --- a/static/locales/pl.yaml +++ b/static/locales/pl.yaml @@ -82,6 +82,13 @@ Most Popular: 'Popularne' Playlists: 'Playlisty' User Playlists: Your Playlists: 'Twoje playlisty' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Nie + masz zachowanych filmów. Kliknij przycisk „Zachowaj” w rogu filmu, aby został + tu wymieniony. + Playlist Message: Ta strona nie odzwierciedla w pełni działających playlist. Są + tu jedynie wymienione filmy, które zachowałeś lub oznaczyłeś jako ulubione. Kiedy + prace nad tą stroną zostaną zakończone, wszystkie filmy tu obecne zostaną przeniesione + do playlisty „Ulubione”. History: # On History Page History: 'Historia' @@ -269,7 +276,7 @@ Settings: Select Import Type: Wybierz typ importu Data Settings: Ustawienia danych One or more subscriptions were unable to be imported: Nie można było zaimportować - conajmniej jednej subskrypcji + co najmniej jednej subskrypcji Check for Legacy Subscriptions: Sprawdź subskrypcje ze starej wersji Manage Subscriptions: Zarządzaj subskrypcjami Distraction Free Settings: @@ -351,6 +358,22 @@ About: Useful Links: Przydatne linki Help: Pomoc Contact: Kontakt + these people and projects: tym ludziom i projektom + Translate: Przetłumacz + room rules: zasady pokoju + Chat on Matrix: Czat na Matrix + Mastodon: Mastodon + Please read the: Proszę przeczytać + Please check for duplicates before posting: Proszę poszukać duplikatów przed wysłaniem + GitHub issues: problemy na GitHub + Report a problem: Zgłoś problem + FreeTube Wiki: Wiki FreeTube + GitHub releases: wydania na GitHub + Downloads / Changelog: Wydania / Lista zmian + View License: Zobacz licencję + Licensed under the AGPLv3: Na licencji AGPLv3 + Source code: Kod źródłowy + FreeTube is made possible by: FreeTube powstał dzięki Channel: Subscriber: 'Subskrybent/ka' Subscribers: 'subskrybentów' @@ -469,6 +492,10 @@ Video: Open Channel in YouTube: Otwórz kanał na stronie YouTube Started streaming on: Rozpoczęto transmitowanie dnia Streamed on: Transmitowane dnia + Video has been removed from your saved list: Film został usunięty z twojej listy + zachowanych + Video has been saved: Film został zachowany + Save Video: Zachowaj film Videos: #& Sort By Sort By: From 3f918f45f0d3cc49bf5f833180ebd8dffbb64d42 Mon Sep 17 00:00:00 2001 From: "Omer I.S" Date: Tue, 19 Jan 2021 12:17:06 +0000 Subject: [PATCH 33/56] Translated using Weblate (Hebrew) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/ --- static/locales/he.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/static/locales/he.yaml b/static/locales/he.yaml index dc181509..3d60b940 100644 --- a/static/locales/he.yaml +++ b/static/locales/he.yaml @@ -103,13 +103,13 @@ Settings: General Settings: 'הגדרות כלליות' Check for Updates: 'בדוק אם קיימים עדכונים' Check for Latest Blog Posts: 'בדוק אם קיימים פוסטים חדשים בבלוג' - Fallback to Non-Preferred Backend on Failure: 'לסגת לממשק נסתר שאינו מועדף בעת + Fallback to Non-Preferred Backend on Failure: 'נסיגה לקצה אחורי שאינו מועדף בעת כשל' Enable Search Suggestions: 'אפשר הצעות לחיפוש' Default Landing Page: 'דף נחיתה כבררת מחדל' Locale Preference: 'העדפת שפה' Preferred API Backend: - Preferred API Backend: 'ממשק API נסתר מועדף' + Preferred API Backend: 'קצה API אחורי מועדף' Local API: 'API מקומי' Invidious API: 'API של Invidious' Video View Type: @@ -159,7 +159,7 @@ Settings: Disable Smooth Scrolling: השבתת גלילה חלקה Player Settings: Player Settings: 'הגדרת נגן' - Force Local Backend for Legacy Formats: 'לכפות את הממשק הנסתר המקומי לתצורות המיושנות' + Force Local Backend for Legacy Formats: 'כפיית הקצה האחורי לניגון בפורמטים ישנים' Play Next Video: 'ניגון הסרטון הבא' Turn on Subtitles by Default: 'הפעלת כתוביות כברירת מחדל' Autoplay Videos: 'הפעלה אוטומטית לסרטונים' @@ -272,8 +272,8 @@ Settings: Distraction Free Settings: Hide Live Chat: הסתרת צ׳אט חי Hide Popular Videos: הסתרת סרטונים נפוצים - Hide Trending Videos: הסתרת סרטונים חמים - Hide Recommended Videos: הסתרת סרטונים מומלצים + Hide Trending Videos: הסתרת הסרטונים החמים + Hide Recommended Videos: הסתרת הסרטונים המומלצים Hide Comment Likes: הסתרת לייקים על תגובות Hide Channel Subscribers: הסתרת מנויי הערוץ Hide Video Likes And Dislikes: הסתרת לייקים ודיסלייקים לסרטון @@ -460,7 +460,7 @@ Video: Enable Live Chat: 'אפשר צ''אט' Live Chat is currently not supported in this build.: 'הצ''אט כרגע לא נתמך בגרסה זו.' - 'Chat is disabled or the Live Stream has ended.': 'הצ''אט נחסם או שהשידור החי נגמר.' + 'Chat is disabled or the Live Stream has ended.': 'הצ׳אט נחסם או שהשידור החי נגמר.' Live chat is enabled. Chat messages will appear here once sent.: 'הצ''אט מופעל. ההודעות יופיעו פה כאשר יישלחו.' 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'מנגנון @@ -610,7 +610,7 @@ Tooltips: Fallback to Non-Preferred Backend on Failure: כאשר ל־API המועדף עליך יש בעיה, FreeTube ינסה להשתמש ב־API בעדיפות הנמוכה יותר באופן אוטומטי כשיטת נסיגה כאשר האפשרות פעילה - Preferred API Backend: נא לבחור את המנגנון בו ישתמש FreeTube כדי לקבל נתונים. + Preferred API Backend: נא לבחור את הקצה האחורי לשימוש FreeTube כדי לקבל נתונים. ה־API המקומי הוא מחלץ מובנה. ה־API של Invidious דורש התחברות לשרת Invidious. Region for Trending: מגמות אזוריות מאפשר לך לבחור סרטונים חמים של איזו מדינה מעניין אותך לראות. לא כל המדינות שמוצגות אכן נתמכות על ידי YouTube @@ -619,7 +619,7 @@ Tooltips: Thumbnail Preference: כל התמונות הייצוגיות ברחבי FreeTube תוחלפנה בתמונית מתוך הסרטון במקום התמונה הייצוגית כבררת המחדל Player Settings: - Force Local Backend for Legacy Formats: עובד רק כאשר ה־API של Invidious הוא בררת + Force Local Backend for Legacy Formats: עובד רק כאשר ה־API של Invidious הוא ברירת המחדל שלך. כאשר האפשרות פעילה, ה־API המקומי יופעל וישתמש בתצורות המיושנות שהוחזרו על ידיו במקום באלו שהוחזרו על ידי Invidious. מועיל כאשר הסרטונים שמוחזרים על ידי Invidious לא מתנגנים עקב מגבלות חוקיות במדינה From fa7c3b171427bd9a88018d370473bc1c5af08275 Mon Sep 17 00:00:00 2001 From: "Omer I.S" Date: Tue, 19 Jan 2021 20:51:11 +0000 Subject: [PATCH 34/56] Translated using Weblate (Hebrew) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/ --- static/locales/he.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/static/locales/he.yaml b/static/locales/he.yaml index 3d60b940..b0e70d4c 100644 --- a/static/locales/he.yaml +++ b/static/locales/he.yaml @@ -103,13 +103,12 @@ Settings: General Settings: 'הגדרות כלליות' Check for Updates: 'בדוק אם קיימים עדכונים' Check for Latest Blog Posts: 'בדוק אם קיימים פוסטים חדשים בבלוג' - Fallback to Non-Preferred Backend on Failure: 'נסיגה לקצה אחורי שאינו מועדף בעת - כשל' + Fallback to Non-Preferred Backend on Failure: 'נסיגה למנגנון שאינו מועדף בעת כשל' Enable Search Suggestions: 'אפשר הצעות לחיפוש' Default Landing Page: 'דף נחיתה כבררת מחדל' Locale Preference: 'העדפת שפה' Preferred API Backend: - Preferred API Backend: 'קצה API אחורי מועדף' + Preferred API Backend: 'מנגנון API מועדף' Local API: 'API מקומי' Invidious API: 'API של Invidious' Video View Type: @@ -159,7 +158,7 @@ Settings: Disable Smooth Scrolling: השבתת גלילה חלקה Player Settings: Player Settings: 'הגדרת נגן' - Force Local Backend for Legacy Formats: 'כפיית הקצה האחורי לניגון בפורמטים ישנים' + Force Local Backend for Legacy Formats: 'כפיית המנגנון לניגון בפורמטים ישנים' Play Next Video: 'ניגון הסרטון הבא' Turn on Subtitles by Default: 'הפעלת כתוביות כברירת מחדל' Autoplay Videos: 'הפעלה אוטומטית לסרטונים' @@ -610,8 +609,8 @@ Tooltips: Fallback to Non-Preferred Backend on Failure: כאשר ל־API המועדף עליך יש בעיה, FreeTube ינסה להשתמש ב־API בעדיפות הנמוכה יותר באופן אוטומטי כשיטת נסיגה כאשר האפשרות פעילה - Preferred API Backend: נא לבחור את הקצה האחורי לשימוש FreeTube כדי לקבל נתונים. - ה־API המקומי הוא מחלץ מובנה. ה־API של Invidious דורש התחברות לשרת Invidious. + Preferred API Backend: נא לבחור את המנגנון לשימוש FreeTube כדי לקבל נתונים. ה־API + המקומי הוא מחלץ מובנה. ה־API של Invidious דורש התחברות לשרת Invidious. Region for Trending: מגמות אזוריות מאפשר לך לבחור סרטונים חמים של איזו מדינה מעניין אותך לראות. לא כל המדינות שמוצגות אכן נתמכות על ידי YouTube Invidious Instance: העותק של Invidious שאליו FreeTube יתחבר לפניות API. מחיקת From 76c2ebb0a89bdf279922209dc4b7ddf81138d0a5 Mon Sep 17 00:00:00 2001 From: Jun Kyung Bang Date: Wed, 20 Jan 2021 05:07:29 +0000 Subject: [PATCH 35/56] Translated using Weblate (Korean) Currently translated at 35.2% (156 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ko/ --- static/locales/ko.yaml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/static/locales/ko.yaml b/static/locales/ko.yaml index 6b4ddb4f..a4551d2c 100644 --- a/static/locales/ko.yaml +++ b/static/locales/ko.yaml @@ -74,20 +74,22 @@ Subscriptions: Subscriptions: '구독' Latest Subscriptions: '최근 구독' This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: '이 - 프로필에서 너무 많이 구독했습니다. RSS가 제한을 피할 수 있게 강제합니다' + 프로필에서 최대 구독 제한을 초과 하였습니다. RSS 피드 구독 수신으로 전환 합니다.' 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': '구독한 - 채널이 없습니다. 여기서 채널을 보려면 구독을 추가하세요.' - 'Getting Subscriptions. Please wait.': '구독중입니다. 잠시만 기다려주세요.' - Refresh Subscriptions: '구독 새로고침' + 채널이 없습니다. 구독 피드를 보려면 원하시는 채널을 구독하세요' + 'Getting Subscriptions. Please wait.': '구독 목록을 가져오는 중입니다. 잠시만 기다려 주세요.' + Refresh Subscriptions: '구독 피드 새로 고침' Load More Videos: '더 많은 동영상 불러오기' -Trending: '트렌드' +Trending: '트렌딩' Most Popular: '인기 동영상' -Playlists: '플레이리스트' +Playlists: '재생 목록' User Playlists: - Your Playlists: '나의 플레이리스트' + Your Playlists: '나의 재생 목록' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: 재생 + 목록이 없습니다. 영상의 오른쪽 아래에 있는 저장 버튼을 사용하여 재생 목록에 영상을 추가하세요 History: # On History Page - History: '기록' + History: '재생 기록' Watch History: '시청 기록' Your history list is currently empty.: '기록이 없습니다.' Settings: From baaf3f67adbd7efe43f36923294a218e0da65368 Mon Sep 17 00:00:00 2001 From: max Date: Wed, 20 Jan 2021 13:40:50 +0000 Subject: [PATCH 36/56] Translated using Weblate (Spanish) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/ --- static/locales/es.yaml | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/static/locales/es.yaml b/static/locales/es.yaml index 3fcae4da..6f4412c4 100644 --- a/static/locales/es.yaml +++ b/static/locales/es.yaml @@ -80,6 +80,11 @@ Most Popular: 'Más populares' Playlists: 'Playlists' User Playlists: Your Playlists: 'Tus listas de reproducción' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Tus + favoritos están vacios. Haz click en la estrella de cada video para añadirlo aquí + Playlist Message: Esta página no refleja el estado final de las playlists, solo + muestra los videos guardados. En futuras actualizaciones, estos videos migrarán + a la playlist "Favoritos". History: # On History Page History: 'Historial' @@ -233,6 +238,7 @@ Settings: One or more subscriptions were unable to be imported: Una o varias de las suscripciones no han podido ser importadas Check for Legacy Subscriptions: Comprobar suscripciones Legacy + Manage Subscriptions: Administrar suscripciones Advanced Settings: Advanced Settings: 'Ajustes avanzados' Enable Debug Mode (Prints data to the console): 'Activar modo de depuración (muestra @@ -273,6 +279,22 @@ Settings: Hide Active Subscriptions: Ocultar suscripciones activas The app needs to restart for changes to take effect. Restart and apply change?: ¿Quieres reiniciar FreeTube ahora para aplicar los cambios? + Proxy Settings: + Error getting network information. Is your proxy configured properly?: Error al + obtener información sobre la red. ¿Has configurado el Proxy correctamente? + City: Ciudad + Region: Región + Country: País + Ip: IP + Your Info: Tu información + Test Proxy: Probar Proxy + Clicking on Test Proxy will send a request to: Al cliquear en "Probar Proxy" se + enviará una solicitud a + Proxy Port Number: Número de puerto del Proxy + Proxy Host: Host del Proxy + Proxy Protocol: Protocolo Proxy + Enable Tor / Proxy: Habilitar Tor / Proxy + Proxy Settings: Proxy About: #On About page About: 'Acerca de' @@ -304,6 +326,31 @@ About: Latest FreeTube News: 'Últimas noticias de FreeTube' + Donate: Donar + these people and projects: estas personas y proyectos + FreeTube is made possible by: FreeTube es posible gracias a + Credits: Créditos + Translate: Traducir + room rules: reglas de la sala + Please read the: Por favor, lee el + Chat on Matrix: Chat en Matrix + Mastodon: Mastodon + Email: Correo electrónico + Blog: Blog + Website: Página web + Please check for duplicates before posting: Por favor, antes de publicar asegúrate + de no duplicar temas + GitHub issues: Sugerencias en GitHub + Report a problem: Informar de un problema + FAQ: Preguntas frecuentes + FreeTube Wiki: Wiki de FreeTube + Help: Ayuda + GitHub releases: Lanzamientos de GitHub + Downloads / Changelog: Descargas / Changelog + View License: Ver licencia + Licensed under the AGPLv3: Licencia AGPLv3 + Source code: Código fuente + Beta: Beta Profile: All Channels: 'Todos los canales' Profile Manager: 'Administrador de perfiles' @@ -464,6 +511,10 @@ Video: Open Channel in YouTube: Visitar canal en YouTube Started streaming on: Comenzó a transmitir en Streamed on: Transmitido en + Video has been removed from your saved list: El video ha sido eliminado de tu lista + de guardados + Video has been saved: El video ha sido guardado + Save Video: Guardiar video Videos: #& Sort By Sort By: From 4cec171bc89044905da28f2c0e5f59fde6b2324f Mon Sep 17 00:00:00 2001 From: max Date: Wed, 20 Jan 2021 13:59:12 +0000 Subject: [PATCH 37/56] Translated using Weblate (Swedish) Currently translated at 100.0% (442 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sv/ --- static/locales/sv.yaml | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/static/locales/sv.yaml b/static/locales/sv.yaml index 9d985a3d..937a9ffa 100644 --- a/static/locales/sv.yaml +++ b/static/locales/sv.yaml @@ -87,6 +87,12 @@ Most Popular: 'Mest populära' Playlists: 'Spellistor' User Playlists: Your Playlists: 'Dina spellistor' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Dina + sparade videor är tomma. Klicka på sparknappen på hörnet av en video för att få + den listad här + Playlist Message: Den här sidan är inte reflekterande av fullt fungerande spellistor. + Den listar bara videor som du har sparat eller favorited. När arbetet är klart + kommer alla videor som för närvarande här att migreras till en spellista för 'Favoriter'. History: # On History Page History: 'Historik' @@ -237,6 +243,7 @@ Settings: Unknown data key: 'Okänd datanyckel' How do I import my subscriptions?: 'Hur importerar jag mina prenumerationer?' Check for Legacy Subscriptions: Sök efter Legacy prenumerationer + Manage Subscriptions: Hantera prenumerationer Advanced Settings: Advanced Settings: 'Avancerade inställningar' Enable Debug Mode (Prints data to the console): 'Aktivera felsökningsläge (Skriver @@ -274,8 +281,25 @@ Settings: Hide Channel Subscribers: Dölj kanalprenumeranter Hide Video Views: Dölj videovisningar Distraction Free Settings: Distraktionsfri + Hide Active Subscriptions: Dölj aktiva prenumerationer The app needs to restart for changes to take effect. Restart and apply change?: Starta om FreeTube nu för att tillämpa ändringarna? + Proxy Settings: + Error getting network information. Is your proxy configured properly?: Fel uppstod + när nätverksinformationen skulle komma. Är din proxy konfigurerad på rätt sätt? + City: Stad + Region: Område + Country: Land + Ip: IP + Your Info: Din info + Test Proxy: Testa proxy + Clicking on Test Proxy will send a request to: Om du klickar på TestProxy skickas + en begäran till + Proxy Port Number: Proxy-portnummer + Proxy Host: Proxy Host + Proxy Protocol: Proxy-protokoll + Enable Tor / Proxy: Aktivera Tor / Proxy + Proxy Settings: Proxy About: #On About page About: 'Om' @@ -307,6 +331,31 @@ About: Latest FreeTube News: 'Senaste FreeTube Nyheter' + Donate: Donera + these people and projects: dessa människor och projekt + FreeTube is made possible by: FreeTube möjliggörs av + Credits: Krediter + Translate: Översätta + room rules: rumsregler + Please read the: Vänligen läs + Chat on Matrix: Chatta på Matrix + Mastodon: Mastodon + Email: E-post + Blog: Blogg + Website: Webbsida + Please check for duplicates before posting: Vänligen kontrollera om dubbletter innan + du postar + GitHub issues: GitHub-problem + Report a problem: Rapportera ett problem + FAQ: Frågor och svar + FreeTube Wiki: FreeTube Wiki + Help: Hjälp + GitHub releases: GitHub releases + Downloads / Changelog: Nedladdningar / Changelog + View License: Visa licens + Licensed under the AGPLv3: Licensierad under AGPLv3 + Source code: källkod + Beta: Beta Profile: Profile Select: 'Välj profil' All Channels: 'Alla kanaler' @@ -463,6 +512,12 @@ Video: Open Channel in Invidious: Öppna kanalen i Invidious Copy YouTube Channel Link: Kopiera YouTube-kanallänk Open Channel in YouTube: Öppna kanal i YouTube + Started streaming on: Började streamas på + Streamed on: Strömmas på + Video has been removed from your saved list: Videon har tagits bort från din sparade + lista + Video has been saved: Videon har sparats + Save Video: Spara video Videos: #& Sort By Sort By: From b7846493ef07b364cd81f2c6fa2a3f81b2ee6aa8 Mon Sep 17 00:00:00 2001 From: Preston Date: Wed, 20 Jan 2021 10:54:44 -0500 Subject: [PATCH 38/56] Update comment scraper logic --- package-lock.json | 24 +-- package.json | 2 +- .../watch-video-comments.js | 157 ++++++++---------- .../watch-video-comments.vue | 6 +- 4 files changed, 85 insertions(+), 104 deletions(-) diff --git a/package-lock.json b/package-lock.json index a12e9ff0..f00129dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9014,8 +9014,7 @@ "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, "highlight.js": { "version": "9.18.3", @@ -9167,11 +9166,6 @@ "util.promisify": "1.0.0" } }, - "html2json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html2json/-/html2json-1.0.2.tgz", - "integrity": "sha1-ydbSAvplQCOGwgKzRc9RvOgO0e8=" - }, "htmlparser2": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", @@ -12586,6 +12580,14 @@ } } }, + "node-html-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-2.0.2.tgz", + "integrity": "sha512-N2000Ho9dkabvRZcyiwm6zOpdiAzxAxcJ0Z0WNoh/yXHG0YCuiK2WpNQfN+9vheLNY/h/It11Gk7uwT4QTfk9Q==", + "requires": { + "he": "1.2.0" + } + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -19191,12 +19193,12 @@ } }, "yt-comment-scraper": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/yt-comment-scraper/-/yt-comment-scraper-1.3.11.tgz", - "integrity": "sha512-F7a1/BAjASsX3MheAqO1uvY0sPfstLKmkHETiFyDe3Hp+qUMyniuPmAvXrZPOanvBHyb6sH5+d3wVj/S9dD/ug==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yt-comment-scraper/-/yt-comment-scraper-2.0.0.tgz", + "integrity": "sha512-goa9Z5REPXRKddKO6MJUzaa/cBgdQPj/akIGbyb1R5KnOgl4bLy6d4nD1pVUhLkP0Z8aEqwJAMmYpPBjeXTOIg==", "requires": { "axios": "^0.21.1", - "html2json": "^1.0.2" + "node-html-parser": "^2.0.2" }, "dependencies": { "axios": { diff --git a/package.json b/package.json index 7a12076b..40caf017 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "youtube-chat": "^1.1.0", "youtube-suggest": "^1.1.0", "yt-channel-info": "^1.2.0", - "yt-comment-scraper": "^1.3.11", + "yt-comment-scraper": "^2.0.0", "yt-dash-manifest-generator": "^1.1.0", "yt-trending-scraper": "1.1.0", "yt-xml2vtt": "^1.2.0", diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.js b/src/renderer/components/watch-video-comments/watch-video-comments.js index b696370f..da403115 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.js +++ b/src/renderer/components/watch-video-comments/watch-video-comments.js @@ -5,10 +5,7 @@ import FtLoader from '../../components/ft-loader/ft-loader.vue' import FtSelect from '../../components/ft-select/ft-select.vue' import FtTimestampCatcher from '../../components/ft-timestamp-catcher/ft-timestamp-catcher.vue' import autolinker from 'autolinker' -import { fork } from 'child_process' -import path from 'path' -// eslint-disable-next-line -import commentControllerRelativePath from 'file-loader!../../../process/comment-module-controller.js' +import ytcm from 'yt-comment-scraper' export default Vue.extend({ name: 'WatchVideoComments', @@ -93,8 +90,9 @@ export default Vue.extend({ this.sortNewest = !this.sortNewest switch (this.backendPreference) { case 'local': - console.log('In handle') - this.sortingChanged = true + this.isLoading = true + this.commentData = [] + this.nextPageToken = undefined this.getCommentDataLocal() break case 'invidious': @@ -122,7 +120,6 @@ export default Vue.extend({ this.showToast({ message: this.$t('Comments.There are no more comments for this video') }) - this.getCommentData() } else { this.getCommentData() } @@ -144,88 +141,72 @@ export default Vue.extend({ }, getCommentDataLocal: function () { - // we need the path from the working directory to fork correctly - if (this.commentProcess === null) { - let modulePath - if (this.isDev) { - modulePath = '../../../process/comment-module-controller.js' - } else { - modulePath = commentControllerRelativePath - } - - this.commentProcess = fork(path.join(__dirname, modulePath)) - - this.commentProcess.on('message', (msg) => { - if (msg.error === null) { - const commentJSON = JSON.parse(msg.comments) - if (commentJSON === null) { - this.showToast({ - message: this.$t('Comments.No more comments available'), - time: 7000, - action: () => { - } - }) - this.isLoading = false - } else { - // console.log(msg.comments) - const commentData = commentJSON.map((comment) => { - comment.showReplies = false - comment.dataType = 'local' - this.toLocalePublicationString({ - publishText: (comment.time + ' ago'), - templateString: this.$t('Video.Publicationtemplate'), - timeStrings: this.$t('Video.Published'), - liveStreamString: this.$t('Video.Watching'), - upcomingString: this.$t('Video.Published.Upcoming'), - isLive: false, - isUpcoming: false, - isRSS: false - }).then((data) => { - comment.time = data - }).catch((error) => { - console.error(error) - }) - if (this.hideCommentLikes) { - comment.likes = null - } - comment.text = autolinker.link(comment.text) - comment.replies.forEach((reply) => { - reply.text = autolinker.link(reply.text) - }) - return comment - }) - if (this.sortingChanged) { - this.commentData = [] - this.sortingChanged = false - } - this.commentData = this.commentData.concat(commentData) - this.isLoading = false - this.showComments = true - this.nextPageToken = '' - } - } else { - console.log(msg.error) - const errorMessage = this.$t('Local API Error (Click to copy)') - this.showToast({ - message: `${errorMessage}: ${msg.error}`, - time: 10000, - action: () => { - navigator.clipboard.writeText(msg.error) - } - }) - if (this.backendFallback && this.backendPreference === 'local') { - this.showToast({ - message: this.$t('Falling back to Invidious API') - }) - this.getCommentDataInvidious() - } else { - this.isLoading = false - } - } - }) + const payload = { + videoId: this.id, + setCookie: false, + sortByNewest: this.sortNewest, + continuation: this.nextPageToken ? this.nextPageToken : undefined } - this.commentProcess.send({ id: this.id, sortNewest: this.sortNewest }) + ytcm.getComments(payload).then((response) => { + console.log(response) + const commentData = response.comments.map((comment) => { + comment.showReplies = false + comment.dataType = 'local' + this.toLocalePublicationString({ + publishText: (comment.time + ' ago'), + templateString: this.$t('Video.Publicationtemplate'), + timeStrings: this.$t('Video.Published'), + liveStreamString: this.$t('Video.Watching'), + upcomingString: this.$t('Video.Published.Upcoming'), + isLive: false, + isUpcoming: false, + isRSS: false + }).then((data) => { + comment.time = data + }).catch((error) => { + console.error(error) + }) + if (this.hideCommentLikes) { + comment.likes = null + } + comment.text = autolinker.link(comment.text) + + if (comment.numReplies > 0) { + comment.replies.forEach((reply) => { + reply.text = autolinker.link(reply.text) + }) + } + + return comment + }) + if (this.sortingChanged) { + this.commentData = [] + this.sortingChanged = false + } + this.commentData = this.commentData.concat(commentData) + this.isLoading = false + this.showComments = true + this.nextPageToken = response.continuation + }).catch((err) => { + console.log(err) + const errorMessage = this.$t('Local API Error (Click to copy)') + this.showToast({ + message: `${errorMessage}: ${err}`, + time: 10000, + action: () => { + navigator.clipboard.writeText(err) + } + }) + if (this.backendFallback && this.backendPreference === 'local') { + this.showToast({ + message: this.$t('Falling back to Invidious API') + }) + this.getCommentDataInvidious() + } else { + this.isLoading = false + } + }) }, getCommentDataInvidious: function () { @@ -267,7 +248,6 @@ export default Vue.extend({ return comment }) - console.log(commentData) this.commentData = this.commentData.concat(commentData) this.nextPageToken = response.continuation this.isLoading = false @@ -327,7 +307,6 @@ export default Vue.extend({ return comment }) - console.log(commentData) this.commentData[index].replies = commentData this.commentData[index].showReplies = true this.isLoading = false diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.vue b/src/renderer/components/watch-video-comments/watch-video-comments.vue index bb2ff828..5c490d71 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.vue +++ b/src/renderer/components/watch-video-comments/watch-video-comments.vue @@ -1,8 +1,5 @@ From 81130f89f95d4869dcc2bf9ba2ebcc1228b97a93 Mon Sep 17 00:00:00 2001 From: Preston Date: Wed, 20 Jan 2021 13:57:36 -0500 Subject: [PATCH 39/56] Update aspect ratio logic --- src/renderer/components/ft-video-player/ft-video-player.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 7290bbeb..560fd504 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -286,7 +286,7 @@ export default Vue.extend({ return } - if (videoWidth <= videoHeight) { + if ((videoHeight - videoWidth) <= 240) { this.player.fluid(false) this.player.aspectRatio('16:9') } From 1375df17d95e3816ddb24af738c5c1ea80e3fcd1 Mon Sep 17 00:00:00 2001 From: Preston Date: Thu, 21 Jan 2021 10:28:45 -0500 Subject: [PATCH 40/56] Update dependencies and fix aspect ratio logic again --- package-lock.json | 224 +++++++++++------- package.json | 24 +- .../ft-video-player/ft-video-player.js | 2 +- 3 files changed, 146 insertions(+), 104 deletions(-) diff --git a/package-lock.json b/package-lock.json index f00129dc..810c79c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1287,19 +1287,20 @@ } }, "@electron/get": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", - "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.3.tgz", + "integrity": "sha512-NFwSnVZQK7dhOYF1NQCt+HGqgL1aNdj0LUSx75uCqnZJqyiWCVdAMFV4b4/kC8HjUJAnsvdSEmjEt4G2qNQ9+Q==", "dev": true, "requires": { "debug": "^4.1.1", "env-paths": "^2.2.0", + "filenamify": "^4.1.0", "fs-extra": "^8.1.0", "global-agent": "^2.0.2", "global-tunnel-ng": "^2.7.1", "got": "^9.6.0", "progress": "^2.0.3", - "sanitize-filename": "^1.6.2", + "semver": "^6.2.0", "sumchecker": "^3.0.1" }, "dependencies": { @@ -1317,6 +1318,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, @@ -1387,9 +1394,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -1399,7 +1406,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, @@ -1957,28 +1964,28 @@ } }, "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.3", + "@nodelib/fs.stat": "2.0.4", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", "dev": true }, "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.3", + "@nodelib/fs.scandir": "2.1.4", "fastq": "^1.6.0" } }, @@ -2321,13 +2328,13 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.13.0.tgz", - "integrity": "sha512-ygqDUm+BUPvrr0jrXqoteMqmIaZ/bixYOc3A4BRwzEPTZPi6E+n44rzNZWaB0YvtukgP+aoj0i/fyx7FkM2p1w==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.0.tgz", + "integrity": "sha512-IJ5e2W7uFNfg4qh9eHkHRUCbgZ8VKtGwD07kannJvM5t/GU8P8+24NX8gi3Hf5jST5oWPY8kyV1s/WtfiZ4+Ww==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.13.0", - "@typescript-eslint/scope-manager": "4.13.0", + "@typescript-eslint/experimental-utils": "4.14.0", + "@typescript-eslint/scope-manager": "4.14.0", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -2363,28 +2370,28 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.13.0.tgz", - "integrity": "sha512-/ZsuWmqagOzNkx30VWYV3MNB/Re/CGv/7EzlqZo5RegBN8tMuPaBgNK6vPBCQA8tcYrbsrTdbx3ixMRRKEEGVw==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.0.tgz", + "integrity": "sha512-6i6eAoiPlXMKRbXzvoQD5Yn9L7k9ezzGRvzC/x1V3650rUk3c3AOjQyGYyF9BDxQQDK2ElmKOZRD0CbtdkMzQQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.13.0", - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/typescript-estree": "4.13.0", + "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/typescript-estree": "4.14.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.13.0.tgz", - "integrity": "sha512-KO0J5SRF08pMXzq9+abyHnaGQgUJZ3Z3ax+pmqz9vl81JxmTTOUfQmq7/4awVfq09b6C4owNlOgOwp61pYRBSg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.0.tgz", + "integrity": "sha512-sUDeuCjBU+ZF3Lzw0hphTyScmDDJ5QVkyE21pRoBo8iDl7WBtVFS+WDN3blY1CH3SBt7EmYCw6wfmJjF0l/uYg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.13.0", - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/typescript-estree": "4.13.0", + "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/typescript-estree": "4.14.0", "debug": "^4.1.1" }, "dependencies": { @@ -2406,29 +2413,29 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.13.0.tgz", - "integrity": "sha512-UpK7YLG2JlTp/9G4CHe7GxOwd93RBf3aHO5L+pfjIrhtBvZjHKbMhBXTIQNkbz7HZ9XOe++yKrXutYm5KmjWgQ==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.0.tgz", + "integrity": "sha512-/J+LlRMdbPh4RdL4hfP1eCwHN5bAhFAGOTsvE6SxsrM/47XQiPSgF5MDgLyp/i9kbZV9Lx80DW0OpPkzL+uf8Q==", "dev": true, "requires": { - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/visitor-keys": "4.13.0" + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/visitor-keys": "4.14.0" } }, "@typescript-eslint/types": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.13.0.tgz", - "integrity": "sha512-/+aPaq163oX+ObOG00M0t9tKkOgdv9lq0IQv/y4SqGkAXmhFmCfgsELV7kOCTb2vVU5VOmVwXBXJTDr353C1rQ==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.0.tgz", + "integrity": "sha512-VsQE4VvpldHrTFuVPY1ZnHn/Txw6cZGjL48e+iBxTi2ksa9DmebKjAeFmTVAYoSkTk7gjA7UqJ7pIsyifTsI4A==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.13.0.tgz", - "integrity": "sha512-9A0/DFZZLlGXn5XA349dWQFwPZxcyYyCFX5X88nWs2uachRDwGeyPz46oTsm9ZJE66EALvEns1lvBwa4d9QxMg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.0.tgz", + "integrity": "sha512-wRjZ5qLao+bvS2F7pX4qi2oLcOONIB+ru8RGBieDptq/SudYwshveORwCVU4/yMAd4GK7Fsf8Uq1tjV838erag==", "dev": true, "requires": { - "@typescript-eslint/types": "4.13.0", - "@typescript-eslint/visitor-keys": "4.13.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/visitor-keys": "4.14.0", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -2464,12 +2471,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.13.0.tgz", - "integrity": "sha512-6RoxWK05PAibukE7jElqAtNMq+RWZyqJ6Q/GdIxaiUj2Ept8jh8+FUVlbq9WxMYxkmEOPvCE5cRSyupMpwW31g==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.0.tgz", + "integrity": "sha512-MeHHzUyRI50DuiPgV9+LxcM52FCJFYjJiWHtXlbyC27b80mfOwKeiKI+MHOTEpcpfmoPFm/vvQS88bYIx6PZTA==", "dev": true, "requires": { - "@typescript-eslint/types": "4.13.0", + "@typescript-eslint/types": "4.14.0", "eslint-visitor-keys": "^2.0.0" } }, @@ -7130,13 +7137,13 @@ } }, "eslint": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz", - "integrity": "sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -7160,7 +7167,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -7278,9 +7285,9 @@ } }, "eslint-config-prettier": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.1.0.tgz", - "integrity": "sha512-9sm5/PxaFG7qNJvJzTROMM1Bk1ozXVTKI0buKOyb0Bsr1hrwi0H/TzxF/COtf1uxikIK8SwhX7K6zg78jAzbeA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", + "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==", "dev": true }, "eslint-config-standard": { @@ -8020,9 +8027,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -8045,9 +8052,9 @@ "dev": true }, "fastq": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", - "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -8143,6 +8150,23 @@ "minimatch": "^3.0.4" } }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", + "dev": true + }, + "filenamify": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.2.0.tgz", + "integrity": "sha512-pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA==", + "dev": true, + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -8326,9 +8350,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "flush-write-stream": { @@ -8694,9 +8718,9 @@ }, "dependencies": { "core-js": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.2.tgz", - "integrity": "sha512-FfApuSRgrR6G5s58casCBd9M2k+4ikuu4wbW6pJyYU7bd9zvFc9qf7vr5xmrZOhT9nn+8uwlH1oRR9jTnFoA3A==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", + "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==", "dev": true, "optional": true }, @@ -14781,9 +14805,9 @@ "dev": true }, "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", "dev": true }, "run-queue": { @@ -14981,9 +15005,9 @@ } }, "sass": { - "version": "1.32.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.4.tgz", - "integrity": "sha512-N0BT0PI/t3+gD8jKa83zJJUb7ssfQnRRfqN+GIErokW6U4guBpfYl8qYB+OFLEho+QvnV5ZH1R9qhUC/Z2Ch9w==", + "version": "1.32.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.5.tgz", + "integrity": "sha512-kU1yJ5zUAmPxr7f3q0YXTAd1oZjSR1g3tYyv+xu0HZSl5JiNOaE987eiz7wCUvbm4I9fGWGU2TgApTtcP4GMNQ==", "dev": true, "requires": { "chokidar": ">=2.0.0 <4.0.0" @@ -16040,6 +16064,15 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, "style-loader": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", @@ -16608,6 +16641,15 @@ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, "truncate-utf8-bytes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", @@ -17345,9 +17387,9 @@ "integrity": "sha1-55jgMYC4kzU53v4x+S5TuSQrlAY=" }, "vue-eslint-parser": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.3.0.tgz", - "integrity": "sha512-n5PJKZbyspD0+8LnaZgpEvNCrjQx1DyDHw8JdWwoxhhC+yRip4TAvSDpXGf9SWX6b0umeB5aR61gwUo6NVvFxw==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.4.1.tgz", + "integrity": "sha512-AFvhdxpFvliYq1xt/biNBslTHE/zbEvSnr1qfHA/KxRIpErmEDrQZlQnvEexednRHmLfDNOMuDYwZL5xkLzIXQ==", "dev": true, "requires": { "debug": "^4.1.1", @@ -17405,9 +17447,9 @@ "dev": true }, "vue-i18n": { - "version": "8.22.3", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.22.3.tgz", - "integrity": "sha512-Vhyx7sZEmmW/aZLkzSlXei08Rv3hTondx4J9wbOjnThocTIK1QiXV6QRdT4BTnhT24JixDSf6kGkxqCXSaJ3Jw==" + "version": "8.22.4", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.22.4.tgz", + "integrity": "sha512-XLI5s0AdqMP2Lf4I4CmdmOq8kjb5DDFGR77wAuxCfpEuYSfhTRyyx6MetgZMiL6Lxa0DasjBOiOcciU3NkL3/Q==" }, "vue-loader": { "version": "15.9.6", @@ -19272,9 +19314,9 @@ "integrity": "sha512-4ZzqHIUfdPFa0Xb+8M3vsbokXooOhQuFuXa8bw4CJ5V0xWjRA/CPlZ3u0VTYoce4sUmMgoOVN7Xcj8NpUNujXA==" }, "ytdl-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.4.3.tgz", - "integrity": "sha512-0GexY2dMk0pvIE0UAB5GPiyaNjiawqDi5eUCUHW7CP1ZNyEco8Lct8/3AsI6aO0EQLGK774ocDvWxOE7W0qrTg==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.4.4.tgz", + "integrity": "sha512-/IFJTM5RjN20q6RVaE/9rv9tKoBtx95lKZCI/pUPDiDzu9fXyuPbkVzEQJmsYEwzi0zdv4d6iJy0gHWz49o6mw==", "requires": { "m3u8stream": "^0.8.3", "miniget": "^4.0.0", @@ -19318,9 +19360,9 @@ } }, "ytsr": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ytsr/-/ytsr-3.2.1.tgz", - "integrity": "sha512-iN2woG5bfXiAWs9Tv6MPVGx3f1zdpeshyevGAbm0ggCYLmOnSNIA3lkgqlkfa0CH5WKIB/yjwRPU1hc49AUN+g==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/ytsr/-/ytsr-3.2.2.tgz", + "integrity": "sha512-0Yt00R/LfP2tlPos6xCLazdkSJYfTD15VY/2oqbZvS0Ym8+4rMyXRg0AWJlmCJIhPsTPzc1nDjZvhDo/6A0/WA==", "requires": { "miniget": "^4.1.0" }, diff --git a/package.json b/package.json index 40caf017..ca57bf37 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "videojs-vtt-thumbnails-freetube": "0.0.15", "vue": "^2.6.12", "vue-electron": "^1.0.6", - "vue-i18n": "^8.22.3", + "vue-i18n": "^8.22.4", "vue-observe-visibility": "^1.0.0", "vue-router": "^3.4.9", "vuex": "^3.6.0", @@ -48,12 +48,12 @@ "youtube-suggest": "^1.1.0", "yt-channel-info": "^1.2.0", "yt-comment-scraper": "^2.0.0", - "yt-dash-manifest-generator": "^1.1.0", + "yt-dash-manifest-generator": "1.1.0", "yt-trending-scraper": "1.1.0", "yt-xml2vtt": "^1.2.0", - "ytdl-core": "^4.4.3", + "ytdl-core": "^4.4.4", "ytpl": "^2.0.4", - "ytsr": "^3.2.1" + "ytsr": "^3.2.2" }, "description": "A private YouTube client", "devDependencies": { @@ -62,21 +62,21 @@ "@babel/plugin-proposal-object-rest-spread": "^7.12.1", "@babel/preset-env": "^7.12.11", "@babel/preset-typescript": "^7.12.7", - "@typescript-eslint/eslint-plugin": "^4.13.0", - "@typescript-eslint/parser": "^4.13.0", + "@typescript-eslint/eslint-plugin": "^4.14.0", + "@typescript-eslint/parser": "^4.14.0", "acorn": "^8.0.4", "babel-eslint": "^10.1.0", "babel-loader": "^8.2.2", "copy-webpack-plugin": "6.4.0", "css-loader": "^5.0.1", "devtron": "^1.4.0", - "electron": "^11.1.1", + "electron": "11.1.1", "electron-builder": "^22.9.1", "electron-builder-squirrel-windows": "^22.10.4", "electron-debug": "^3.2.0", "electron-rebuild": "^2.3.4", - "eslint": "^7.17.0", - "eslint-config-prettier": "^7.1.0", + "eslint": "^7.18.0", + "eslint-config-prettier": "^7.2.0", "eslint-config-standard": "^16.0.2", "eslint-plugin-import": "^2.22.1", "eslint-plugin-node": "^11.1.0", @@ -84,7 +84,7 @@ "eslint-plugin-promise": "^4.2.1", "eslint-plugin-standard": "^5.0.0", "eslint-plugin-vue": "^7.4.1", - "fast-glob": "^3.2.4", + "fast-glob": "^3.2.5", "file-loader": "^6.2.0", "html-webpack-plugin": "^4.5.1", "jest": "^26.6.3", @@ -93,14 +93,14 @@ "node-loader": "^1.0.2", "npm-run-all": "^4.1.5", "prettier": "^2.2.1", - "sass": "^1.32.4", + "sass": "^1.32.5", "sass-loader": "^10.1.1", "style-loader": "^2.0.0", "tree-kill": "1.2.2", "typescript": "^4.1.3", "url-loader": "^4.1.1", "vue-devtools": "^5.1.4", - "vue-eslint-parser": "^7.3.0", + "vue-eslint-parser": "^7.4.1", "vue-loader": "^15.9.6", "vue-style-loader": "^4.1.2", "vue-template-compiler": "^2.6.12", diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 560fd504..5ce0c362 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -286,7 +286,7 @@ export default Vue.extend({ return } - if ((videoHeight - videoWidth) <= 240) { + if ((videoWidth - videoHeight) <= 240) { this.player.fluid(false) this.player.aspectRatio('16:9') } From 6245f8b42347c4f9c556c6337b404b78fded81ed Mon Sep 17 00:00:00 2001 From: Preston Date: Thu, 21 Jan 2021 13:35:13 -0500 Subject: [PATCH 41/56] Reverse saved videos list to show latest on top --- src/renderer/views/UserPlaylists/UserPlaylists.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/renderer/views/UserPlaylists/UserPlaylists.js b/src/renderer/views/UserPlaylists/UserPlaylists.js index d90c83d6..ac88c437 100644 --- a/src/renderer/views/UserPlaylists/UserPlaylists.js +++ b/src/renderer/views/UserPlaylists/UserPlaylists.js @@ -28,10 +28,11 @@ export default Vue.extend({ }, activeData: function () { + const data = [].concat(this.favoritesPlaylist.videos).reverse() if (this.favoritesPlaylist.videos.length < this.dataLimit) { - return this.favoritesPlaylist.videos + return data } else { - return this.favoritesPlaylist.videos.slice(0, this.dataLimit) + return data.slice(0, this.dataLimit) } } }, From bb2dee36b3f65c8691e85a3b5d566fd8028da4b1 Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Thu, 21 Jan 2021 20:19:25 +0100 Subject: [PATCH 42/56] Fix OPML import issue (#963) * Fix OPML import issue * Fixes linting errors --- .../components/data-settings/data-settings.js | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/renderer/components/data-settings/data-settings.js b/src/renderer/components/data-settings/data-settings.js index 975543a3..1e89a684 100644 --- a/src/renderer/components/data-settings/data-settings.js +++ b/src/renderer/components/data-settings/data-settings.js @@ -8,7 +8,7 @@ import FtPrompt from '../ft-prompt/ft-prompt.vue' import { remote } from 'electron' import fs from 'fs' -import opmlToJson from 'opml-to-json' +import { opmlToJSON } from 'opml-to-json' import ytch from 'yt-channel-info' const app = remote.app @@ -357,17 +357,7 @@ export default Vue.extend({ return } - opmlToJson(data, async (err, json) => { - if (err) { - console.log(err) - console.log('error reading') - const message = this.$t('Settings.Data Settings.Invalid subscriptions file') - this.showToast({ - message: `${message}: ${err}` - }) - return - } - + opmlToJSON(data).then((json) => { let feedData = json.children[0].children if (typeof feedData === 'undefined') { @@ -442,6 +432,13 @@ export default Vue.extend({ this.updateShowProgressBar(false) } }) + }).catch((err) => { + console.log(err) + console.log('error reading') + const message = this.$t('Settings.Data Settings.Invalid subscriptions file') + this.showToast({ + message: `${message}: ${err}` + }) }) }) }) From 2ac6a816994a3a749bd9f8334b117693ddd08422 Mon Sep 17 00:00:00 2001 From: Preston Date: Thu, 21 Jan 2021 14:57:57 -0500 Subject: [PATCH 43/56] Remove unneeded video speed option and prevent searches past end of search --- src/renderer/components/ft-video-player/ft-video-player.js | 1 - static/locales/en-US.yaml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 5ce0c362..4009c081 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -118,7 +118,6 @@ export default Vue.extend({ 2.25, 2.5, 2.75, - 2.75, 3 ] } diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index dc6390e8..bbd71b3d 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -69,6 +69,7 @@ Search Filters: Search Results: Search Results Fetching results. Please wait: Fetching results. Please wait Fetch more results: Fetch more results + There are no more results for this search: There are no more results for this search # Sidebar Subscriptions: # On Subscriptions Page From 3365ae455b963f1a835988e91ae19a1f7a7fcea2 Mon Sep 17 00:00:00 2001 From: Jakub Date: Thu, 21 Jan 2021 19:42:56 +0000 Subject: [PATCH 44/56] Translated using Weblate (Slovak) Currently translated at 95.2% (421 of 442 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sk/ --- static/locales/sk.yaml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/static/locales/sk.yaml b/static/locales/sk.yaml index fc2cb5e9..268d2513 100644 --- a/static/locales/sk.yaml +++ b/static/locales/sk.yaml @@ -80,6 +80,11 @@ Most Popular: 'Najpopulárnejšie' Playlists: 'Zoznamy' User Playlists: Your Playlists: 'Vaše zoznamy' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Vaše + uložené videá sú prázdne. Kliknutím na tlačidlo uložiť v rohu videa ho tu zobrazíte + Playlist Message: Táto stránka neodráža plne funkčné zoznamy videí. Uvádza iba zoznam + videí, ktoré ste uložili alebo zaradili medzi obľúbené. Po dokončení práce sa + všetky videá, ktoré sa tu nachádzajú, migrujú do zoznamu „Obľúbené“. History: # On History Page History: 'História' @@ -252,6 +257,7 @@ Settings: Select Export Type: Vybrať typ exportu Select Import Type: Vybrať typ importu Data Settings: Nastavenia dát + Manage Subscriptions: Spravovať odbery Distraction Free Settings: Hide Live Chat: Skryť živý chat Hide Popular Videos: Skryť populárne videá @@ -262,6 +268,7 @@ Settings: Hide Video Likes And Dislikes: Skryť palce hore a dolu na videách Hide Video Views: Skryť počet zhliadnutí Distraction Free Settings: Nastavenia nerušenia + Hide Active Subscriptions: Skryť aktívne odbery Privacy Settings: Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Naozaj chcete odstrániť všetky odbery a profily? Toto je nenávratná akcia. @@ -279,6 +286,22 @@ Settings: Search cache has been cleared: Vyrovnávacia pamäť vyhľadávania bola vymazaná The app needs to restart for changes to take effect. Restart and apply change?: Aplikácia požaduje reštartovanie aby sa prejavili zmeny. Reštartovať a aplikovať zmeny? + Proxy Settings: + Error getting network information. Is your proxy configured properly?: Chyba pri + získavaní informácií o sieti. Je váš server proxy správne nakonfigurovaný? + City: Mesto + Region: Región + Country: Krajina + Ip: Internetový Protokol + Your Info: Informácie o Vás + Test Proxy: Vyskúšať proxy + Clicking on Test Proxy will send a request to: Kliknutím na "Vyskúšať Proxy" pošlete + žiadosť do + Proxy Port Number: Číslo portu proxy servera + Proxy Host: Proxy Hosť + Proxy Protocol: Proxy Protokol + Enable Tor / Proxy: Povoliť Tor / server Proxy + Proxy Settings: Nastavenia servera proxy About: #On About page About: 'O FreeTube' @@ -311,6 +334,14 @@ About: Latest FreeTube News: 'Najnovšie správy o FreeTube' #On Channel Page + FreeTube Wiki: Wiki FreeTube + Help: Pomoc + GitHub releases: Vydania na GitHube + Downloads / Changelog: Súbory na stiahnutie / Zoznam zmien + View License: Zobraziť licenciu + Licensed under the AGPLv3: Na základe licencie AGPLv3 + Beta: Testovacia verzia + Source code: Zdrojový kód Channel: Subscriber: 'Odberateľ' Subscribers: 'Odberateľov' From 3150f25506f835770044754e4d1862c7c94d674b Mon Sep 17 00:00:00 2001 From: Preston Date: Thu, 21 Jan 2021 16:20:42 -0500 Subject: [PATCH 45/56] Forgot to commit search file and fix PiP logic when history is disabled --- src/renderer/views/Search/Search.js | 32 ++++++++++++++++++++++------- src/renderer/views/Watch/Watch.js | 6 +++++- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/renderer/views/Search/Search.js b/src/renderer/views/Search/Search.js index c0328929..16855e45 100644 --- a/src/renderer/views/Search/Search.js +++ b/src/renderer/views/Search/Search.js @@ -16,6 +16,8 @@ export default Vue.extend({ data: function () { return { isLoading: false, + apiUsed: 'local', + amountOfResults: 0, query: '', searchPage: 1, nextPageRef: '', @@ -122,6 +124,10 @@ export default Vue.extend({ return } + this.apiUsed = 'local' + + this.amountOfResults = result.results + const returnData = result.items.filter((item) => { if (typeof item !== 'undefined') { return item.type === 'video' || item.type === 'channel' || item.type === 'playlist' @@ -179,7 +185,8 @@ export default Vue.extend({ query: payload.query, data: this.shownResults, searchSettings: this.searchSettings, - nextPageRef: result.continuation + nextPageRef: result.continuation, + amountOfResults: result.results } this.$store.commit('addToSessionSearchHistory', historyPayload) @@ -228,6 +235,8 @@ export default Vue.extend({ return } + this.apiUsed = 'invidious' + console.log(result) const returnData = result.filter((item) => { @@ -287,13 +296,21 @@ export default Vue.extend({ console.log(payload) - this.showToast({ - message: this.$t('Search Filters["Fetching results. Please wait"]') - }) - - if (this.nextPageRef !== '') { - this.performSearchLocal(payload) + if (this.apiUsed === 'local') { + if (this.amountOfResults <= this.shownResults.length) { + this.showToast({ + message: this.$t('Search Filters.There are no more results for this search') + }) + } else { + this.showToast({ + message: this.$t('Search Filters["Fetching results. Please wait"]') + }) + this.performSearchLocal(payload) + } } else { + this.showToast({ + message: this.$t('Search Filters["Fetching results. Please wait"]') + }) this.performSearchInvidious(payload) } }, @@ -302,6 +319,7 @@ export default Vue.extend({ this.query = history.query this.shownResults = history.data this.searchSettings = history.searchSettings + this.amountOfResults = history.amountOfResults if (typeof (history.nextPageRef) !== 'undefined') { this.nextPageRef = history.nextPageRef diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index e1e19785..68388530 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -864,12 +864,16 @@ export default Vue.extend({ console.log('update watch progress') this.updateWatchProgress(payload) } + } + + if (!this.isUpcoming && !this.isLoading) { + const player = this.$refs.videoPlayer.player if (player !== null && !player.paused() && player.isInPictureInPicture()) { const playerId = this.videoId setTimeout(() => { player.play() - player.on('leavepictureinpicture', () => { + player.on('leavepictureinpicture', (event) => { const watchTime = player.currentTime() if (this.$route.fullPath.includes('/watch')) { const routeId = this.$route.params.id From 1574ee3c5582438dbcef5f6157a7739d3bb04d50 Mon Sep 17 00:00:00 2001 From: Jakub Date: Thu, 21 Jan 2021 20:09:35 +0000 Subject: [PATCH 46/56] Translated using Weblate (Slovak) Currently translated at 100.0% (443 of 443 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/sk/ --- static/locales/sk.yaml | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/static/locales/sk.yaml b/static/locales/sk.yaml index 268d2513..6ddb8ef9 100644 --- a/static/locales/sk.yaml +++ b/static/locales/sk.yaml @@ -63,6 +63,8 @@ Search Filters: Fetching results. Please wait: 'Načítavajú sa výsledky. Prosím čakajte' Fetch more results: 'Načítať viac výsledkov' # Sidebar + There are no more results for this search: Pre toto hľadanie nie sú k dispozícii + žiadne ďalšie výsledky Subscriptions: # On Subscriptions Page Subscriptions: 'Odbery' @@ -342,6 +344,23 @@ About: Licensed under the AGPLv3: Na základe licencie AGPLv3 Beta: Testovacia verzia Source code: Zdrojový kód + GitHub issues: Problémy z GitHubu + Report a problem: Nahlásiť problém + FAQ: Otázky a odpovede + Donate: Darujte + FreeTube is made possible by: FreeTube umožňujú + these people and projects: títo ľudia a projekty + Credits: Zásluhy + Translate: Preložiť + room rules: pravidlá miestností + Please read the: Prečítajte si + Chat on Matrix: Napíšte nám na Matrix-e + Mastodon: Mastodon + Email: Elektronická pošta + Blog: Blog + Website: Webstránka + Please check for duplicates before posting: Pred odoslaním prosím skontrolujte duplicitné + otázky Channel: Subscriber: 'Odberateľ' Subscribers: 'Odberateľov' @@ -372,6 +391,7 @@ Channel: Added channel to your subscriptions: Kanál bol pridaný k vašim odberom Channel has been removed from your subscriptions: Kanál bol odstránený z vašich odberov + Removed subscription from $ other channel(s): Odstránené predplatné z $ iných kanálov Video: Mark As Watched: 'Označiť ako zhliadnuté' Remove From History: 'Vymazať z histórie' @@ -383,7 +403,7 @@ Video: Copy YouTube Embedded Player Link: 'Skopírovať link na vložený prehrávač Youtube' Open in Invidious: 'Otvoriť v Invidious' Copy Invidious Link: 'Skopírovať Invidious linku' - View: '' + View: 'Pozrieť' Views: 'Zhliadnutí' # Context is "X People Watching" Watching: 'Sleduje' @@ -457,6 +477,9 @@ Video: Open Channel in Invidious: Otvoriť kanál v Invidious Copy YouTube Channel Link: Skopírovať Youtube link na kanál Open Channel in YouTube: Otvoriť kanál v Youtube + Video has been removed from your saved list: Video odstránené z uložených + Video has been saved: Video uložené + Save Video: Uložiť Video Videos: #& Sort By Sort By: From 5af086bb6fe1f77ad65ebb58d06b9adbc36823b6 Mon Sep 17 00:00:00 2001 From: Dragibus Noir Date: Thu, 21 Jan 2021 22:03:29 +0000 Subject: [PATCH 47/56] Translated using Weblate (French) Currently translated at 100.0% (443 of 443 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/ --- static/locales/fr-FR.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/fr-FR.yaml b/static/locales/fr-FR.yaml index 4b401dde..f67a8fe5 100644 --- a/static/locales/fr-FR.yaml +++ b/static/locales/fr-FR.yaml @@ -63,6 +63,8 @@ Search Filters: Fetching results. Please wait: 'Récupération des résultats. Veuillez patienter' Fetch more results: 'Montrer plus de résultats' # Sidebar + There are no more results for this search: Il n'y a plus de résultats pour cette + recherche Subscriptions: # On Subscriptions Page Subscriptions: 'Abonnements' From e735378a1a20ac58fd1422fee769920e720f28c4 Mon Sep 17 00:00:00 2001 From: Preston Date: Thu, 21 Jan 2021 21:21:33 -0500 Subject: [PATCH 48/56] Update Invidious instance site and add link directly to site --- .../components/general-settings/general-settings.js | 2 +- .../components/general-settings/general-settings.vue | 7 +++++++ static/locales/en-US.yaml | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/renderer/components/general-settings/general-settings.js b/src/renderer/components/general-settings/general-settings.js index 76b81273..7d015b95 100644 --- a/src/renderer/components/general-settings/general-settings.js +++ b/src/renderer/components/general-settings/general-settings.js @@ -138,7 +138,7 @@ export default Vue.extend({ } }, mounted: function () { - const requestUrl = 'https://instances.invidio.us/instances.json' + const requestUrl = 'https://api.invidious.io/instances.json' $.getJSON(requestUrl, (response) => { console.log(response) const instances = response.filter((instance) => { diff --git a/src/renderer/components/general-settings/general-settings.vue b/src/renderer/components/general-settings/general-settings.vue index 08cfa2fa..1f3499e9 100644 --- a/src/renderer/components/general-settings/general-settings.vue +++ b/src/renderer/components/general-settings/general-settings.vue @@ -97,6 +97,13 @@ @input="handleInvidiousInstanceInput" /> + + + {{ $t('Settings.General Settings.View all Invidious instance information') }} + + diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index bbd71b3d..410d9431 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -127,6 +127,7 @@ Settings: End: End 'Invidious Instance (Default is https://invidious.snopyta.org)': Invidious Instance (Default is https://invidious.snopyta.org) + View all Invidious instance information: View all Invidious instance information Region for Trending: Region for Trending #! List countries Theme Settings: From e4b847c03defcd8b772cf8ba7ad8fcc035df94b1 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Fri, 22 Jan 2021 01:25:46 +0000 Subject: [PATCH 49/56] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (443 of 443 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/ --- static/locales/zh-TW.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index eff21b17..bceb1a83 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -62,6 +62,7 @@ Search Filters: Fetching results. Please wait: '擷取結果中。請稍候' Fetch more results: '擷取更多結果' # Sidebar + There are no more results for this search: 此搜尋無更多結果 Subscriptions: # On Subscriptions Page Subscriptions: '訂閱' From 7054bd74a51aff1fff828c74696334a79e744c24 Mon Sep 17 00:00:00 2001 From: Kyotaro Iijima Date: Fri, 22 Jan 2021 04:35:48 +0000 Subject: [PATCH 50/56] Translated using Weblate (Japanese) Currently translated at 100.0% (444 of 444 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ja/ --- static/locales/ja.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/ja.yaml b/static/locales/ja.yaml index 40861eef..d64d0e35 100644 --- a/static/locales/ja.yaml +++ b/static/locales/ja.yaml @@ -62,6 +62,7 @@ Search Filters: Fetching results. Please wait: '結果の取得中。お待ちください' Fetch more results: 'もっと見る' # Sidebar + There are no more results for this search: 検索結果は、これ以上ありません Subscriptions: # On Subscriptions Page Subscriptions: '登録チャンネル' @@ -114,6 +115,7 @@ Settings: #! List countries Check for Latest Blog Posts: 新着ブログの確認 Check for Updates: 最新版の確認 + View all Invidious instance information: すべての Invidious インスタンス情報の表示 Theme Settings: Theme Settings: 'テーマの設定' Match Top Bar with Main Color: '上部バーをメイン カラーと同じにする' From 1579f6f69539a1190c10aad3cc2f79feeb606eaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Fri, 22 Jan 2021 06:31:12 +0000 Subject: [PATCH 51/56] Translated using Weblate (Turkish) Currently translated at 100.0% (444 of 444 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/tr/ --- static/locales/tr.yaml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/static/locales/tr.yaml b/static/locales/tr.yaml index df1fdbde..1a1e1e8b 100644 --- a/static/locales/tr.yaml +++ b/static/locales/tr.yaml @@ -70,6 +70,7 @@ Search Filters: Fetching results. Please wait: 'Sonuçlar yükleniyor. Lütfen bekleyin' Fetch more results: 'Daha fazla sonuç yükle' # Sidebar + There are no more results for this search: Bu arama için başka sonuç yok Subscriptions: # On Subscriptions Page Subscriptions: 'Abonelikler' @@ -124,10 +125,11 @@ Settings: Beginning: 'Başlangıç' Middle: 'Orta' End: 'Bitiş' - 'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious Oluşumu + 'Invidious Instance (Default is https://invidious.snopyta.org)': 'Invidious Örneği (Varsayılan https://invidious.snopyta.org)' - Region for Trending: 'Trendler İçin Ülke Tercihi' + Region for Trending: 'Trendler İçin Bölge Tercihi' #! List countries + View all Invidious instance information: Tüm Invidious örnek bilgilerini görüntüle Theme Settings: Theme Settings: 'Tema Ayarları' Match Top Bar with Main Color: 'Üst Barı Ana Renk ile Eşleştir' @@ -135,9 +137,9 @@ Settings: Base Theme: 'Uygulama Teması' Black: 'Siyah' Dark: 'Koyu' - Light: 'Aydınlık' + Light: 'Açık' Main Color Theme: - Main Color Theme: 'Ana Renk' + Main Color Theme: 'Ana Renk Teması' Red: 'Kırmızı' Pink: 'Pembe' Purple: 'Mor' @@ -154,7 +156,7 @@ Settings: Amber: 'Kehribar Rengi' Orange: 'Turuncu' Deep Orange: 'Koyu Turuncu' - Secondary Color Theme: 'İkincil Renk' + Secondary Color Theme: 'İkincil Renk Teması' #* Main Color Theme UI Scale: Kullanıcı Arayüzü Ölçeği Expand Side Bar by Default: Yan Çubuğu Öntanımlı Olarak Genişlet @@ -173,7 +175,7 @@ Settings: Default Playback Rate: 'Varsayılan Oynatma Hızı' Default Video Format: Default Video Format: 'Varsayılan Video Biçimi' - Dash Formats: 'Dash Biçimi' + Dash Formats: 'Dash Biçimleri' Legacy Formats: 'Eski Biçimler' Audio Formats: 'Ses Biçimi' Default Quality: @@ -642,9 +644,9 @@ Tooltips: tarafından döndürülen videolar ülke kısıtlamaları nedeniyle oynatılmadığında yardımcı olur General Settings: - Invidious Instance: FreeTube'un API çağrıları için bağlanacağı Invidious sunucusu. - Aralarından seçim yapabileceğiniz herkese açık sunucuların bir listesini görmek - için geçerli sunucuyu temizleyin + Invidious Instance: FreeTube'un API çağrıları için bağlanacağı Invidious örneği. + Aralarından seçim yapabileceğiniz herkese açık örneklerin bir listesini görmek + için geçerli örneği temizleyin Thumbnail Preference: FreeTube'daki tüm küçük resimler, öntanımlı küçük resim yerine videonun bir karesiyle değiştirilecektir Fallback to Non-Preferred Backend on Failure: Etkinleştirildiğinde, tercih ettiğiniz From f85fba109ffc9262800742cbb480adc0b001a5fe Mon Sep 17 00:00:00 2001 From: ovari Date: Fri, 22 Jan 2021 07:29:33 +0000 Subject: [PATCH 52/56] Translated using Weblate (Hungarian) Currently translated at 93.6% (416 of 444 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hu/ --- static/locales/hu.yaml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/static/locales/hu.yaml b/static/locales/hu.yaml index 0a45206e..96ed8f37 100644 --- a/static/locales/hu.yaml +++ b/static/locales/hu.yaml @@ -71,6 +71,7 @@ Search Filters: Fetching results. Please wait: 'Eredmények lekérése. Kis türelmet kérünk' Fetch more results: 'További eredmények lekérése' # Sidebar + There are no more results for this search: Nincs több találat erre a keresésre Subscriptions: # On Subscriptions Page Subscriptions: 'Feliratkozások' @@ -90,6 +91,13 @@ Most Popular: 'Legnépszerűbbek' Playlists: 'Lejátszási listák' User Playlists: Your Playlists: 'A lejátszási listáid' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: A + mentett videók üresek. Kattintson a videó sarkában található mentés gombra, hogy + itt szerepeljen + Playlist Message: Ez az oldal nem tükrözi a teljesen működő lejátszási listákat. + Csak azokat a videókat sorolja fel, amelyeket Ön elmentett vagy a kedvencek közé + helyezett. A munka befejezése után az összes itt található videó átkerül a „Kedvencek” + lejátszási listára. History: # On History Page History: 'Előzmények' @@ -125,6 +133,8 @@ Settings: (Alapértelmezés: https://invidious.snopyta.org)' Region for Trending: 'Népszerű területe' #! List countries + View all Invidious instance information: Az Invidious példány összes tájékoztatásának + megtekintése Theme Settings: Theme Settings: 'Téma beállítások' Match Top Bar with Main Color: 'Illessze a felső sávot a fő színnel' @@ -242,6 +252,7 @@ Settings: Unknown data key: 'Ismeretlen adatkulcs' How do I import my subscriptions?: 'Hogyan lehet importálni feliratkozásaimmal?' Check for Legacy Subscriptions: Örökölt feliratkozások keresése + Manage Subscriptions: Feliratkozások kezelése Advanced Settings: Advanced Settings: 'További beállítások' Enable Debug Mode (Prints data to the console): 'Hibakeresési mód engedélyezése @@ -284,6 +295,20 @@ Settings: The app needs to restart for changes to take effect. Restart and apply change?: Az alkalmazásnak újra kell indulnia, hogy a változtatások életbe lépjenek. Indítsa újra és alkalmazza a módosítást? + Proxy Settings: + City: Helység + Region: Körzet + Country: Ország + Ip: IP-cím + Your Info: Az Ön adatai + Clicking on Test Proxy will send a request to: 'A Meghatalmazás-ellenőrzés gombra + kattintva kérést küld a következő címre:' + Test Proxy: Meghatalmazás-ellenőrzés + Proxy Port Number: Meghatalmazás kikötőszáma + Proxy Host: Meghatalmazás gazdaszámítógép + Proxy Protocol: Meghatalmazás protokoll + Enable Tor / Proxy: Tor/meghatalmazás engedélyezése + Proxy Settings: Meghatalmazás beállításai About: #On About page About: 'Névjegy' From 61d7187f1aea769714e04fb030cb0f93ebbcc9ee Mon Sep 17 00:00:00 2001 From: Jakub Date: Fri, 22 Jan 2021 10:35:43 +0000 Subject: [PATCH 53/56] Translated using Weblate (Czech) Currently translated at 100.0% (444 of 444 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index 2284e2a1..ff68cc4e 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -70,6 +70,8 @@ Search Filters: Fetching results. Please wait: 'Načítání výsledků. Prosím, čekejte' Fetch more results: 'Načíst více výsledků' # Sidebar + There are no more results for this search: Pro toto hledání nejsou k dispozici žádné + další výsledky Subscriptions: # On Subscriptions Page Subscriptions: 'Odběry' @@ -129,6 +131,8 @@ Settings: instance (Výchozí je https://invidious.snopyta.org)' Region for Trending: 'Region pro trendy' #! List countries + View all Invidious instance information: Zobrazit všechny informace o instanci + Invidious Theme Settings: Theme Settings: 'Nastavení motivu' Match Top Bar with Main Color: 'Přizpůsobit hlavní lištu hlavní barvě' From 9d7b79a09e5465007405eeaeecd3c0fea69aeb6e Mon Sep 17 00:00:00 2001 From: Preston Date: Fri, 22 Jan 2021 09:28:41 -0500 Subject: [PATCH 54/56] Bump version number to v0.11.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 810c79c6..87a03367 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "freetube", - "version": "0.11.1", + "version": "0.11.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ca57bf37..26b8dc16 100644 --- a/package.json +++ b/package.json @@ -146,5 +146,5 @@ "test": "run-s rebuild:node pack:workers jest", "test:watch": "run-s rebuild:node pack:workers jest:watch" }, - "version": "0.11.1" + "version": "0.11.2" } From de8e26b507d74798fd826dd819cd5ffa44cd6039 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Fri, 22 Jan 2021 13:27:00 +0000 Subject: [PATCH 55/56] Translated using Weblate (Hebrew) Currently translated at 100.0% (444 of 444 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/ --- static/locales/he.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/he.yaml b/static/locales/he.yaml index b0e70d4c..03118913 100644 --- a/static/locales/he.yaml +++ b/static/locales/he.yaml @@ -70,6 +70,7 @@ Search Filters: Fetching results. Please wait: 'נאספות תוצאות. נא להמתין' Fetch more results: 'חיפוש תוצאות נוספות' # Sidebar + There are no more results for this search: אין תוצאות נוספות לחיפוש הזה Subscriptions: # On Subscriptions Page Subscriptions: 'מינויים' @@ -125,6 +126,7 @@ Settings: (ברירת המחדל היא https://invidious.snopyta.org)' Region for Trending: 'אזור לסרטונים חמים' #! List countries + View all Invidious instance information: הצגת כל פרטי העותק של Invidious Theme Settings: Theme Settings: 'הגדרת מראה' Match Top Bar with Main Color: 'התאמת האזור העליון לצבע הראשי' From 4135f500ada0179eeeb26860225491421b04b486 Mon Sep 17 00:00:00 2001 From: zmni Date: Fri, 22 Jan 2021 15:41:29 +0000 Subject: [PATCH 56/56] Translated using Weblate (Indonesian) Currently translated at 99.5% (442 of 444 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/id/ --- static/locales/id.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/static/locales/id.yaml b/static/locales/id.yaml index 21b0dd45..1926c624 100644 --- a/static/locales/id.yaml +++ b/static/locales/id.yaml @@ -70,6 +70,8 @@ Search Filters: Fetching results. Please wait: 'Mengambil hasil. Silakan tunggu' Fetch more results: 'Ambil lebih banyak hasil' # Sidebar + There are no more results for this search: Tidak ada hasil lagi untuk pencarian + ini Subscriptions: # On Subscriptions Page Subscriptions: 'Langganan' @@ -87,6 +89,8 @@ Most Popular: 'Paling Populer' Playlists: 'Daftar Putar' User Playlists: Your Playlists: 'Daftar Putar anda' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Penyimpanan + video Anda kosong. Klik tombol simpan pada pojok video untuk menyimpannya di sini History: # On History Page History: 'Riwayat' @@ -122,6 +126,7 @@ Settings: (Bawaan: https://invidious.snopyta.org)' Region for Trending: 'Wilayah untuk Sedang Tren' #! List countries + View all Invidious instance information: Lihat semua informasi situs Invidious Theme Settings: Theme Settings: 'Pengaturan Tema' Match Top Bar with Main Color: 'Samakan Bilah Atas dengan Warna Utama'