From 7e8a3b5c1a3d33ed28a29798511f65dd1c0ebc00 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Tue, 27 Aug 2024 16:59:49 -0400 Subject: [PATCH 1/6] Don't make requests when importing subscriptions --- .../components/data-settings/data-settings.js | 323 ++++-------------- .../ft-channel-bubble/ft-channel-bubble.js | 2 +- .../ft-channel-bubble/ft-channel-bubble.vue | 7 + .../ft-subscribe-button.js | 2 +- src/renderer/components/side-nav/side-nav.css | 5 + src/renderer/components/side-nav/side-nav.vue | 6 + 6 files changed, 93 insertions(+), 252 deletions(-) diff --git a/src/renderer/components/data-settings/data-settings.js b/src/renderer/components/data-settings/data-settings.js index 1671981f1ceaa..79aa159f18be5 100644 --- a/src/renderer/components/data-settings/data-settings.js +++ b/src/renderer/components/data-settings/data-settings.js @@ -9,7 +9,6 @@ import { MAIN_PROFILE_ID } from '../../../constants' import { calculateColorLuminance, getRandomColor } from '../../helpers/colors' import { - copyToClipboard, deepCopy, escapeHTML, getTodayDateStrLocalTimezone, @@ -19,8 +18,6 @@ import { showToast, writeFileFromDialog, } from '../../helpers/utils' -import { invidiousAPICall } from '../../helpers/api/invidious' -import { getLocalChannel } from '../../helpers/api/local' export default defineComponent({ name: 'DataSettings', @@ -216,13 +213,9 @@ export default defineComponent({ return sub !== '' }) const subscriptions = [] - const errorList = [] - - showToast(this.$t('Settings.Data Settings.This might take a while, please wait')) this.updateShowProgressBar(true) this.setProgressBarPercentage(0) - let count = 0 const splitCSVRegex = /(?:,|\n|^)("(?:(?:"")|[^"])*"|[^\n",]*|(?:\n|$))/g @@ -237,93 +230,62 @@ export default defineComponent({ }).filter(channel => { return channel.length > 0 }) - new Promise((resolve) => { - let finishCount = 0 - ytsubs.forEach(async (yt) => { - const { subscription, result } = await this.subscribeToChannel({ - channelId: yt[0], - subscriptions: subscriptions, - channelName: yt[2], - count: count++, - total: ytsubs.length - }) - if (result === 1) { - subscriptions.push(subscription) - } else if (result === -1) { - errorList.push(yt) - } - finishCount++ - if (finishCount === ytsubs.length) { - resolve(true) + + ytsubs.forEach((yt) => { + const channelId = yt[0] + if (!this.isChannelSubscribed(channelId, subscriptions)) { + const subscription = { + id: channelId, + name: yt[2], + thumbnail: null } - }) - }).then(_ => { - this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(subscriptions) - this.updateProfile(this.primaryProfile) - if (errorList.length !== 0) { - errorList.forEach(e => { // log it to console for now, dedicated tab for 'error' channels needed - console.error(`failed to import ${e[2]}. Url to channel: ${e[1]}.`) - }) - showToast(this.$t('Settings.Data Settings.One or more subscriptions were unable to be imported')) - } else { - showToast(this.$t('Settings.Data Settings.All subscriptions have been successfully imported')) + + subscriptions.push(subscription) } - }).finally(_ => { - this.updateShowProgressBar(false) }) + + this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(subscriptions) + this.updateProfile(this.primaryProfile) + showToast(this.$t('Settings.Data Settings.All subscriptions have been successfully imported')) + this.updateShowProgressBar(false) }, importYouTubeSubscriptions: async function (textDecode) { const subscriptions = [] - const errorList = [] + let count = 0 showToast(this.$t('Settings.Data Settings.This might take a while, please wait')) this.updateShowProgressBar(true) this.setProgressBarPercentage(0) - let count = 0 - new Promise((resolve) => { - let finishCount = 0 - textDecode.forEach(async (channel) => { - const snippet = channel.snippet - if (typeof snippet === 'undefined') { - const message = this.$t('Settings.Data Settings.Invalid subscriptions file') - showToast(message) - throw new Error('Unable to find channel data') - } - const { subscription, result } = await this.subscribeToChannel({ - channelId: snippet.resourceId.channelId, - subscriptions: subscriptions, - channelName: snippet.title, - thumbnail: snippet.thumbnails.default.url, - count: count++, - total: textDecode.length - }) - if (result === 1) { - subscriptions.push(subscription) - } else if (result === -1) { - errorList.push([snippet.resourceId.channelId, `https://www.youtube.com/channel/${snippet.resourceId.channelId}`, snippet.title]) - } - finishCount++ - if (finishCount === textDecode.length) { - resolve(true) - } - }) - }).then(_ => { - this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(subscriptions) - this.updateProfile(this.primaryProfile) - if (errorList.length !== 0) { - errorList.forEach(e => { // log it to console for now, dedicated tab for 'error' channels needed - console.error(`failed to import ${e[2]}. Url to channel: ${e[1]}.`) + textDecode.forEach((channel) => { + const snippet = channel.snippet + if (typeof snippet === 'undefined') { + const message = this.$t('Settings.Data Settings.Invalid subscriptions file') + showToast(message) + throw new Error('Unable to find channel data') + } + + const channelId = snippet.resourceId.channelId + if (!this.isChannelSubscribed(channelId, subscriptions)) { + subscriptions.push({ + id: channelId, + name: snippet.title, + thumbnail: snippet.thumbnails.default.url }) - showToast(this.$t('Settings.Data Settings.One or more subscriptions were unable to be imported')) - } else { - showToast(this.$t('Settings.Data Settings.All subscriptions have been successfully imported')) } - }).finally(_ => { - this.updateShowProgressBar(false) + + count++ + + const progressPercentage = (count / (textDecode.length - 1)) * 100 + this.setProgressBarPercentage(progressPercentage) }) + + this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(subscriptions) + this.updateProfile(this.primaryProfile) + showToast(this.$t('Settings.Data Settings.All subscriptions have been successfully imported')) + this.updateShowProgressBar(false) }, importOpmlYouTubeSubscriptions: async function (data) { @@ -361,15 +323,14 @@ export default defineComponent({ const subscriptions = [] - showToast(this.$t('Settings.Data Settings.This might take a while, please wait')) - this.updateShowProgressBar(true) this.setProgressBarPercentage(0) let count = 0 - feedData.forEach(async (channel) => { + feedData.forEach((channel) => { const xmlUrl = channel.getAttribute('xmlUrl') + const channelName = channel.getAttribute('title') let channelId if (xmlUrl.includes('https://www.youtube.com/feeds/videos.xml?channel_id=')) { channelId = new URL(xmlUrl).searchParams.get('channel_id') @@ -379,45 +340,26 @@ export default defineComponent({ } else { console.error(`Unknown xmlUrl format: ${xmlUrl}`) } - const subExists = this.primaryProfile.subscriptions.findIndex((sub) => { - return sub.id === channelId - }) - if (subExists === -1) { - let channelInfo - if (this.backendPreference === 'invidious') { - channelInfo = await this.getChannelInfoInvidious(channelId) - } else { - channelInfo = await this.getChannelInfoLocal(channelId) - } - if (typeof channelInfo.author !== 'undefined') { - const subscription = { - id: channelId, - name: channelInfo.author, - thumbnail: channelInfo.authorThumbnails[1].url - } - subscriptions.push(subscription) + if (!this.isChannelSubscribed(channelId, subscriptions)) { + const subscription = { + id: channelId, + name: channelName, + thumbnail: null } + subscriptions.push(subscription) } count++ const progressPercentage = (count / feedData.length) * 100 this.setProgressBarPercentage(progressPercentage) - - if (count === feedData.length) { - this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(subscriptions) - this.updateProfile(this.primaryProfile) - - if (subscriptions.length < count) { - showToast(this.$t('Settings.Data Settings.One or more subscriptions were unable to be imported')) - } else { - showToast(this.$t('Settings.Data Settings.All subscriptions have been successfully imported')) - } - - this.updateShowProgressBar(false) - } }) + + this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(subscriptions) + this.updateProfile(this.primaryProfile) + showToast(this.$t('Settings.Data Settings.All subscriptions have been successfully imported')) + this.updateShowProgressBar(false) }, importNewPipeSubscriptions: async function (newPipeData) { @@ -432,51 +374,32 @@ export default defineComponent({ }) const subscriptions = [] - const errorList = [] - - showToast(this.$t('Settings.Data Settings.This might take a while, please wait')) this.updateShowProgressBar(true) this.setProgressBarPercentage(0) let count = 0 - new Promise((resolve) => { - let finishCount = 0 - newPipeSubscriptions.forEach(async (channel, index) => { - const channelId = channel.url.replace(/https:\/\/(www\.)?youtube\.com\/channel\//, '') - const { subscription, result } = await this.subscribeToChannel({ - channelId: channelId, - subscriptions: subscriptions, - channelName: channel.name, - count: count++, - total: newPipeSubscriptions.length - }) - if (result === 1) { - subscriptions.push(subscription) - } - if (result === -1) { - errorList.push([channelId, channel.url, channel.name]) - } - finishCount++ - if (finishCount === newPipeSubscriptions.length) { - resolve(true) - } - }) - }).then(_ => { - this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(subscriptions) - this.updateProfile(this.primaryProfile) - if (errorList.count > 0) { - errorList.forEach(e => { // log it to console for now, dedicated tab for 'error' channels needed - console.error(`failed to import ${e[2]}. Url to channel: ${e[1]}.`) + newPipeSubscriptions.forEach((channel) => { + const channelId = channel.url.replace(/https:\/\/(www\.)?youtube\.com\/channel\//, '') + + if (!this.isChannelSubscribed(channelId, subscriptions)) { + subscriptions.push({ + id: channelId, + name: channel.name, + thumbnail: null }) - showToast(this.$t('Settings.Data Settings.One or more subscriptions were unable to be imported')) - } else { - showToast(this.$t('Settings.Data Settings.All subscriptions have been successfully imported')) } - }).finally(_ => { - this.updateShowProgressBar(false) + count++ + + const progressPercentage = (count / (newPipeSubscriptions.length - 1)) * 100 + this.setProgressBarPercentage(progressPercentage) }) + + this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(subscriptions) + this.updateProfile(this.primaryProfile) + showToast(this.$t('Settings.Data Settings.All subscriptions have been successfully imported')) + this.updateShowProgressBar(false) }, exportSubscriptions: function (option) { @@ -622,10 +545,9 @@ export default defineComponent({ let exportText = 'Channel ID,Channel URL,Channel title\n' this.profileList[0].subscriptions.forEach((channel) => { const channelUrl = `https://www.youtube.com/channel/${channel.id}` - let channelName = channel.name - if (channelName.search(',') !== -1) { // add quotations and escape existing quotations if channel has comma in name - channelName = `"${channelName.replaceAll('"', '""')}"` - } + + // always have channel name quoted to simplify things + const channelName = `"${channel.name.replaceAll('"', '""')}"` exportText += `${channel.id},${channelUrl},${channelName}\n` }) exportText += '\n' @@ -1138,105 +1060,6 @@ export default defineComponent({ showToast(successMessage) }, - getChannelInfoInvidious: function (channelId) { - return new Promise((resolve, reject) => { - const subscriptionsPayload = { - resource: 'channels', - id: channelId, - params: {} - } - - invidiousAPICall(subscriptionsPayload).then((response) => { - resolve(response) - }).catch((err) => { - const errorMessage = this.$t('Invidious API Error (Click to copy)') - showToast(`${errorMessage}: ${err}`, 10000, () => { - copyToClipboard(err) - }) - - if (process.env.SUPPORTS_LOCAL_API && this.backendFallback && this.backendPreference === 'invidious') { - showToast(this.$t('Falling back to Local API')) - resolve(this.getChannelInfoLocal(channelId)) - } else { - resolve([]) - } - }) - }) - }, - - getChannelInfoLocal: async function (channelId) { - try { - const channel = await getLocalChannel(channelId) - - if (channel.alert) { - return [] - } - - return { - author: channel.header.author.name, - authorThumbnails: channel.header.author.thumbnails - } - } catch (err) { - console.error(err) - const errorMessage = this.$t('Local API Error (Click to copy)') - showToast(`${errorMessage}: ${err}`, 10000, () => { - copyToClipboard(err) - }) - - if (this.backendFallback && this.backendPreference === 'local') { - showToast(this.$t('Falling back to Invidious API')) - return await this.getChannelInfoInvidious(channelId) - } else { - return [] - } - } - }, - - /* - TODO: allow default thumbnail to be used to limit requests to YouTube - (thumbnail will get updated when user goes to their channel page) - Returns: - -1: an error occured - 0: already subscribed - 1: successfully subscribed - */ - async subscribeToChannel({ channelId, subscriptions, channelName = null, thumbnail = null, count = 0, total = 0 }) { - let result = 1 - if (this.isChannelSubscribed(channelId, subscriptions)) { - return { subscription: null, successMessage: 0 } - } - - let channelInfo - let subscription = null - if (channelName === null || thumbnail === null) { - try { - if (this.backendPreference === 'invidious') { - channelInfo = await this.getChannelInfoInvidious(channelId) - } else { - channelInfo = await this.getChannelInfoLocal(channelId) - } - } catch (err) { - console.error(err) - result = -1 - } - } else { - channelInfo = { author: channelName, authorThumbnails: [null, { url: thumbnail }] } - } - - if (typeof channelInfo.author !== 'undefined') { - subscription = { - id: channelId, - name: channelInfo.author, - thumbnail: channelInfo.authorThumbnails[1].url - } - } else { - result = -1 - } - const progressPercentage = (count / (total - 1)) * 100 - this.setProgressBarPercentage(progressPercentage) - return { subscription, result } - }, - isChannelSubscribed(channelId, subscriptions) { if (channelId === null) { return true } const subExists = this.primaryProfile.subscriptions.findIndex((sub) => { diff --git a/src/renderer/components/ft-channel-bubble/ft-channel-bubble.js b/src/renderer/components/ft-channel-bubble/ft-channel-bubble.js index dbff93d28e7b4..efe260efcf7f4 100644 --- a/src/renderer/components/ft-channel-bubble/ft-channel-bubble.js +++ b/src/renderer/components/ft-channel-bubble/ft-channel-bubble.js @@ -13,7 +13,7 @@ export default defineComponent({ }, channelThumbnail: { type: String, - required: true + default: null }, showSelected: { type: Boolean, diff --git a/src/renderer/components/ft-channel-bubble/ft-channel-bubble.vue b/src/renderer/components/ft-channel-bubble/ft-channel-bubble.vue index 53abe2f282c36..ed8dd5f8bf76d 100644 --- a/src/renderer/components/ft-channel-bubble/ft-channel-bubble.vue +++ b/src/renderer/components/ft-channel-bubble/ft-channel-bubble.vue @@ -6,10 +6,17 @@ :to="`/channel/${channelId}`" > +
+

Date: Tue, 27 Aug 2024 17:15:54 -0400 Subject: [PATCH 2/6] Remove unused string --- static/locales/ar.yaml | 2 -- static/locales/be.yaml | 1 - static/locales/bg.yaml | 2 -- static/locales/ca.yaml | 2 -- static/locales/ckb.yaml | 1 - static/locales/cs.yaml | 2 -- static/locales/cy.yaml | 1 - static/locales/da.yaml | 2 -- static/locales/de-DE.yaml | 2 -- static/locales/el.yaml | 2 -- static/locales/en-US.yaml | 3 --- static/locales/en_GB.yaml | 2 -- static/locales/es-MX.yaml | 2 -- static/locales/es.yaml | 2 -- static/locales/es_AR.yaml | 2 -- static/locales/et.yaml | 2 -- static/locales/eu.yaml | 2 -- static/locales/fa.yaml | 2 -- static/locales/fi.yaml | 2 -- static/locales/fr-FR.yaml | 2 -- static/locales/gl.yaml | 2 -- static/locales/he.yaml | 2 -- static/locales/hr.yaml | 2 -- static/locales/hu.yaml | 2 -- static/locales/id.yaml | 2 -- static/locales/is.yaml | 2 -- static/locales/it.yaml | 2 -- static/locales/ja.yaml | 7 +++---- static/locales/ko.yaml | 1 - static/locales/lt.yaml | 2 -- static/locales/lv.yaml | 1 - static/locales/nb_NO.yaml | 2 -- static/locales/nl.yaml | 2 -- static/locales/nn.yaml | 2 -- static/locales/pl.yaml | 2 -- static/locales/pt-BR.yaml | 2 -- static/locales/pt-PT.yaml | 2 -- static/locales/pt.yaml | 2 -- static/locales/ro.yaml | 2 -- static/locales/ru.yaml | 2 -- static/locales/sk.yaml | 2 -- static/locales/sl.yaml | 2 -- static/locales/sm.yaml | 1 - static/locales/sr.yaml | 2 -- static/locales/sv.yaml | 2 -- static/locales/tr.yaml | 2 -- static/locales/uk.yaml | 2 -- static/locales/ur.yaml | 2 -- static/locales/vi.yaml | 2 -- static/locales/zh-CN.yaml | 1 - static/locales/zh-TW.yaml | 1 - 51 files changed, 3 insertions(+), 97 deletions(-) diff --git a/static/locales/ar.yaml b/static/locales/ar.yaml index 4143fcc3c6afe..ef571b6c777af 100644 --- a/static/locales/ar.yaml +++ b/static/locales/ar.yaml @@ -524,8 +524,6 @@ Settings: Select Export Type: حدّد نوع التصدير Select Import Type: حدّد نوع الاستيراد Data Settings: إعدادات البيانات - One or more subscriptions were unable to be imported: تعذر استيراد واحد أو أكثر - من الاشتراكات Check for Legacy Subscriptions: تحقق من وجود اشتراكات بالصيغة القديمة Manage Subscriptions: إدارة الإشتراكات All playlists has been successfully imported: تم استيراد جميع قوائم التشغيل بنجاح diff --git a/static/locales/be.yaml b/static/locales/be.yaml index 0855aa431abcf..e4faf4f4d6c55 100644 --- a/static/locales/be.yaml +++ b/static/locales/be.yaml @@ -377,7 +377,6 @@ Settings: 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: '' diff --git a/static/locales/bg.yaml b/static/locales/bg.yaml index aea3525ba42ef..dcc15eba7e333 100644 --- a/static/locales/bg.yaml +++ b/static/locales/bg.yaml @@ -493,8 +493,6 @@ Settings: и профили бяха внесени успешно' 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: 'Това може да отнеме повече време, моля изчакайте' diff --git a/static/locales/ca.yaml b/static/locales/ca.yaml index b44ee60844e32..9c8b2ef49c380 100644 --- a/static/locales/ca.yaml +++ b/static/locales/ca.yaml @@ -290,8 +290,6 @@ Settings: i perfils s''han importat amb èxit' All subscriptions have been successfully imported: 'Totes les subscripcions s''han importat amb èxit' - One or more subscriptions were unable to be imported: 'Una o més subscripcions - no s''han pogut importar' Invalid subscriptions file: 'Fitxer de subscripcions invàlid' This might take a while, please wait: 'Això pot trigar una estona, si us plau, esperi' diff --git a/static/locales/ckb.yaml b/static/locales/ckb.yaml index 8a1fb1c32d6ca..a56a93b7ddceb 100644 --- a/static/locales/ckb.yaml +++ b/static/locales/ckb.yaml @@ -385,7 +385,6 @@ Settings: 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: 'تکایە چاوەڕوانبە لەوانەیە هەندێک کاتی پێ بچێت' diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index 5fdb951399fca..cf4cff8640cc2 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -541,8 +541,6 @@ Settings: kanály a profily byly úspěšně importovány' All subscriptions have been successfully imported: 'Všechny odebírané kanály byly úspěšně importovány' - One or more subscriptions were unable to be imported: 'Jednu nebo více položek - odebíraných kanálů nebylo možno importovat' Invalid subscriptions file: 'Vadný soubor odebíraných kanálů' This might take a while, please wait: 'Tato akce může chvíli trvat, prosím počkejte' Invalid history file: 'Vadný soubor s historií' diff --git a/static/locales/cy.yaml b/static/locales/cy.yaml index b806ad505514f..c75f4af839155 100644 --- a/static/locales/cy.yaml +++ b/static/locales/cy.yaml @@ -388,7 +388,6 @@ Settings: 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: '' diff --git a/static/locales/da.yaml b/static/locales/da.yaml index 42695520e621b..76a4139a5fe4f 100644 --- a/static/locales/da.yaml +++ b/static/locales/da.yaml @@ -413,8 +413,6 @@ Settings: at importere alle abonnementer og profiler' All subscriptions have been successfully imported: 'Det lykkedes at importere alle abonnementer' - One or more subscriptions were unable to be imported: 'Et eller flere abonnementer - kunne ikke importeres' Invalid subscriptions file: 'Ugyldig abonnementer-fil' This might take a while, please wait: 'Dette kan tage et stykke tid. Vent venligst' Invalid history file: 'Ugyldig historik-fil' diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml index 2972c8e1b0045..96d8bfbf43b53 100644 --- a/static/locales/de-DE.yaml +++ b/static/locales/de-DE.yaml @@ -529,8 +529,6 @@ Settings: Invalid history file: Ungültige Verlaufsdatei This might take a while, please wait: Dies dauert einen Moment, bitte warten Invalid subscriptions file: Ungültige Abo-Datei - One or more subscriptions were unable to be imported: Eine oder mehrere Abos konnten - nicht importiert werden All subscriptions and profiles have been successfully imported: Alle Abos und Profile wurden erfolgreich importiert All subscriptions have been successfully imported: Alle Abos wurden erfolgreich diff --git a/static/locales/el.yaml b/static/locales/el.yaml index a6afd33e21bdc..4d3d79a2e4665 100644 --- a/static/locales/el.yaml +++ b/static/locales/el.yaml @@ -350,8 +350,6 @@ Settings: των συνδρομών και των προφίλ έχει γίνει με επιτυχία' 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: 'Αυτή η ενέργεια μπορεί να διαρκέσει για λίγο, παρακαλώ περιμένετε' diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index ef1e6a8eb6963..72c9da86d16af 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -551,10 +551,7 @@ Settings: and profiles have been successfully imported All subscriptions have been successfully imported: All subscriptions have been successfully imported - One or more subscriptions were unable to be imported: One or more subscriptions - were unable to be imported Invalid subscriptions file: Invalid subscriptions file - This might take a while, please wait: This might take a while, please wait Invalid history file: Invalid history file Subscriptions have been successfully exported: Subscriptions have been successfully exported diff --git a/static/locales/en_GB.yaml b/static/locales/en_GB.yaml index ae4bbf9366aee..23d2b2fddc8e8 100644 --- a/static/locales/en_GB.yaml +++ b/static/locales/en_GB.yaml @@ -495,8 +495,6 @@ Settings: and profiles have been successfully imported' All subscriptions have been successfully imported: 'All subscriptions have been successfully imported' - One or more subscriptions were unable to be imported: 'One or more subscriptions - were unable to be imported' Invalid subscriptions file: 'Invalid subscriptions file' This might take a while, please wait: 'This might take a while, please wait' Invalid history file: 'Invalid history file' diff --git a/static/locales/es-MX.yaml b/static/locales/es-MX.yaml index 6f3b593981352..6b11113849531 100644 --- a/static/locales/es-MX.yaml +++ b/static/locales/es-MX.yaml @@ -312,8 +312,6 @@ Settings: This might take a while, please wait: Esto puede tomar un tiempo, por favor espera All subscriptions and profiles have been successfully imported: Suscripciones y perfiles se importaron con éxito - One or more subscriptions were unable to be imported: Una o más suscripciones - no se pudo importar All subscriptions have been successfully imported: Suscripciones se importaron con éxito Subscriptions have been successfully exported: Suscripciones se exportaron con diff --git a/static/locales/es.yaml b/static/locales/es.yaml index 23529fdb67b28..4d8dca10da693 100644 --- a/static/locales/es.yaml +++ b/static/locales/es.yaml @@ -507,8 +507,6 @@ Settings: Unable to write file: 'Imposible escribir el archivo' Unknown data key: 'Clave de datos desconocida' How do I import my subscriptions?: '¿Cómo puedo importar mis suscripciones?' - 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 Import Playlists: Importar listas de reproducción diff --git a/static/locales/es_AR.yaml b/static/locales/es_AR.yaml index 50e15c8a0d88a..15677a9ba6619 100644 --- a/static/locales/es_AR.yaml +++ b/static/locales/es_AR.yaml @@ -333,8 +333,6 @@ Settings: All subscriptions and profiles have been successfully imported: Suscripciones y perfiles se importaron con éxito Unable to read file: No se pudo leer el archivo - One or more subscriptions were unable to be imported: Una o más suscripciones - no se pudo importar Invalid subscriptions file: Archivo de suscripciones no válido History File: Archivo de historial Profile object has insufficient data, skipping item: El objeto de perfil tiene diff --git a/static/locales/et.yaml b/static/locales/et.yaml index 482cd17b77ec4..3115714d55aba 100644 --- a/static/locales/et.yaml +++ b/static/locales/et.yaml @@ -487,8 +487,6 @@ Settings: ja profiilide import õnnestus' All subscriptions have been successfully imported: 'Kõikide tellimuste import õnnestus' - One or more subscriptions were unable to be imported: 'Ühte või enamat tellimust - ei õnnestunud importida' Invalid subscriptions file: 'Vigane tellimuste fail' This might take a while, please wait: 'Nüüd võib natuke aega kuluda, palun oota' Invalid history file: 'Vigane ajaloofail' diff --git a/static/locales/eu.yaml b/static/locales/eu.yaml index bf40cbe56b292..fbfb021d9f58f 100644 --- a/static/locales/eu.yaml +++ b/static/locales/eu.yaml @@ -541,8 +541,6 @@ Settings: guztiak ongi inportatu dira' All subscriptions have been successfully imported: 'Harpidetza guztiak ongi inportatu dira' - One or more subscriptions were unable to be imported: 'Zenbait harpidetza ezin - izan dira inportatu' Invalid subscriptions file: 'Harpidetza fitxategi baliogabea' This might take a while, please wait: 'Baliteke denbora pixka bat behar izatea, itxaron mesedez' diff --git a/static/locales/fa.yaml b/static/locales/fa.yaml index e225e3344c95c..7051a8271ece0 100644 --- a/static/locales/fa.yaml +++ b/static/locales/fa.yaml @@ -377,8 +377,6 @@ Settings: و پروفایل ها با موفقیت ثبت شد' 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: 'فایل تاریخچه نامعتبر است' diff --git a/static/locales/fi.yaml b/static/locales/fi.yaml index 3214b97bf01fc..0ca3d7c52aa23 100644 --- a/static/locales/fi.yaml +++ b/static/locales/fi.yaml @@ -439,8 +439,6 @@ Settings: Invalid history file: Puutteellinen historiatiedosto This might take a while, please wait: Tämä saattaa viedä tovin, odota hetki Invalid subscriptions file: Puutteellinen tilaustiedosto - One or more subscriptions were unable to be imported: Yhden tai useamman tilauksen - tuonti epäonnistui All subscriptions have been successfully imported: Kaikki tilaukset on tuotu onnistuneesti All subscriptions and profiles have been successfully imported: Kaikki tilaukset ja profiilit on tuotu onnistuneesti diff --git a/static/locales/fr-FR.yaml b/static/locales/fr-FR.yaml index 42eb4387c42b5..a4ff0595011a6 100644 --- a/static/locales/fr-FR.yaml +++ b/static/locales/fr-FR.yaml @@ -558,8 +558,6 @@ Settings: données d'historique sont insuffisantes Profile object has insufficient data, skipping item: Ignorer cet élément car les données de profil sont insuffisantes - One or more subscriptions were unable to be imported: Un ou plusieurs abonnements - n'ont pas pu être importés Check for Legacy Subscriptions: Vérifier les abonnements Legacy Manage Subscriptions: Gérer les abonnements Import Playlists: Importer des listes de lecture diff --git a/static/locales/gl.yaml b/static/locales/gl.yaml index a0c6945027581..ec96a721382e1 100644 --- a/static/locales/gl.yaml +++ b/static/locales/gl.yaml @@ -355,8 +355,6 @@ Settings: e perfís foron importados correctamente' All subscriptions have been successfully imported: 'Tódalas subscricións foron importadas correctamente' - One or more subscriptions were unable to be imported: 'Unha ou máis subscricións - non puideron ser importadas' Invalid subscriptions file: 'Ficheiro de subcricións inválido' This might take a while, please wait: 'Isto pode levar un cacho. Por favor, agarda' Invalid history file: 'Ficheiro de histórico inválido' diff --git a/static/locales/he.yaml b/static/locales/he.yaml index 3af8747990d37..fe90a01a3310e 100644 --- a/static/locales/he.yaml +++ b/static/locales/he.yaml @@ -383,8 +383,6 @@ Settings: 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: 'קובץ היסטוריה בלתי קריא' diff --git a/static/locales/hr.yaml b/static/locales/hr.yaml index 660b6285532e9..1ef894fca07cf 100644 --- a/static/locales/hr.yaml +++ b/static/locales/hr.yaml @@ -527,8 +527,6 @@ Settings: Select Import Type: Odaberi vrstu uvoza Data Settings: Postavke podataka How do I import my subscriptions?: Kako uvesti pretplate? - 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 Import Playlists: Uvezi zbirke diff --git a/static/locales/hu.yaml b/static/locales/hu.yaml index 44863449780f6..9a11b286caa9f 100644 --- a/static/locales/hu.yaml +++ b/static/locales/hu.yaml @@ -500,8 +500,6 @@ Settings: és a profil sikeresen importálva' All subscriptions have been successfully imported: 'Az összes feliratkozás sikeresen importálva' - One or more subscriptions were unable to be imported: 'Egy vagy több feliratkozást - nem sikerült importálni' Invalid subscriptions file: 'Érvénytelen feliratkozási fájl' This might take a while, please wait: 'Ez eltarthat egy ideig. Kis türelmet kérünk' Invalid history file: 'Érvénytelen előzményfájl' diff --git a/static/locales/id.yaml b/static/locales/id.yaml index 09a8dfdf3b0a2..db26d1d1a1a8c 100644 --- a/static/locales/id.yaml +++ b/static/locales/id.yaml @@ -379,8 +379,6 @@ Settings: dan profil telah berhasil diimpor' All subscriptions have been successfully imported: 'Semua langganan telah berhasil diimpor' - One or more subscriptions were unable to be imported: 'Satu atau lebih langganan - tidak dapat diimpor' Invalid subscriptions file: 'Berkas langganan tidak valid' This might take a while, please wait: 'Mungkin memakan waktu cukup lama, silakan tunggu' diff --git a/static/locales/is.yaml b/static/locales/is.yaml index 4aeb1350c226b..633a6592f5864 100644 --- a/static/locales/is.yaml +++ b/static/locales/is.yaml @@ -548,8 +548,6 @@ Settings: á öllum áskriftum og notkunarsniðum tókst' All subscriptions have been successfully imported: 'Innflutningur á öllum áskriftum tókst' - One or more subscriptions were unable to be imported: 'Ekki tókst að flytja inn - eina eða fleiri áskriftir' Invalid subscriptions file: 'Ógild áskriftaskrá' This might take a while, please wait: 'Þetta getur tekið dálítinn tíma, sýndu smá þolinmæði' diff --git a/static/locales/it.yaml b/static/locales/it.yaml index a855085853555..7e6cdd650b1ac 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -522,8 +522,6 @@ Settings: This might take a while, please wait: Questa operazione potrebbe richiedere del tempo. Per favore attendi Invalid subscriptions file: File iscrizioni non valido - One or more subscriptions were unable to be imported: Una o più iscrizioni non - sono state importate All subscriptions have been successfully imported: Tutte le iscrizioni sono state importate con successo All subscriptions and profiles have been successfully imported: Tutte le iscrizioni diff --git a/static/locales/ja.yaml b/static/locales/ja.yaml index 8d0053b0277aa..18fef20f677a9 100644 --- a/static/locales/ja.yaml +++ b/static/locales/ja.yaml @@ -123,7 +123,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: + Playlist Message: このページは完全に機能する再生リストを反映していません。保存した動画やお気に入りの動画のみが表示されます。作業が完了すると、現在ここにあるすべての動画は「Favorites」の再生リストに移行されます。 Search bar placeholder: 再生リストの検索 Empty Search Message: この再生リストに、検索に一致する動画はありません @@ -479,7 +479,6 @@ Settings: Select Export Type: エクスポート形式の選択 Select Import Type: インポート形式の選択 Data Settings: データの設定 - One or more subscriptions were unable to be imported: いくつかの登録チャンネルはインポートできませんでした Check for Legacy Subscriptions: 旧型式の登録チャンネルの確認 Manage Subscriptions: 登録チャンネルの管理 Playlist insufficient data: 再生リスト「{playlist}」のデータが不十分なため、項目をスキップします @@ -597,7 +596,7 @@ Settings: Experimental Settings: Replace HTTP Cache: HTTP キャッシュの置換 Experimental Settings: 実験中の設定 - Warning: + Warning: これらの設定は実験的なものであり、有効にするとアプリのクラッシュを引き起こす恐れがあります。バックアップをとっておくことを強くお勧めします。自己責任で使用してください! Password Settings: Password Settings: パスワードの設定 @@ -1049,7 +1048,7 @@ Tooltips: ID は、大文字と小文字を区別するので完全に一致させてください。 Hide Subscriptions Live: この設定は、アプリ全体の "{appWideSetting}" 設定により上書きされます。"{settingsSection}" 項目の "{subsection}" にあります - Hide Videos and Playlists Containing Text: FreeTube + Hide Videos and Playlists Containing Text: FreeTube 全体での履歴やあなたの再生リストと再生リスト内の動画を除き、元のタイトルにその単語を含む動画や単語の一部または、フレーズ(大文字と小文字を区別しない)が含まれているすべての動画と再生リストを非表示にします。 SponsorBlock Settings: UseDeArrowTitles: 動画のタイトルを DeArrow からユーザーが投稿したタイトルに置き換えます。 diff --git a/static/locales/ko.yaml b/static/locales/ko.yaml index 4fd3d4d105506..8dc11675164c4 100644 --- a/static/locales/ko.yaml +++ b/static/locales/ko.yaml @@ -331,7 +331,6 @@ Settings: 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: '잘못된 기록 파일입니다' diff --git a/static/locales/lt.yaml b/static/locales/lt.yaml index 8d53372268df8..dfed670b6e4ca 100644 --- a/static/locales/lt.yaml +++ b/static/locales/lt.yaml @@ -379,8 +379,6 @@ Settings: ir profiliai sėkmingai importuoti' All subscriptions have been successfully imported: 'Visos prenumeratos sėkmingai importuotos' - One or more subscriptions were unable to be imported: 'Nepavyko importuoti vienos - ar daugiau prenumeratų' Invalid subscriptions file: 'Netinkamas prenumeratų failas' This might take a while, please wait: 'Tai gali užtrukti, palaukite' Invalid history file: 'Netinkamas žiūrėjimo istorijos failas' diff --git a/static/locales/lv.yaml b/static/locales/lv.yaml index b8b4296185661..7c5857e0154a5 100644 --- a/static/locales/lv.yaml +++ b/static/locales/lv.yaml @@ -382,7 +382,6 @@ Settings: datu, izlaiž vienumu' 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: 'Tas var aizņemt kādu laiku, lūdzu gaidiet' Invalid history file: 'Nederīga vēstures datne' diff --git a/static/locales/nb_NO.yaml b/static/locales/nb_NO.yaml index ad57f049fff07..e57f9bc17c96f 100644 --- a/static/locales/nb_NO.yaml +++ b/static/locales/nb_NO.yaml @@ -337,8 +337,6 @@ Settings: importert History object has insufficient data, skipping item: Hopper over historikkobjekt med utilstrekkelig data - One or more subscriptions were unable to be imported: Ett eller flere abonnement - kunne ikke importeres All subscriptions have been successfully imported: Alle abonnementer har blitt importert All subscriptions and profiles have been successfully imported: Importerte alle diff --git a/static/locales/nl.yaml b/static/locales/nl.yaml index 619ac6fc94e1f..2b312f40b9026 100644 --- a/static/locales/nl.yaml +++ b/static/locales/nl.yaml @@ -502,8 +502,6 @@ Settings: Invalid history file: Ongeldig geschiedenisbestand This might take a while, please wait: Dit kan eventjes duren, even geduld aub Invalid subscriptions file: Ongeldig abonnementenbestand - One or more subscriptions were unable to be imported: Een of meer abonnementen - konden niet worden geïmporteerd All subscriptions have been successfully imported: Alle abonnementen zijn met succes geïmporteerd All subscriptions and profiles have been successfully imported: Alle abonnementen diff --git a/static/locales/nn.yaml b/static/locales/nn.yaml index f08b5d593d7a0..ce1f7c1ab6897 100644 --- a/static/locales/nn.yaml +++ b/static/locales/nn.yaml @@ -346,8 +346,6 @@ Settings: og profila har blitt importert' All subscriptions have been successfully imported: 'Alle abonnement har blitt importert' - One or more subscriptions were unable to be imported: 'Eit eller fleire abonnentar - kunne ikkje importerast' Invalid subscriptions file: 'Ugyldig abonnementfil' This might take a while, please wait: 'Dette kan ta ei stund. Ver venleg og vent' Invalid history file: 'Ugyldig historikkfil' diff --git a/static/locales/pl.yaml b/static/locales/pl.yaml index c0a425607f809..71c6919a57254 100644 --- a/static/locales/pl.yaml +++ b/static/locales/pl.yaml @@ -540,8 +540,6 @@ Settings: Select Export Type: Wybierz typ eksportu 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ć - co najmniej jednej subskrypcji Check for Legacy Subscriptions: Sprawdź subskrypcje ze starej wersji Manage Subscriptions: Zarządzaj subskrypcjami Export Playlists: Wyeksportuj playlisty diff --git a/static/locales/pt-BR.yaml b/static/locales/pt-BR.yaml index 6188e9847ce0a..eafeed21609c8 100644 --- a/static/locales/pt-BR.yaml +++ b/static/locales/pt-BR.yaml @@ -506,8 +506,6 @@ Settings: Subscriptions have been successfully exported: Inscrições foram exportadas com sucesso Invalid history file: Arquivo de histórico inválido - One or more subscriptions were unable to be imported: Uma ou mais inscrições não - foram importadas All subscriptions have been successfully imported: Todas as inscrições foram importadas com sucesso Select Import Type: Selecionar tipo de importação diff --git a/static/locales/pt-PT.yaml b/static/locales/pt-PT.yaml index b4e7e67611c9e..8448fd3f251c0 100644 --- a/static/locales/pt-PT.yaml +++ b/static/locales/pt-PT.yaml @@ -531,8 +531,6 @@ Settings: e perfis foram importados com sucesso All subscriptions have been successfully imported: Todas as subscrições foram importadas com sucesso - One or more subscriptions were unable to be imported: Uma ou mais subscrições - não foram importadas Invalid subscriptions file: Ficheiro de subscrições inválido This might take a while, please wait: Este processo pode ser demorado. Invalid history file: Ficheiro de histórico inválido diff --git a/static/locales/pt.yaml b/static/locales/pt.yaml index 4a5bf897ac130..470b74724f93a 100644 --- a/static/locales/pt.yaml +++ b/static/locales/pt.yaml @@ -483,8 +483,6 @@ Settings: e perfis foram importados com sucesso' All subscriptions have been successfully imported: 'Todas as subscrições foram importadas com sucesso' - One or more subscriptions were unable to be imported: 'Uma ou mais subscrições - não foram importadas' Invalid subscriptions file: 'Ficheiro de subscrições inválido' This might take a while, please wait: 'Este processo pode ser demorado.' Invalid history file: 'Ficheiro de histórico inválido' diff --git a/static/locales/ro.yaml b/static/locales/ro.yaml index ccb291573eb6a..51e2d7ce7fd7e 100644 --- a/static/locales/ro.yaml +++ b/static/locales/ro.yaml @@ -476,8 +476,6 @@ Settings: și profilurile au fost importate cu succes' All subscriptions have been successfully imported: 'Toate abonamentele au fost importate cu succes' - One or more subscriptions were unable to be imported: 'Unul sau mai multe abonamente - nu au putut fi importate' Invalid subscriptions file: 'Fișier de abonamente invalid' This might take a while, please wait: 'Acest lucru ar putea dura ceva timp, vă rugăm să așteptați' diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index 0a28229339f14..67edab9204212 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -528,8 +528,6 @@ Settings: Select Export Type: Выбрать тип экспорта Select Import Type: Выбрать тип импорта Data Settings: Данные - One or more subscriptions were unable to be imported: Не удалось импортировать - одну или несколько подписок Check for Legacy Subscriptions: Проверить устаревшие подписки Manage Subscriptions: Управление подписками Import Playlists: Импортировать подборки diff --git a/static/locales/sk.yaml b/static/locales/sk.yaml index 2c03d2c6ceb8e..6b0e8da2c2c7b 100644 --- a/static/locales/sk.yaml +++ b/static/locales/sk.yaml @@ -278,8 +278,6 @@ Settings: Invalid history file: Neplatný súbor histórie This might take a while, please wait: Môže to chvíľu trvať, čakajte prosím Invalid subscriptions file: Neplatný súbor s odbermi - One or more subscriptions were unable to be imported: Jeden alebo viac odberov - sa nepodarilo importovať All subscriptions have been successfully imported: Všetky odbery sa úspešne importovali All subscriptions and profiles have been successfully imported: Všetky odbery a profily sa úspešne importovali diff --git a/static/locales/sl.yaml b/static/locales/sl.yaml index 64416d0fa2f67..ce605f0d92255 100644 --- a/static/locales/sl.yaml +++ b/static/locales/sl.yaml @@ -321,8 +321,6 @@ Settings: in profili so bili uspešno uvoženi' All subscriptions have been successfully imported: 'Vse naročnine so bile uspešno uvožene' - One or more subscriptions were unable to be imported: 'Ene ali več naročnin ni - bilo mogoče uvoziti' Invalid subscriptions file: 'Neveljavna datoteka z naročninami' This might take a while, please wait: 'To bo lahko trajalo nekaj časa. Prosimo, počakajte' diff --git a/static/locales/sm.yaml b/static/locales/sm.yaml index 970491407b4ad..83252c853dc89 100644 --- a/static/locales/sm.yaml +++ b/static/locales/sm.yaml @@ -378,7 +378,6 @@ Settings: 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: '' diff --git a/static/locales/sr.yaml b/static/locales/sr.yaml index 462ce581e0f3c..2c8ffd385dc10 100644 --- a/static/locales/sr.yaml +++ b/static/locales/sr.yaml @@ -547,8 +547,6 @@ Settings: 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: 'Неважећи фајл историје' diff --git a/static/locales/sv.yaml b/static/locales/sv.yaml index 2464513a6d48b..064f186f46a8c 100644 --- a/static/locales/sv.yaml +++ b/static/locales/sv.yaml @@ -421,8 +421,6 @@ Settings: All subscriptions and profiles have been successfully imported: 'Alla prenumerationer och profiler har importerats' All subscriptions have been successfully imported: 'Alla prenumerationer har importerats' - One or more subscriptions were unable to be imported: 'En eller flera prenumerationer - kunde inte importeras' Invalid subscriptions file: 'Ogiltigt prenumerationsarkiv' This might take a while, please wait: 'Detta kan ta ett tag, vänligen vänta' Invalid history file: 'Ogiltigt historikarkiv' diff --git a/static/locales/tr.yaml b/static/locales/tr.yaml index 7068693262e86..ad960d7e5dd26 100644 --- a/static/locales/tr.yaml +++ b/static/locales/tr.yaml @@ -491,8 +491,6 @@ Settings: ve profiller başarılı bir şekilde içe aktarıldı' All subscriptions have been successfully imported: 'Tüm abonelikler başarılı bir şekilde içe aktarıldı' - One or more subscriptions were unable to be imported: 'Bir ya da daha fazla abonelik - içe aktarılamadı' Invalid subscriptions file: 'Geçersiz aboneler dosyası' This might take a while, please wait: 'Biraz uzun sürebilir, lütfen bekleyin' Invalid history file: 'Geçersiz geçmiş dosyası' diff --git a/static/locales/uk.yaml b/static/locales/uk.yaml index f3f93d539b443..1210830ecfaa8 100644 --- a/static/locales/uk.yaml +++ b/static/locales/uk.yaml @@ -414,8 +414,6 @@ Settings: 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: 'Недійсний файл історії' diff --git a/static/locales/ur.yaml b/static/locales/ur.yaml index 0c4030bfd4c68..12809cac6bcc0 100644 --- a/static/locales/ur.yaml +++ b/static/locales/ur.yaml @@ -110,8 +110,6 @@ Settings: اور پروفائلز کو کامیابی کے ساتھ درآمد کیا گیا ہے۔' All subscriptions have been successfully imported: 'تمام سبسکرپشنز ہو چکی ہیں۔ کامیابی سے درآمد کیا گیا۔' - One or more subscriptions were unable to be imported: 'ایک یا زیادہ سبسکرپشنز - درآمد کرنے کے قابل نہیں تھے' Subscriptions have been successfully exported: 'سبسکرپشنز کامیابی سے ہو گئی ہیں۔ برآمد' History object has insufficient data, skipping item: 'تاریخ کا اعتراض ناکافی ہے۔ diff --git a/static/locales/vi.yaml b/static/locales/vi.yaml index 18434fcf178e9..15de51649098d 100644 --- a/static/locales/vi.yaml +++ b/static/locales/vi.yaml @@ -439,8 +439,6 @@ Settings: Invalid history file: Tệp lịch sử không hợp lệ This might take a while, please wait: Điều này có thể tốn thời gian, xin hãy chờ Invalid subscriptions file: Tệp đăng ký không hợp lệ - One or more subscriptions were unable to be imported: Một hay nhiều đăng ký không - thể nhập All subscriptions have been successfully imported: Tất cả đăng ký đã được nhập vào thành công All subscriptions and profiles have been successfully imported: Tất cả các đăng diff --git a/static/locales/zh-CN.yaml b/static/locales/zh-CN.yaml index 412c1b9c1483d..4beafac044f30 100644 --- a/static/locales/zh-CN.yaml +++ b/static/locales/zh-CN.yaml @@ -474,7 +474,6 @@ Settings: Select Export Type: 选择导出类型 Select Import Type: 选择导入类型 Data Settings: 数据设置 - One or more subscriptions were unable to be imported: 一个或者更多订阅无法被导入 Check for Legacy Subscriptions: 检查传统订阅 Manage Subscriptions: 管理订阅 Import Playlists: 导入播放列表 diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index 3ce06ca373f7b..de48a2baf430c 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -476,7 +476,6 @@ Settings: Select Export Type: 選取匯出類型 Select Import Type: 選取匯入類型 Data Settings: 資料設定 - One or more subscriptions were unable to be imported: 一個或者更多訂閱無法被匯入 Check for Legacy Subscriptions: 檢查舊版訂閱 Manage Subscriptions: 管理訂閱 Import Playlists: 匯入播放清單 From a317cd4375425d5da9c58d899ac6b7091b3d2566 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Tue, 27 Aug 2024 20:32:08 -0400 Subject: [PATCH 3/6] Fix SubscribedChannels page when thumbnail is missing --- .../views/SubscribedChannels/SubscribedChannels.css | 1 + src/renderer/views/SubscribedChannels/SubscribedChannels.js | 1 + .../views/SubscribedChannels/SubscribedChannels.vue | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/src/renderer/views/SubscribedChannels/SubscribedChannels.css b/src/renderer/views/SubscribedChannels/SubscribedChannels.css index bc34f613c3bcb..a9ba894a37e03 100644 --- a/src/renderer/views/SubscribedChannels/SubscribedChannels.css +++ b/src/renderer/views/SubscribedChannels/SubscribedChannels.css @@ -32,6 +32,7 @@ flex-grow: 0; display: flex; align-items: center; + color: inherit; } .channelThumbnail { diff --git a/src/renderer/views/SubscribedChannels/SubscribedChannels.js b/src/renderer/views/SubscribedChannels/SubscribedChannels.js index 797e379ebe114..acccb7e26c5ff 100644 --- a/src/renderer/views/SubscribedChannels/SubscribedChannels.js +++ b/src/renderer/views/SubscribedChannels/SubscribedChannels.js @@ -111,6 +111,7 @@ export default defineComponent({ }, thumbnailURL: function(originalURL) { + if (originalURL == null) { return null } let newURL = originalURL // Sometimes relative protocol URLs are passed in if (originalURL.startsWith('//')) { diff --git a/src/renderer/views/SubscribedChannels/SubscribedChannels.vue b/src/renderer/views/SubscribedChannels/SubscribedChannels.vue index 323681aca1801..034c414091508 100644 --- a/src/renderer/views/SubscribedChannels/SubscribedChannels.vue +++ b/src/renderer/views/SubscribedChannels/SubscribedChannels.vue @@ -36,11 +36,17 @@ :to="`/channel/${channel.id}`" > + Date: Wed, 28 Aug 2024 21:56:20 -0400 Subject: [PATCH 4/6] Get thumbnail from parsed header when using local api for subscribedchannels view --- src/renderer/views/SubscribedChannels/SubscribedChannels.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/views/SubscribedChannels/SubscribedChannels.js b/src/renderer/views/SubscribedChannels/SubscribedChannels.js index acccb7e26c5ff..eda06ec8ee14e 100644 --- a/src/renderer/views/SubscribedChannels/SubscribedChannels.js +++ b/src/renderer/views/SubscribedChannels/SubscribedChannels.js @@ -5,7 +5,7 @@ import FtFlexBox from '../../components/ft-flex-box/ft-flex-box.vue' import FtInput from '../../components/ft-input/ft-input.vue' import FtSubscribeButton from '../../components/ft-subscribe-button/ft-subscribe-button.vue' import { invidiousGetChannelInfo, youtubeImageUrlToInvidious, invidiousImageUrlToInvidious } from '../../helpers/api/invidious' -import { getLocalChannel } from '../../helpers/api/local' +import { getLocalChannel, parseLocalChannelHeader } from '../../helpers/api/local' import { ctrlFHandler } from '../../helpers/utils' export default defineComponent({ @@ -141,7 +141,7 @@ export default defineComponent({ getLocalChannel(channel.id).then(response => { if (!response.alert) { this.updateSubscriptionDetails({ - channelThumbnailUrl: this.thumbnailURL(response.header.author.thumbnails[0].url), + channelThumbnailUrl: this.thumbnailURL(parseLocalChannelHeader(response).thumbnailUrl), channelName: channel.name, channelId: channel.id }) From 91ef230121d695ba58336a5ffc3d7c393a3ecefe Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Wed, 28 Aug 2024 22:05:10 -0400 Subject: [PATCH 5/6] Remove unused async and unused computed properties --- .../components/data-settings/data-settings.js | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/renderer/components/data-settings/data-settings.js b/src/renderer/components/data-settings/data-settings.js index 79aa159f18be5..492098236405e 100644 --- a/src/renderer/components/data-settings/data-settings.js +++ b/src/renderer/components/data-settings/data-settings.js @@ -44,12 +44,6 @@ export default defineComponent({ } }, computed: { - backendPreference: function () { - return this.$store.getters.getBackendPreference - }, - backendFallback: function () { - return this.$store.getters.getBackendFallback - }, profileList: function () { return this.$store.getters.getProfileList }, @@ -208,7 +202,7 @@ export default defineComponent({ showToast(this.$t('Settings.Data Settings.All subscriptions and profiles have been successfully imported')) }, - importCsvYouTubeSubscriptions: async function(textDecode) { // first row = header, last row = empty + importCsvYouTubeSubscriptions: function(textDecode) { // first row = header, last row = empty const youtubeSubscriptions = textDecode.split('\n').filter(sub => { return sub !== '' }) @@ -250,7 +244,7 @@ export default defineComponent({ this.updateShowProgressBar(false) }, - importYouTubeSubscriptions: async function (textDecode) { + importYouTubeSubscriptions: function (textDecode) { const subscriptions = [] let count = 0 @@ -288,7 +282,7 @@ export default defineComponent({ this.updateShowProgressBar(false) }, - importOpmlYouTubeSubscriptions: async function (data) { + importOpmlYouTubeSubscriptions: function (data) { let xmlDom const domParser = new DOMParser() try { @@ -362,7 +356,7 @@ export default defineComponent({ this.updateShowProgressBar(false) }, - importNewPipeSubscriptions: async function (newPipeData) { + importNewPipeSubscriptions: function (newPipeData) { if (typeof newPipeData.subscriptions === 'undefined') { showToast(this.$t('Settings.Data Settings.Invalid subscriptions file')) From 60a11d39290d9280f58a7636ec3eeb692142eb38 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Thu, 29 Aug 2024 00:22:52 -0400 Subject: [PATCH 6/6] filter freetube.db subs by id not name --- src/renderer/components/data-settings/data-settings.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/renderer/components/data-settings/data-settings.js b/src/renderer/components/data-settings/data-settings.js index 492098236405e..c528fcabd283e 100644 --- a/src/renderer/components/data-settings/data-settings.js +++ b/src/renderer/components/data-settings/data-settings.js @@ -160,7 +160,7 @@ export default defineComponent({ this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(profileObject.subscriptions) this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.filter((sub, index) => { const profileIndex = this.primaryProfile.subscriptions.findIndex((x) => { - return x.name === sub.name + return x.id === sub.id }) return profileIndex === index @@ -176,7 +176,7 @@ export default defineComponent({ existingProfile.subscriptions = existingProfile.subscriptions.concat(profileObject.subscriptions) existingProfile.subscriptions = existingProfile.subscriptions.filter((sub, index) => { const profileIndex = existingProfile.subscriptions.findIndex((x) => { - return x.name === sub.name + return x.id === sub.id }) return profileIndex === index @@ -189,7 +189,7 @@ export default defineComponent({ this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(profileObject.subscriptions) this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.filter((sub, index) => { const profileIndex = this.primaryProfile.subscriptions.findIndex((x) => { - return x.name === sub.name + return x.id === sub.id }) return profileIndex === index