From aab30e3fcdcdced8c2d41b806883562c0953b2fd Mon Sep 17 00:00:00 2001
From: Svallinn <41585298+Svallinn@users.noreply.github.com>
Date: Sun, 14 Mar 2021 18:41:17 +0000
Subject: [PATCH 01/83] Set a fixed width for side-bar icons
---
src/renderer/components/side-nav/side-nav.vue | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/renderer/components/side-nav/side-nav.vue b/src/renderer/components/side-nav/side-nav.vue
index 057099d9..c016b231 100644
--- a/src/renderer/components/side-nav/side-nav.vue
+++ b/src/renderer/components/side-nav/side-nav.vue
@@ -12,6 +12,7 @@
{{ $t("Subscriptions.Subscriptions") }}
@@ -25,6 +26,7 @@
{{ $t("Trending") }}
@@ -38,6 +40,7 @@
{{ $t("Most Popular") }}
@@ -51,6 +54,7 @@
{{ $t("Playlists") }}
@@ -66,6 +70,7 @@
{{ $t("History.History") }}
@@ -79,6 +84,7 @@
{{ $t("Settings.Settings") }}
@@ -91,6 +97,7 @@
{{ $t("About.About") }}
From 15c02baf80b1d04d41f87de006091dacc15cc6ff Mon Sep 17 00:00:00 2001
From: Luca
Date: Sun, 14 Mar 2021 20:18:46 +0100
Subject: [PATCH 02/83] Started investigating default profile loading
inconsistency
---
src/renderer/App.js | 37 ++++++++++---------
.../watch-video-info/watch-video-info.js | 1 +
src/renderer/store/modules/history.js | 2 +-
src/renderer/store/modules/profile.js | 10 +++--
src/renderer/store/modules/settings.js | 1 +
5 files changed, 29 insertions(+), 22 deletions(-)
diff --git a/src/renderer/App.js b/src/renderer/App.js
index c821fad6..7f97e842 100644
--- a/src/renderer/App.js
+++ b/src/renderer/App.js
@@ -85,26 +85,27 @@ export default Vue.extend({
}
},
mounted: function () {
- this.$store.dispatch('grabUserSettings')
- this.$store.dispatch('grabHistory')
- this.$store.dispatch('grabAllProfiles', this.$t('Profile.All Channels'))
- this.$store.dispatch('grabAllPlaylists')
- this.$store.commit('setUsingElectron', useElectron)
- this.checkThemeSettings()
- this.checkLocale()
+ this.$store.dispatch('grabUserSettings').then(() => {
+ this.$store.dispatch('grabHistory')
+ this.$store.dispatch('grabAllProfiles', this.$t('Profile.All Channels'))
+ this.$store.dispatch('grabAllPlaylists')
+ this.$store.commit('setUsingElectron', useElectron)
+ this.checkThemeSettings()
+ this.checkLocale()
- if (useElectron) {
- console.log('User is using Electron')
- this.activateKeyboardShortcuts()
- this.openAllLinksExternally()
- this.enableOpenUrl()
- this.setBoundsOnClose()
- }
+ if (useElectron) {
+ console.log('User is using Electron')
+ this.activateKeyboardShortcuts()
+ this.openAllLinksExternally()
+ this.enableOpenUrl()
+ this.setBoundsOnClose()
+ }
- setTimeout(() => {
- this.checkForNewUpdates()
- this.checkForNewBlogPosts()
- }, 500)
+ setTimeout(() => {
+ this.checkForNewUpdates()
+ this.checkForNewBlogPosts()
+ }, 500)
+ })
},
methods: {
checkLocale: function () {
diff --git a/src/renderer/components/watch-video-info/watch-video-info.js b/src/renderer/components/watch-video-info/watch-video-info.js
index 0c35afb8..1471c231 100644
--- a/src/renderer/components/watch-video-info/watch-video-info.js
+++ b/src/renderer/components/watch-video-info/watch-video-info.js
@@ -263,6 +263,7 @@ export default Vue.extend({
const currentProfile = JSON.parse(JSON.stringify(this.profileList[this.activeProfile]))
const primaryProfile = JSON.parse(JSON.stringify(this.profileList[0]))
+ console.log("PRIMARY PROFILE:", primaryProfile)
if (this.isSubscribed) {
currentProfile.subscriptions = currentProfile.subscriptions.filter((channel) => {
diff --git a/src/renderer/store/modules/history.js b/src/renderer/store/modules/history.js
index 42088578..24841d16 100644
--- a/src/renderer/store/modules/history.js
+++ b/src/renderer/store/modules/history.js
@@ -13,7 +13,7 @@ if (window && window.process && window.process.type === 'renderer') {
const remote = require('@electron/remote')
dbLocation = remote.app.getPath('userData')
-
+ console.log("DB", dbLocation)
dbLocation = dbLocation + '/history.db'
} else {
dbLocation = 'history.db'
diff --git a/src/renderer/store/modules/profile.js b/src/renderer/store/modules/profile.js
index fe5b25fd..991bd53a 100644
--- a/src/renderer/store/modules/profile.js
+++ b/src/renderer/store/modules/profile.js
@@ -27,7 +27,7 @@ const profileDb = new Datastore({
const state = {
profileList: [{
_id: 'allChannels',
- name: 'All Channels',
+ name: 'Brudi Channels',
bgColor: '#000000',
textColor: '#FFFFFF',
subscriptions: []
@@ -54,6 +54,7 @@ const actions = {
} else {
// We want the primary profile to always be first
// So sort with that then sort alphabetically by profile name
+ console.log('PROFILE DB RESULTS', results)
const profiles = results.sort((a, b) => {
if (a._id === 'allChannels') {
return -1
@@ -67,10 +68,13 @@ const actions = {
})
if (state.profileList.length < profiles.length) {
+ console.log("STATE LIST LESS RTHAN PROFILES LENGTH")
+ console.log(profiles, state.profileList)
+ console.log("ROOTSTATE:SETTINGDEFATL", rootState.settings.defaultProfile)
const profileIndex = profiles.findIndex((profile) => {
return profile._id === rootState.settings.defaultProfile
})
-
+ console.log("INDEX", profileIndex)
if (profileIndex !== -1) {
dispatch('updateActiveProfile', profileIndex)
}
@@ -103,7 +107,7 @@ const actions = {
textColor: textColor,
subscriptions: []
}
- console.log(defaultProfile)
+ console.log('DIS DEFAULT', defaultProfile)
profileDb.update({ _id: 'allChannels' }, defaultProfile, { upsert: true }, (err, numReplaced) => {
if (!err) {
dispatch('grabAllProfiles')
diff --git a/src/renderer/store/modules/settings.js b/src/renderer/store/modules/settings.js
index bb4d2d2d..aefb4809 100644
--- a/src/renderer/store/modules/settings.js
+++ b/src/renderer/store/modules/settings.js
@@ -280,6 +280,7 @@ const actions = {
commit('setBackendFallback', result.value)
break
case 'defaultProfile':
+ console.log("IN SETTING DEFAULT:", result.value)
commit('setDefaultProfile', result.value)
break
case 'checkForUpdates':
From 650e3da175db1067ca6c1918a1f9ba6039c648dc Mon Sep 17 00:00:00 2001
From: Rusi Dimitrov
Date: Sun, 14 Mar 2021 18:04:53 +0000
Subject: [PATCH 03/83] Translated using Weblate (Bulgarian)
Currently translated at 100.0% (448 of 448 strings)
Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bg/
---
static/locales/bg.yaml | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/static/locales/bg.yaml b/static/locales/bg.yaml
index 24d8ea43..92213a04 100644
--- a/static/locales/bg.yaml
+++ b/static/locales/bg.yaml
@@ -30,10 +30,10 @@ Close: 'Затваряне'
Back: 'Назад'
Forward: 'Напред'
-Version $ is now available! Click for more details: 'Версия $ е вече налична! Кликнете
+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
@@ -90,7 +90,7 @@ 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: Тази страница не отразява напълно работещи плейлисти. В него са
изброени само видеоклипове, които сте запазили или избрали за любими. Когато работата
приключи, всички видеоклипове, които в момента са тук, ще бъдат мигрирани в плейлист
@@ -305,7 +305,7 @@ Settings:
Ip: Ip
Your Info: Вашата информация
Test Proxy: Тестване на прокси
- Clicking on Test Proxy will send a request to: Кликването върху "Тестване на прокси"
+ Clicking on Test Proxy will send a request to: Щракването върху "Тестване на прокси"
ще изпрати заявка до
Proxy Port Number: Номер на прокси порта
Proxy Host: Прокси хост
@@ -583,7 +583,7 @@ Share:
Mini Player: 'Мини плейър'
Comments:
Comments: 'Коментари'
- Click to View Comments: 'Кликнете, за да видите коментарите'
+ Click to View Comments: 'Щракнете, за да видите коментарите'
Getting comment replies, please wait: 'Получаване на отговори на коментара, моля
изчакайте'
There are no more comments for this video: 'Към това видео няма повече коментари'
@@ -603,8 +603,8 @@ Comments:
Up Next: 'Следващ'
# Toast Messages
-Local API Error (Click to copy): 'Грешка в локалния интерфейс (кликни за копиране)'
-Invidious API Error (Click to copy): 'Грешка в Invidious интерфейса (кликнете за копиране)'
+Local API Error (Click to copy): 'Грешка в локалния интерфейс (щракнете за копиране)'
+Invidious API Error (Click to copy): 'Грешка в Invidious интерфейса (щракнете за копиране)'
Falling back to Invidious API: 'Връщане към Invidious интерфейса'
Falling back to the local API: 'Връщане към локалния интерфейс'
This video is unavailable because of missing formats. This can happen due to country unavailability.: 'Видеото
@@ -658,6 +658,6 @@ Tooltips:
Локалният интерфейс има вградено извличане. Invidious интерфейсът изисква Invidious
сървър, към който да се свърже.
More: Още
-Playing Next Video Interval: Пускане на следващото видео веднага. Кликнете за отказ.
- | Пускане на следващото видео след {nextVideoInterval} секунда. Кликнете за отказl.
- | Пускане на следващото видео след {nextVideoInterval} секунди. Кликнете за отказ.
+Playing Next Video Interval: Пускане на следващото видео веднага. Щракнете за отказ.
+ | Пускане на следващото видео след {nextVideoInterval} секунда. Щракнете за отказ.
+ | Пускане на следващото видео след {nextVideoInterval} секунди. Щракнете за отказ.
From 19445c0e80e881c86ae694d8aea503dc08019fb0 Mon Sep 17 00:00:00 2001
From: Luca
Date: Tue, 16 Mar 2021 11:32:36 +0100
Subject: [PATCH 04/83] Fixed large custom emote size for live chats
---
.../components/watch-video-live-chat/watch-video-live-chat.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js b/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js
index 96e9b1ee..b63834f6 100644
--- a/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js
+++ b/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js
@@ -161,7 +161,7 @@ export default Vue.extend({
comment.messageHtml = comment.messageHtml + text.text
}
} else if (typeof (text.alt) !== 'undefined') {
- const htmlImg = ``
+ const htmlImg = ``
comment.messageHtml = comment.messageHtml + htmlImg
} else {
comment.messageHtml = comment.messageHtml + text.text
From 3f6e518132d35aa56f8e66ea49d84788236b681f Mon Sep 17 00:00:00 2001
From: Luca
Date: Tue, 16 Mar 2021 11:34:34 +0100
Subject: [PATCH 05/83] Increased size to a fitting value
---
.../components/watch-video-live-chat/watch-video-live-chat.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js b/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js
index b63834f6..e2e11966 100644
--- a/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js
+++ b/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js
@@ -161,7 +161,7 @@ export default Vue.extend({
comment.messageHtml = comment.messageHtml + text.text
}
} else if (typeof (text.alt) !== 'undefined') {
- const htmlImg = ``
+ const htmlImg = ``
comment.messageHtml = comment.messageHtml + htmlImg
} else {
comment.messageHtml = comment.messageHtml + text.text
From 341ee372580258b4f5d0ca47e53251bbb255537d Mon Sep 17 00:00:00 2001
From: Luca
Date: Tue, 16 Mar 2021 11:48:25 +0100
Subject: [PATCH 06/83] Bumped Trending and Search Suggestion Modules
---
package-lock.json | 26 ++++++++++++++++----------
package.json | 4 ++--
2 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 8ad34675..67ce048c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15313,6 +15313,11 @@
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz",
"integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw=="
},
+ "smol-jsonp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/smol-jsonp/-/smol-jsonp-1.0.0.tgz",
+ "integrity": "sha512-EwM2cKsq87A9cCKiAwfp7kVSRtAT01M/3HXaO3tYxP+pnEZ5zVYsxLdTnPjJVVIeK9O2zkV0QbWuwlHEUQNdOA=="
+ },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -18288,11 +18293,12 @@
}
},
"youtube-suggest": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/youtube-suggest/-/youtube-suggest-1.1.0.tgz",
- "integrity": "sha512-uMIgu/bQAjZ+aPVL5DXHZusTyuJh2tW2NiXO5y+CYvN9U9iqv7xvzbhTSTE7sAKM4AK1zRnq+WQEFkgSEDqXkA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/youtube-suggest/-/youtube-suggest-1.1.1.tgz",
+ "integrity": "sha512-nMkXJV24xe0QZ67YAfEtVfdGCtuyhOMcvX4GkO824TivwQbkHMNaWlMGlUkePSXCu2vPReP6nYhknoHzmD0/Aw==",
"requires": {
- "node-fetch": "^2.6.0"
+ "node-fetch": "^2.6.0",
+ "smol-jsonp": "^1.0.0"
}
},
"yt-channel-info": {
@@ -18371,9 +18377,9 @@
}
},
"yt-trending-scraper": {
- "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==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/yt-trending-scraper/-/yt-trending-scraper-1.1.1.tgz",
+ "integrity": "sha512-ElD3MIZ1ukjOcexYm5VIdLtY22hskrtHA9+8t/5Ox8CG7+vGlTJy2N5MUVAhh0ucoOl8cfkVrsuEUQbzXeABig==",
"requires": {
"axios": "^0.21.1"
},
@@ -18387,9 +18393,9 @@
}
},
"follow-redirects": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz",
- "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg=="
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz",
+ "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA=="
}
}
},
diff --git a/package.json b/package.json
index 10421f7e..807f023c 100644
--- a/package.json
+++ b/package.json
@@ -46,11 +46,11 @@
"vuex": "^3.6.2",
"xml2json": "^0.12.0",
"youtube-chat": "git+https://github.com/IcedCoffeee/youtube-chat.git",
- "youtube-suggest": "^1.1.0",
+ "youtube-suggest": "^1.1.1",
"yt-channel-info": "^1.3.0",
"yt-comment-scraper": "^3.0.2",
"yt-dash-manifest-generator": "1.1.0",
- "yt-trending-scraper": "^1.1.0",
+ "yt-trending-scraper": "^1.1.1",
"yt-xml2vtt": "^1.2.0",
"ytdl-core": "^4.5.0",
"ytpl": "^2.0.5",
From d2ee285e45cad683d32ded6edc46fffbe00e282b Mon Sep 17 00:00:00 2001
From: Luca
Date: Wed, 17 Mar 2021 23:15:36 +0100
Subject: [PATCH 07/83] Added fix for wrongly applied publishedText template
---
src/renderer/store/modules/ytdl.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/renderer/store/modules/ytdl.js b/src/renderer/store/modules/ytdl.js
index 6ce2edd6..5d6bceb9 100644
--- a/src/renderer/store/modules/ytdl.js
+++ b/src/renderer/store/modules/ytdl.js
@@ -347,7 +347,7 @@ const actions = {
}
ytdl.getInfo(videoId, {
- lang: localStorage.getItem('locale'),
+ lang: 'en-US',
requestOptions: { agent }
}).then((result) => {
resolve(result)
From 6743bd21d12f6dae8f0f43fcfabad90dcba5ba08 Mon Sep 17 00:00:00 2001
From: Luca Hohmann
Date: Thu, 18 Mar 2021 12:09:52 +0000
Subject: [PATCH 08/83] Translated using Weblate (German)
Currently translated at 99.7% (447 of 448 strings)
Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/
---
static/locales/de-DE.yaml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml
index fdab66af..85b1e804 100644
--- a/static/locales/de-DE.yaml
+++ b/static/locales/de-DE.yaml
@@ -189,6 +189,7 @@ Settings:
1440p: 1440p
4k: 4k
8k: 8k
+ Playlist Next Video Interval: Zeit zwischen automatischer Playlist-Videowiedergabe
Subscription Settings:
Subscription Settings: Abonnement-Einstellungen
Hide Videos on Watch: Verstecke Videos bei Wiedergabe
@@ -295,6 +296,7 @@ Settings:
Hide Video Views: Video-Aufrufe verbergen
Distraction Free Settings: Einstellungen für ablenkungsfreien Modus
Hide Active Subscriptions: Aktive Abonnements ausblenden
+ Hide Playlists: Playlists ausblenden
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?
@@ -649,6 +651,7 @@ Profile:
Other Channels: Andere Kanäle
Subscription List: Abonnement-Liste
Profile Select: Profilauswahl
+ Profile Filter: Profilfilter
The playlist has been reversed: Die Wiedergabeliste wurde umgedreht
A new blog is now available, $. Click to view more: Ein neuer Blogeintrag ist verfügbar,
$. Um ihn zu öffnen klicken
@@ -687,3 +690,8 @@ Tooltips:
Legacy Formaten diese verwenden, anstatt auf Invidious zurückzugreifen. Dies
hilft dann, wenn Videos von Invidious nicht abspielbar sind. Zum Beispiel aufgrund
von Landesbeschränkungen.
+Playing Next Video Interval: Nächstes Video wird sofort abgespielt. Zum Abbrechen
+ klicken. | Nächstes Video wird in {nextVideoInterval} Sekunden abgespielt. Zum Abbrechen
+ klicken. | Nächstes Video wird in {nextVideoInterval} Sekunden abgespielt. Zum Abbrechen
+ klicken.
+More: Weiteres
From 02d192ae2c2ac4a6365947b241a57b8c4946b60a Mon Sep 17 00:00:00 2001
From: Joe Bill
Date: Thu, 18 Mar 2021 16:49:08 +0100
Subject: [PATCH 09/83] Added translation using Weblate (Serbian)
---
static/locales/sr.yaml | 535 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 535 insertions(+)
create mode 100644 static/locales/sr.yaml
diff --git a/static/locales/sr.yaml b/static/locales/sr.yaml
new file mode 100644
index 00000000..c25b63a3
--- /dev/null
+++ b/static/locales/sr.yaml
@@ -0,0 +1,535 @@
+# Put the name of your locale in the same language
+Locale Name: ''
+FreeTube: ''
+# Currently on Subscriptions, Playlists, and History
+'This part of the app is not ready yet. Come back later when progress has been made.': >
+
+# Webkit Menu Bar
+File: ''
+Quit: ''
+Edit: ''
+Undo: ''
+Redo: ''
+Cut: ''
+Copy: ''
+Paste: ''
+Delete: ''
+Select all: ''
+Reload: ''
+Force Reload: ''
+Toggle Developer Tools: ''
+Actual size: ''
+Zoom in: ''
+Zoom out: ''
+Toggle fullscreen: ''
+Window: ''
+Minimize: ''
+Close: ''
+Back: ''
+Forward: ''
+
+Version $ is now available! Click for more details: ''
+Download From Site: ''
+A new blog is now available, $. Click to view more: ''
+
+# Search Bar
+Search / Go to URL: ''
+ # In Filter Button
+Search Filters:
+ Search Filters: ''
+ Sort By:
+ Sort By: ''
+ Most Relevant: ''
+ Rating: ''
+ Upload Date: ''
+ View Count: ''
+ Time:
+ Time: ''
+ Any Time: ''
+ Last Hour: ''
+ Today: ''
+ This Week: ''
+ This Month: ''
+ This Year: ''
+ Type:
+ Type: ''
+ All Types: ''
+ Videos: ''
+ Channels: ''
+ #& Playlists
+ Duration:
+ Duration: ''
+ All Durations: ''
+ Short (< 4 minutes): ''
+ Long (> 20 minutes): ''
+ # On Search Page
+ Search Results: ''
+ Fetching results. Please wait: ''
+ Fetch more results: ''
+ There are no more results for this search: ''
+# Sidebar
+Subscriptions:
+ # On Subscriptions Page
+ Subscriptions: ''
+ Latest Subscriptions: ''
+ This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: ''
+ 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': ''
+ 'Getting Subscriptions. Please wait.': ''
+ Refresh Subscriptions: ''
+ Load More Videos: ''
+More: ''
+Trending: ''
+Most Popular: ''
+Playlists: ''
+User Playlists:
+ Your Playlists: ''
+ Playlist Message: ''
+ 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: ''
+ Watch History: ''
+ Your history list is currently empty.: ''
+Settings:
+ # On Settings Page
+ Settings: ''
+ The app needs to restart for changes to take effect. Restart and apply change?: ''
+ General Settings:
+ 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:
+ Preferred API Backend: ''
+ Local API: ''
+ Invidious API: ''
+ Video View Type:
+ Video View Type: ''
+ Grid: ''
+ List: ''
+ Thumbnail Preference:
+ Thumbnail Preference: ''
+ Default: ''
+ Beginning: ''
+ Middle: ''
+ End: ''
+ 'Invidious Instance (Default is https://invidious.snopyta.org)': ''
+ View all Invidious instance information: ''
+ Region for Trending: ''
+ #! List countries
+ Theme Settings:
+ Theme Settings: ''
+ Match Top Bar with Main Color: ''
+ Expand Side Bar by Default: ''
+ Disable Smooth Scrolling: ''
+ UI Scale: ''
+ Base Theme:
+ Base Theme: ''
+ Black: ''
+ Dark: ''
+ Light: ''
+ Main Color Theme:
+ Main Color Theme: ''
+ Red: ''
+ Pink: ''
+ Purple: ''
+ Deep Purple: ''
+ Indigo: ''
+ Blue: ''
+ Light Blue: ''
+ Cyan: ''
+ Teal: ''
+ Green: ''
+ Light Green: ''
+ Lime: ''
+ Yellow: ''
+ Amber: ''
+ Orange: ''
+ Deep Orange: ''
+ Secondary Color Theme: ''
+ #* Main Color Theme
+ Player Settings:
+ Player Settings: ''
+ Force Local Backend for Legacy Formats: ''
+ Play Next Video: ''
+ Turn on Subtitles by Default: ''
+ Autoplay Videos: ''
+ Proxy Videos Through Invidious: ''
+ Autoplay Playlists: ''
+ Enable Theatre Mode by Default: ''
+ Playlist Next Video Interval: ''
+ Default Volume: ''
+ Default Playback Rate: ''
+ Default Video Format:
+ Default Video Format: ''
+ Dash Formats: ''
+ Legacy Formats: ''
+ Audio Formats: ''
+ Default Quality:
+ Default Quality: ''
+ Auto: ''
+ 144p: ''
+ 240p: ''
+ 360p: ''
+ 480p: ''
+ 720p: ''
+ 1080p: ''
+ 1440p: ''
+ 4k: ''
+ 8k: ''
+ Privacy Settings:
+ Privacy Settings: ''
+ Remember History: ''
+ Save Watched Progress: ''
+ Clear Search Cache: ''
+ Are you sure you want to clear out your search cache?: ''
+ Search cache has been cleared: ''
+ Remove Watch History: ''
+ Are you sure you want to remove your entire watch history?: ''
+ Watch history has been cleared: ''
+ Remove All Subscriptions / Profiles: ''
+ Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: ''
+ Subscription Settings:
+ Subscription Settings: ''
+ Hide Videos on Watch: ''
+ Fetch Feeds from RSS: ''
+ Manage Subscriptions: ''
+ Distraction Free Settings:
+ Distraction Free Settings: ''
+ Hide Video Views: ''
+ Hide Video Likes And Dislikes: ''
+ Hide Channel Subscribers: ''
+ Hide Comment Likes: ''
+ Hide Recommended Videos: ''
+ Hide Trending Videos: ''
+ Hide Popular Videos: ''
+ Hide Playlists: ''
+ Hide Live Chat: ''
+ Hide Active Subscriptions: ''
+ Data Settings:
+ Data Settings: ''
+ Select Import Type: ''
+ Select Export Type: ''
+ Import Subscriptions: ''
+ Import FreeTube: ''
+ Import YouTube: ''
+ Import NewPipe: ''
+ Check for Legacy Subscriptions: ''
+ Export Subscriptions: ''
+ Export FreeTube: ''
+ Export YouTube: ''
+ Export NewPipe: ''
+ Import History: ''
+ Export History: ''
+ Profile object has insufficient data, skipping item: ''
+ All subscriptions and profiles have been successfully imported: ''
+ All subscriptions have been successfully imported: ''
+ One or more subscriptions were unable to be imported: ''
+ Invalid subscriptions file: ''
+ This might take a while, please wait: ''
+ Invalid history file: ''
+ Subscriptions have been successfully exported: ''
+ 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?: ''
+ Manage Subscriptions: ''
+ Proxy Settings:
+ Proxy Settings: ''
+ Enable Tor / Proxy: ''
+ Proxy Protocol: ''
+ Proxy Host: ''
+ Proxy Port Number: ''
+ Clicking on Test Proxy will send a request to: ''
+ Test Proxy: ''
+ Your Info: ''
+ Ip: ''
+ Country: ''
+ Region: ''
+ City: ''
+ Error getting network information. Is your proxy configured properly?: ''
+About:
+ #On About page
+ About: ''
+ Beta: ''
+ Source code: ''
+ Licensed under the AGPLv3: ''
+ View License: ''
+ Downloads / Changelog: ''
+ GitHub releases: ''
+ Help: ''
+ FreeTube Wiki: ''
+ FAQ: ''
+ Report a problem: ''
+ GitHub issues: ''
+ Please check for duplicates before posting: ''
+ Website: ''
+ Blog: ''
+ Email: ''
+ Mastodon: ''
+ Chat on Matrix: ''
+ Please read the: ''
+ room rules: ''
+ Translate: ''
+ Credits: ''
+ FreeTube is made possible by: ''
+ these people and projects: ''
+ Donate: ''
+
+Profile:
+ Profile Select: ''
+ Profile Filter: ''
+ 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: ''
+ Other Channels: ''
+ $ selected: ''
+ Select All: ''
+ Select None: ''
+ Delete Selected: ''
+ Add Selected To Profile: ''
+ No channel(s) have been selected: ''
+ ? This is your primary profile. Are you sure you want to delete the selected channels? The
+ same channels will be deleted in any profile they are found in.
+ : ''
+ Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: ''
+#On Channel Page
+Channel:
+ Subscriber: ''
+ Subscribers: ''
+ Subscribe: ''
+ Unsubscribe: ''
+ Channel has been removed from your subscriptions: ''
+ Removed subscription from $ other channel(s): ''
+ Added channel to your subscriptions: ''
+ Search Channel: ''
+ Your search results have returned 0 results: ''
+ Sort By: ''
+ Videos:
+ Videos: ''
+ This channel does not currently have any videos: ''
+ Sort Types:
+ Newest: ''
+ Oldest: ''
+ Most Popular: ''
+ Playlists:
+ Playlists: ''
+ This channel does not currently have any playlists: ''
+ Sort Types:
+ Last Video Added: ''
+ Newest: ''
+ Oldest: ''
+ About:
+ About: ''
+ Channel Description: ''
+ Featured Channels: ''
+Video:
+ Mark As Watched: ''
+ Remove From History: ''
+ Video has been marked as watched: ''
+ Video has been removed from your history: ''
+ Save Video: ''
+ Video has been saved: ''
+ Video has been removed from your saved list: ''
+ Open in YouTube: ''
+ Copy YouTube Link: ''
+ Open YouTube Embedded Player: ''
+ Copy YouTube Embedded Player Link: ''
+ Open in Invidious: ''
+ Copy Invidious Link: ''
+ Open Channel in YouTube: ''
+ Copy YouTube Channel Link: ''
+ Open Channel in Invidious: ''
+ Copy Invidious Channel Link: ''
+ View: ''
+ Views: ''
+ Loop Playlist: ''
+ Shuffle Playlist: ''
+ Reverse Playlist: ''
+ Play Next Video: ''
+ Play Previous Video: ''
+ # Context is "X People Watching"
+ Watching: ''
+ Watched: ''
+ Autoplay: ''
+ Starting soon, please refresh the page to check again: ''
+ # As in a Live Video
+ Live: ''
+ Live Now: ''
+ Live Chat: ''
+ Enable Live Chat: ''
+ Live Chat is currently not supported in this build.: ''
+ '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.': ''
+ Download Video: ''
+ video only: ''
+ audio only: ''
+ Audio:
+ Low: ''
+ Medium: ''
+ High: ''
+ Best: ''
+ Published:
+ Jan: ''
+ Feb: ''
+ Mar: ''
+ Apr: ''
+ May: ''
+ Jun: ''
+ Jul: ''
+ Aug: ''
+ Sep: ''
+ Oct: ''
+ Nov: ''
+ Dec: ''
+ Second: ''
+ Seconds: ''
+ Minute: ''
+ Minutes: ''
+ Hour: ''
+ Hours: ''
+ Day: ''
+ Days: ''
+ Week: ''
+ Weeks: ''
+ Month: ''
+ Months: ''
+ Year: ''
+ Years: ''
+ Ago: ''
+ Upcoming: ''
+ Published on: ''
+ Streamed on: ''
+ Started streaming on: ''
+ # $ is replaced with the number and % with the unit (days, hours, minutes...)
+ Publicationtemplate: ''
+#& Videos
+Videos:
+ #& Sort By
+ Sort By:
+ Newest: ''
+ Oldest: ''
+ #& Most Popular
+#& Playlists
+Playlist:
+ #& About
+ View Full Playlist: ''
+ Videos: ''
+ View: ''
+ Views: ''
+ Last Updated On: ''
+ Share Playlist:
+ Share Playlist: ''
+ Copy YouTube Link: ''
+ Open in YouTube: ''
+ Copy Invidious Link: ''
+ Open in Invidious: ''
+
+# On Video Watch Page
+#* Published
+#& Views
+Toggle Theatre Mode: ''
+Change Format:
+ Change Video Formats: ''
+ Use Dash Formats: ''
+ Use Legacy Formats: ''
+ Use Audio Formats: ''
+ Dash formats are not available for this video: ''
+ Audio formats are not available for this video: ''
+Share:
+ Share Video: ''
+ Include Timestamp: ''
+ Copy Link: ''
+ Open Link: ''
+ Copy Embed: ''
+ Open Embed: ''
+ # On Click
+ Invidious URL copied to clipboard: ''
+ Invidious Embed URL copied to clipboard: ''
+ Invidious Channel URL copied to clipboard: ''
+ YouTube URL copied to clipboard: ''
+ YouTube Embed URL copied to clipboard: ''
+ YouTube Channel URL copied to clipboard: ''
+
+Mini Player: ''
+Comments:
+ Comments: ''
+ Click to View Comments: ''
+ Getting comment replies, please wait: ''
+ There are no more comments for this video: ''
+ Show Comments: ''
+ Hide Comments: ''
+ Sort by: ''
+ Top comments: ''
+ Newest first: ''
+ # Context: View 10 Replies, View 1 Reply
+ View: ''
+ Hide: ''
+ Replies: ''
+ Reply: ''
+ There are no comments available for this video: ''
+ Load More Comments: ''
+ No more comments available: ''
+Up Next: ''
+
+#Tooltips
+Tooltips:
+ General Settings:
+ Preferred API Backend: ''
+ Fallback to Non-Preferred Backend on Failure: ''
+ Thumbnail Preference: ''
+ Invidious Instance: ''
+ Region for Trending: ''
+ Player Settings:
+ Force Local Backend for Legacy Formats: ''
+ Proxy Videos Through Invidious: ''
+ Default Video Format: ''
+ Subscription Settings:
+ Fetch Feeds from RSS: ''
+
+# Toast Messages
+Local API Error (Click to copy): ''
+Invidious API Error (Click to copy): ''
+Falling back to Invidious API: ''
+Falling back to the local API: ''
+This video is unavailable because of missing formats. This can happen due to country unavailability.: ''
+Subscriptions have not yet been implemented: ''
+Loop is now disabled: ''
+Loop is now enabled: ''
+Shuffle is now disabled: ''
+Shuffle is now enabled: ''
+The playlist has been reversed: ''
+Playing Next Video: ''
+Playing Previous Video: ''
+Playing Next Video Interval: ''
+Canceled next video autoplay: ''
+'The playlist has ended. Enable loop to continue playing': ''
+
+Yes: ''
+No: ''
From 9d6f6e78e778eb4e54b6a17347f9d4017d980080 Mon Sep 17 00:00:00 2001
From: Luca
Date: Thu, 18 Mar 2021 17:47:28 +0100
Subject: [PATCH 10/83] Reimplementation of goToChannel from PR 850
---
.../watch-video-comments/watch-video-comments.css | 2 ++
.../watch-video-comments/watch-video-comments.js | 7 +++++++
.../watch-video-comments/watch-video-comments.vue | 5 ++++-
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.css b/src/renderer/components/watch-video-comments/watch-video-comments.css
index 3e1fe750..f19ca320 100644
--- a/src/renderer/components/watch-video-comments/watch-video-comments.css
+++ b/src/renderer/components/watch-video-comments/watch-video-comments.css
@@ -34,6 +34,7 @@
height: 60px;
border-radius: 200px 200px 200px 200px;
-webkit-border-radius: 200px 200px 200px 200px;
+ cursor: pointer;
}
.commentAuthor {
@@ -41,6 +42,7 @@
font-size: 14px;
margin-left: 68px;
margin-top: 0px;
+ cursor: pointer;
}
.commentText {
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 e31ae917..6a8bb9b5 100644
--- a/src/renderer/components/watch-video-comments/watch-video-comments.js
+++ b/src/renderer/components/watch-video-comments/watch-video-comments.js
@@ -227,6 +227,7 @@ export default Vue.extend({
parseLocalCommentData: function (response, index = null) {
const commentData = response.comments.map((comment) => {
+ comment.authorLink = comment.authorId
comment.showReplies = false
comment.authorThumb = comment.authorThumb[0].url
comment.replies = []
@@ -273,6 +274,7 @@ export default Vue.extend({
this.invidiousAPICall(payload).then((response) => {
const commentData = response.comments.map((comment) => {
comment.showReplies = false
+ comment.authorLink = comment.authorId
comment.authorThumb = comment.authorThumbnails[1].url.replace('https://yt3.ggpht.com', `${this.invidiousInstance}/ggpht/`)
if (this.hideCommentLikes) {
comment.likes = null
@@ -338,6 +340,7 @@ export default Vue.extend({
this.$store.dispatch('invidiousAPICall', payload).then((response) => {
const commentData = response.comments.map((comment) => {
comment.showReplies = false
+ comment.authorLink = comment.authorId
comment.authorThumb = comment.authorThumbnails[1].url.replace('https://yt3.ggpht.com', `${this.invidiousInstance}/ggpht/`)
if (this.hideCommentLikes) {
comment.likes = null
@@ -372,6 +375,10 @@ export default Vue.extend({
})
},
+ goToChannel: function (channelId) {
+ this.$router.push({ path: `/channel/${channelId}` })
+ },
+
...mapActions([
'showToast',
'toLocalePublicationString',
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 4b32e51c..20b96740 100644
--- a/src/renderer/components/watch-video-comments/watch-video-comments.vue
+++ b/src/renderer/components/watch-video-comments/watch-video-comments.vue
@@ -45,8 +45,11 @@
+