Skip to content

Commit 7b8738d

Browse files
committed
Merge branch 'development' into feature/playlist-2023-05
* development: Translated using Weblate (Serbian) Translated using Weblate (Croatian) Translated using Weblate (Croatian) Bump electron from 27.1.2 to 27.1.3 (FreeTubeApp#4420) Bump the stylelint group with 1 update (FreeTubeApp#4416) Bump the fortawesome group with 3 updates (FreeTubeApp#4417) Bump marked from 10.0.0 to 11.0.0 (FreeTubeApp#4419) Bump the babel group with 2 updates (FreeTubeApp#4414) Bump the eslint group with 3 updates (FreeTubeApp#4415) Bump lefthook from 1.5.4 to 1.5.5 (FreeTubeApp#4418) Translated using Weblate (Greek) Order watched recommended videos last (FreeTubeApp#4394) IV: check for 404 and 500 for subscriptions (FreeTubeApp#4410) Translated using Weblate (Hungarian) Add homebrew to README.md (FreeTubeApp#4274) Translated using Weblate (Polish) Translated using Weblate (Icelandic)
2 parents b255d44 + 2c095ed commit 7b8738d

File tree

15 files changed

+361
-277
lines changed

15 files changed

+361
-277
lines changed

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,12 @@ body:
9090
- Flathub
9191
- .pacman
9292
- Portable
93-
- .rpm
93+
- .rpm
9494
- .zip
9595
- .apk (Android, FreeTubeCordova Unofficial)
9696
- AUR (Unofficial)
9797
- Chocolatey (Unofficial)
98+
- Homebrew (Unofficial)
9899
- MPR (Unofficial)
99100
- Nix (Unofficial)
100101
- PortableApps (Unofficial)

.github/issue-labeler.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
- '(visual bug)'
33

44
'B: Unofficial Download':
5-
- '(AUR \(Unofficial\)|Chocolatey \(Unofficial\)|\.apk \(Android, FreeTubeCordova Unofficial\)|PortableApps \(Unofficial\)|winget \(Unofficial\)|Scoop \(Unofficial\)|Snapcraft \(Unofficial\)|MPR \(Unofficial\)|Nix \(Unofficial\))'
5+
- '(AUR \(Unofficial\)|Chocolatey \(Unofficial\)|\.apk \(Android, FreeTubeCordova Unofficial\)|Homebrew \(Unofficial\)|PortableApps \(Unofficial\)|winget \(Unofficial\)|Scoop \(Unofficial\)|Snapcraft \(Unofficial\)|MPR \(Unofficial\)|Nix \(Unofficial\))'
66

77
'B: keyboard control':
8-
- '(keyboard control not working)'
8+
- '(keyboard control not working)'
99

1010
'B: text/string':
1111
- '(text/string issue)'

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ These builds are maintained by the community. While they should be safe, downloa
8989

9090
* FreeTubeCordova (FreeTube port for Android and PWA): [Download](https://github.com/MarmadileManteater/FreeTubeCordova/releases) and [Source Code](https://github.com/MarmadileManteater/FreeTubeCordova)
9191

92+
* Homebrew Formulae (Mac only): [Download](https://formulae.brew.sh/cask/freetube)
93+
9294
* makedeb Package Repository (MPR): [Download](https://mpr.makedeb.org/packages/freetube-bin)
9395

9496
* Nix Packages: [Download](https://search.nixos.org/packages?query=freetube)

package.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,16 @@
5353
"ci": "yarn install --silent --frozen-lockfile"
5454
},
5555
"dependencies": {
56-
"@fortawesome/fontawesome-svg-core": "^6.4.2",
57-
"@fortawesome/free-brands-svg-icons": "^6.4.2",
58-
"@fortawesome/free-solid-svg-icons": "^6.4.2",
56+
"@fortawesome/fontawesome-svg-core": "^6.5.1",
57+
"@fortawesome/free-brands-svg-icons": "^6.5.1",
58+
"@fortawesome/free-solid-svg-icons": "^6.5.1",
5959
"@fortawesome/vue-fontawesome": "^2.0.10",
6060
"@seald-io/nedb": "^4.0.2",
6161
"@silvermine/videojs-quality-selector": "^1.3.1",
6262
"autolinker": "^4.0.0",
6363
"electron-context-menu": "^3.6.1",
6464
"lodash.debounce": "^4.0.8",
65-
"marked": "^10.0.0",
65+
"marked": "^11.0.0",
6666
"path-browserify": "^1.0.1",
6767
"process": "^0.11.10",
6868
"video.js": "7.21.5",
@@ -80,36 +80,36 @@
8080
"youtubei.js": "^7.0.0"
8181
},
8282
"devDependencies": {
83-
"@babel/core": "^7.23.3",
83+
"@babel/core": "^7.23.5",
8484
"@babel/eslint-parser": "^7.23.3",
8585
"@babel/plugin-proposal-class-properties": "^7.18.6",
86-
"@babel/preset-env": "^7.23.3",
86+
"@babel/preset-env": "^7.23.5",
8787
"@double-great/stylelint-a11y": "^2.0.2",
8888
"babel-loader": "^9.1.3",
8989
"copy-webpack-plugin": "^11.0.0",
9090
"css-loader": "^6.8.1",
9191
"css-minimizer-webpack-plugin": "^5.0.1",
92-
"electron": "^27.1.2",
92+
"electron": "^27.1.3",
9393
"electron-builder": "^24.9.1",
94-
"eslint": "^8.54.0",
95-
"eslint-config-prettier": "^9.0.0",
94+
"eslint": "^8.55.0",
95+
"eslint-config-prettier": "^9.1.0",
9696
"eslint-config-standard": "^17.1.0",
9797
"eslint-plugin-import": "^2.29.0",
9898
"eslint-plugin-jsonc": "^2.10.0",
9999
"eslint-plugin-n": "^16.3.1",
100100
"eslint-plugin-prettier": "^5.0.1",
101101
"eslint-plugin-promise": "^6.1.1",
102102
"eslint-plugin-unicorn": "^49.0.0",
103-
"eslint-plugin-vue": "^9.18.1",
103+
"eslint-plugin-vue": "^9.19.2",
104104
"eslint-plugin-vuejs-accessibility": "^2.2.0",
105105
"eslint-plugin-yml": "^1.10.0",
106106
"html-webpack-plugin": "^5.5.3",
107107
"js-yaml": "^4.1.0",
108108
"json-minimizer-webpack-plugin": "^4.0.0",
109-
"lefthook": "^1.5.4",
109+
"lefthook": "^1.5.5",
110110
"mini-css-extract-plugin": "^2.7.6",
111111
"npm-run-all": "^4.1.5",
112-
"postcss": "^8.4.31",
112+
"postcss": "^8.4.32",
113113
"postcss-scss": "^4.0.9",
114114
"prettier": "^2.8.8",
115115
"rimraf": "^5.0.5",

src/renderer/components/subscriptions-live/subscriptions-live.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ export default defineComponent({
305305
try {
306306
const response = await fetch(feedUrl)
307307

308-
if (response.status === 500) {
308+
if (response.status === 500 || response.status === 404) {
309309
return []
310310
}
311311

src/renderer/components/subscriptions-shorts/subscriptions-shorts.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ export default defineComponent({
199199
try {
200200
const response = await fetch(feedUrl)
201201

202-
if (response.status === 500) {
202+
if (response.status === 500 || response.status === 404) {
203203
return []
204204
}
205205

src/renderer/components/subscriptions-videos/subscriptions-videos.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ export default defineComponent({
302302
try {
303303
const response = await fetch(feedUrl)
304304

305-
if (response.status === 500) {
305+
if (response.status === 500 || response.status === 404) {
306306
this.errorChannels.push(channel)
307307
return []
308308
}

src/renderer/views/Watch/Watch.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,10 +308,16 @@ export default defineComponent({
308308

309309
this.isFamilyFriendly = result.basic_info.is_family_safe
310310

311-
this.recommendedVideos = result.watch_next_feed
311+
const recommendedVideos = result.watch_next_feed
312312
?.filter((item) => item.type === 'CompactVideo')
313313
.map(parseLocalWatchNextVideo) ?? []
314314

315+
// place watched recommended videos last
316+
this.recommendedVideos = [
317+
...recommendedVideos.filter((video) => !this.isRecommendedVideoWatched(video.videoId)),
318+
...recommendedVideos.filter((video) => this.isRecommendedVideoWatched(video.videoId))
319+
]
320+
315321
if (this.showFamilyFriendlyOnly && !this.isFamilyFriendly) {
316322
this.isLoading = false
317323
this.handleVideoEnded()
@@ -730,7 +736,12 @@ export default defineComponent({
730736

731737
this.videoPublished = result.published * 1000
732738
this.videoDescriptionHtml = result.descriptionHtml
733-
this.recommendedVideos = result.recommendedVideos
739+
const recommendedVideos = result.recommendedVideos
740+
// place watched recommended videos last
741+
this.recommendedVideos = [
742+
...recommendedVideos.filter((video) => !this.isRecommendedVideoWatched(video.videoId)),
743+
...recommendedVideos.filter((video) => this.isRecommendedVideoWatched(video.videoId))
744+
]
734745
this.adaptiveFormats = await this.getAdaptiveFormatsInvidious(result)
735746
this.isLive = result.liveNow
736747
this.isFamilyFriendly = result.isFamilyFriendly
@@ -1100,6 +1111,10 @@ export default defineComponent({
11001111
this.updateLocalPlaylistLastPlayedAtSometimes()
11011112
},
11021113

1114+
isRecommendedVideoWatched: function (videoId) {
1115+
return !!this.$store.getters.getHistoryCacheById[videoId]
1116+
},
1117+
11031118
checkIfWatched: function () {
11041119
if (!this.isLive) {
11051120
if (this.timestamp) {

static/locales/el.yaml

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ Settings:
161161
Middle: 'Μέση'
162162
End: 'Τέλος'
163163
Hidden: Κρυμμένο
164-
Blur: ''
164+
Blur: 'Θάμπωμα'
165165
'Invidious Instance (Default is https://invidious.snopyta.org)': 'Διακομιστής
166166
Invidious (προεπιλογή https://invidious.snopyta.org)'
167167
Region for Trending: 'Περιοχή που καθορίζει την καρτέλα των τάσεων'
@@ -332,6 +332,8 @@ Settings:
332332
Fetch Feeds from RSS: 'Φόρτωση τροφοδοσίας RSS'
333333
Manage Subscriptions: 'Διαχείριση Εγγραφών'
334334
Fetch Automatically: Αυτόματη Λήψη Τροφοδοσίας
335+
Only Show Latest Video for Each Channel: Εμφάνιση μόνο του τελευταίου βίντεο για
336+
κάθε κανάλι
335337
Data Settings:
336338
Data Settings: 'Ρυθμίσεις Δεδομένων'
337339
Select Import Type: 'Επιλογή Τρόπου Εισαγωγής'
@@ -427,7 +429,7 @@ Settings:
427429
Hide Sharing Actions: Απόκρυψη Ενεργειών Κοινής Χρήσης
428430
Hide Channels: Απόκρυψη Βίντεο Από Κανάλια
429431
Hide Upcoming Premieres: Απόκρυψη Επερχόμενων Πρεμιέρων
430-
Hide Channels Placeholder: Όνομα Καναλιού ή Αναγνωριστικό
432+
Hide Channels Placeholder: Αναγνωριστικό καναλιού
431433
Hide Comments: Απόκρυψη Σχολίων
432434
Hide Chapters: Απόκρυψη Κεφαλαίων
433435
Hide Video Description: Απόκρυψη Περιγραφής Βίντεο
@@ -451,6 +453,13 @@ Settings:
451453
Blur Thumbnails: Θάμπωμα Μικρογραφιών
452454
Hide Profile Pictures in Comments: Απόκρυψη Εικόνων Προφίλ στα Σχόλια
453455
Hide Subscriptions Community: Απόκρυψη Συνδρομών Κοινότητας
456+
Hide Channels Invalid: Το αναγνωριστικό καναλιού που δόθηκε δεν ήταν έγκυρο
457+
Hide Channels Disabled Message: Ορισμένα κανάλια αποκλείστηκαν με χρήση αναγνωριστικού
458+
και δεν υποβλήθηκαν σε επεξεργασία. Η λειτουργία μπλοκάρεται κατά την ενημέρωση
459+
αυτών των αναγνωριστικών
460+
Hide Channels Already Exists: Το αναγνωριστικό καναλιού υπάρχει ήδη
461+
Hide Channels API Error: Σφάλμα κατά την ανάκτηση χρήστη με το παρεχόμενο αναγνωριστικό.
462+
Ελέγξτε ξανά εάν το αναγνωριστικό είναι σωστό.
454463
The app needs to restart for changes to take effect. Restart and apply change?: Η
455464
εφαρμογή πρέπει να κάνει επανεκκίνηση για να εφαρμοστούν οι αλλαγές. Επανεκκίνηση
456465
και εφαρμογή αλλαγών;
@@ -526,6 +535,7 @@ Settings:
526535
Show Family Friendly Only: Εμφάνιση Μόνο Για Οικογένειες
527536
Hide Unsubscribe Button: Απόκρυψη Κουμπιού Απεγγραφής
528537
Hide Search Bar: Απόκρυψη Μπάρας Αναζήτησης
538+
Expand All Settings Sections: Αναπτύξτε όλες τις ενότητες ρυθμίσεων
529539
About:
530540
#On About page
531541
About: 'Σχετικά με'
@@ -633,6 +643,11 @@ Profile:
633643
Profile Filter: Φίλτρο προφίλ
634644
Profile Settings: Ρυθμίσεις προφίλ
635645
Toggle Profile List: Εναλλαγή Λίστας Προφίλ
646+
Profile Name: Όνομα προφίλ
647+
Edit Profile Name: Επεξεργασία ονόματος προφίλ
648+
Create Profile Name: Δημιουργία ονόματος προφίλ
649+
Open Profile Dropdown: Ανοίξτε το αναπτυσσόμενο μενού προφίλ
650+
Close Profile Dropdown: Κλείστε το αναπτυσσόμενο μενού προφίλ
636651
Channel:
637652
Subscribe: 'Εγγραφή'
638653
Unsubscribe: 'Απεγγραφή'
@@ -842,6 +857,8 @@ Video:
842857
Zωντανή συνομιλία δεν είναι διαθέσιμη για αυτήν τη ροή.\nΜπορεί να έχει απενεργοποιηθεί
843858
από τον χρήστη."
844859
Pause on Current Video: Παύση στο Τρέχον Βίντεο
860+
Unhide Channel: Εμφάνιση καναλιού
861+
Hide Channel: Απόκρυψη καναλιού
845862
Videos:
846863
#& Sort By
847864
Sort By:
@@ -1027,11 +1044,11 @@ Tooltips:
10271044
μια προσαρμοσμένη προσωρινή μνήμη εικόνων στη μνήμη. Θα οδηγήσει σε αυξημένη
10281045
χρήση RAM.
10291046
Distraction Free Settings:
1030-
Hide Channels: Εισαγάγετε ένα όνομα καναλιού ή ένα αναγνωριστικό καναλιού για
1031-
να αποκρύψετε όλα τα βίντεο, τις λίστες αναπαραγωγής και το ίδιο το κανάλι ώστε
1032-
να μην εμφανίζονται στην αναζήτηση, στις τάσεις, στα πιο δημοφιλή και προτεινόμενα.
1033-
Το όνομα του καναλιού που καταχωρίσατε πρέπει να ταιριάζει απόλυτα και να κάνει
1034-
διάκριση πεζών-κεφαλαίων.
1047+
Hide Channels: Εισαγάγετε ένα αναγνωριστικό καναλιού για να αποκρύψετε όλα τα
1048+
βίντεο, τις λίστες αναπαραγωγής και το ίδιο το κανάλι, ώστε να μην εμφανίζονται
1049+
στην αναζήτηση, τα ανερχόμενα, τα πιο δημοφιλή και προτεινόμενα. Το αναγνωριστικό
1050+
καναλιού που καταχωρίσατε πρέπει να αντιστοιχεί πλήρως και να κάνει διάκριση
1051+
πεζών-κεφαλαίων.
10351052
Hide Subscriptions Live: Αυτή η ρύθμιση παρακάμπτεται από τη ρύθμιση "{appWideSetting}"
10361053
σε όλη την εφαρμογή, στην ενότητα "{subsection}" του "{settingsSection}"
10371054
SponsorBlock Settings:
@@ -1097,3 +1114,6 @@ Playlist will pause when current video is finished: Η Λίστα Αναπαρα
10971114
όταν ολοκληρωθεί το τρέχον βίντεο
10981115
Playlist will not pause when current video is finished: Η Λίστα Αναπαραγωγής δεν θα
10991116
σταματήσει όταν ολοκληρωθεί το τρέχον βίντεο
1117+
Channel Hidden: Το {channel} προστέθηκε στο φίλτρο καναλιού
1118+
Go to page: Μετάβαση σε {page}
1119+
Channel Unhidden: Το {channel} καταργήθηκε από το φίλτρο καναλιού

static/locales/hr.yaml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,8 @@ Settings:
328328
Export Subscriptions: 'Izvoz pretplata'
329329
How do I import my subscriptions?: 'Kako mogu uvesti pretplate?'
330330
Fetch Automatically: Automatski dohvati feed
331+
Only Show Latest Video for Each Channel: Prikaži samo najnoviji video za svaki
332+
kanal
331333
Advanced Settings:
332334
Advanced Settings: 'Napredne postavke'
333335
Enable Debug Mode (Prints data to the console): 'Aktiviraj modus otklanjanja grešaka
@@ -472,7 +474,7 @@ Settings:
472474
SponsorBlock Settings: Postavke blokiranja sponzora
473475
Skip Options:
474476
Auto Skip: Automatsko preskakanje
475-
Show In Seek Bar: Pokaži u traci napretka
477+
Show In Seek Bar: Prikaži u traci napretka
476478
Skip Option: Opcija preskakanja
477479
Prompt To Skip: Poziv za preskakanje
478480
Do Nothing: Ne čini ništa
@@ -514,6 +516,7 @@ Settings:
514516
Set Password: Postavi lozinku
515517
Remove Password: Ukloni lozinku
516518
Set Password To Prevent Access: Postavi lozinku za sprečavanja pristupa postavkama
519+
Expand All Settings Sections: Rasklopi sve odjeljke postavki
517520
About:
518521
#On About page
519522
About: 'Informacije'
@@ -623,6 +626,11 @@ Profile:
623626
Profile Filter: Filtar profila
624627
Profile Settings: Postavke profila
625628
Toggle Profile List: Uključi/Isključi popis profila
629+
Profile Name: Ime profila
630+
Edit Profile Name: Uredi ime profila
631+
Create Profile Name: Stvori ime profila
632+
Open Profile Dropdown: Otvori rasklopiv izbornik profila
633+
Close Profile Dropdown: Zatvori rasklopiv izbornik profila
626634
Channel:
627635
Subscribe: 'Pretplati se'
628636
Unsubscribe: 'Otkaži pretplatu'
@@ -826,6 +834,8 @@ Video:
826834
'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': Razgovor
827835
uživo nije dostupan za ovaj prijenos. Možda ga je prenosnik deaktivirao.
828836
Pause on Current Video: Zaustavi trenutačni video
837+
Unhide Channel: Prikaži kanal
838+
Hide Channel: Sakrij kanal
829839
Videos:
830840
#& Sort By
831841
Sort By:
@@ -892,7 +902,7 @@ Comments:
892902
Newest first: Najprije najnovije
893903
Top comments: Najpopularniji komentari
894904
Sort by: Redoslijed
895-
Show More Replies: Pokaži više odgovora
905+
Show More Replies: Prikaži više odgovora
896906
From {channelName}: od {channelName}
897907
And others: i drugi
898908
Pinned by: Prikvačio/la
@@ -1057,3 +1067,6 @@ Playlist will pause when current video is finished: Zbirka će se zaustaviti kad
10571067
video završi
10581068
Playlist will not pause when current video is finished: Zbirka se neće zaustaviti
10591069
kada trenutačni video završi
1070+
Go to page: Idi na {page}
1071+
Channel Hidden: '{channel} je dodan u filtar kanala'
1072+
Channel Unhidden: '{channel} je uklonjen iz filtra kanala'

static/locales/hu.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,11 @@ Profile:
630630
Profile Filter: Profilszűrő
631631
Profile Settings: Profilbeállítások
632632
Toggle Profile List: Profillista be-/kikapcsolása
633+
Profile Name: Profilnév
634+
Edit Profile Name: Profilnév szerkesztése
635+
Create Profile Name: Profilnév létrehozása
636+
Open Profile Dropdown: Profil legördülő menü megnyítása
637+
Close Profile Dropdown: Profil legördülő menü bezárása
633638
Channel:
634639
Subscribe: 'Feliratkozás'
635640
Unsubscribe: 'Leiratkozás'
@@ -826,6 +831,8 @@ Video:
826831
'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': Az
827832
élő csevegés nem érhető el ehhez az adatfolyamhoz. Lehet, hogy a feltöltő letiltotta.
828833
Pause on Current Video: Jelenlegi videó szüneteltetése
834+
Unhide Channel: Csatorna megjelenítése
835+
Hide Channel: Csatorna elrejtése
829836
Videos:
830837
#& Sort By
831838
Sort By:
@@ -1065,3 +1072,6 @@ Playlist will pause when current video is finished: Szünetel a lejátszási lis
10651072
a jelenlegi videó véget ér
10661073
Playlist will not pause when current video is finished: Nem szünetel a lejátszási
10671074
lista, amikor a jelenlegi videó véget ér
1075+
Channel Hidden: '{channel} hozzáadva a csatornaszűrőhöz'
1076+
Go to page: Ugrás a(z) {page}. oldalra
1077+
Channel Unhidden: '{channel} eltávolítva a csatornaszűrőből'

0 commit comments

Comments
 (0)