diff --git a/src/components/downloads/QueueItem.vue b/src/components/downloads/QueueItem.vue index 8495ee7..dab5e35 100644 --- a/src/components/downloads/QueueItem.vue +++ b/src/components/downloads/QueueItem.vue @@ -67,6 +67,9 @@ export default { hasFails() { return this.queueItem.failed >= 1 }, + hasErrors() { + return this.queueItem.errors.length >= 1 + }, allFailed() { let allFailed = false @@ -77,7 +80,7 @@ export default { return allFailed }, finishedWithFails() { - return this.queueItem.status === 'download finished' && this.hasFails + return this.queueItem.status === 'download finished' && (this.hasFails || this.hasErrors) }, isDeterminateStatus() { return possibleStates.includes(this.queueItem.status) @@ -93,7 +96,7 @@ export default { let width = 0 let backgroundColor = 'var(--primary-color)' - if (this.hasFails) { + if (this.hasFails || this.hasErrors) { // Orange backgroundColor = 'hsl(33, 100%, 47%)' } else { @@ -128,7 +131,7 @@ export default { let text = 'delete_forever' if (this.queueItem.status === 'download finished') { - if (!this.hasFails) { + if (!(this.hasFails || this.hasErrors)) { text = 'done' } else if (this.queueItem.failed >= this.queueItem.size) { text = 'error' diff --git a/src/components/downloads/TheDownloadBar.vue b/src/components/downloads/TheDownloadBar.vue index 1188994..484a65f 100644 --- a/src/components/downloads/TheDownloadBar.vue +++ b/src/components/downloads/TheDownloadBar.vue @@ -254,7 +254,7 @@ export default { }, updateQueue(update) { // downloaded and failed default to false? - const { uuid, downloaded, failed, progress, conversion, error, data, errid, stack } = update + const { uuid, downloaded, failed, progress, conversion, error, data, errid, stack, postFailed } = update if (uuid && this.queue.includes(uuid)) { if (downloaded) { @@ -273,6 +273,10 @@ export default { if (conversion) { this.queueList[uuid].conversion = conversion } + + if (postFailed) { + this.queueList[uuid].errors.push({ message: error, data, stack }) + } } }, removeFromQueue(uuid) { diff --git a/src/components/pages/Errors.vue b/src/components/pages/Errors.vue index 388f19f..e5fe4fd 100644 --- a/src/components/pages/Errors.vue +++ b/src/components/pages/Errors.vue @@ -2,12 +2,12 @@

{{ $t('errors.title', { name: title }) }}

- +
- - - + + + @@ -16,6 +16,21 @@
ID{{ $tc('globals.listTabs.artist', 1) }}{{ $tc('globals.listTabs.title', 1) }}{{ $tc('globals.listTabs.error', 1) }}{{ $tc('globals.listTabs.artist', 1) }}{{ $tc('globals.listTabs.title', 1) }}{{ $tc('globals.listTabs.error', 1) }}
{{ error.data.id }}{{ error.errid ? $t(`errors.ids.${error.errid}`) : error.message }}
+
+

{{$t('errors.postTitle')}}

+ + + + + + + + + + + +
ID{{ $tc('globals.listTabs.empty')}}{{ $tc('globals.listTabs.error', 1) }}
{{ error.data.position }}{{ error.data.artist }} - {{ error.data.title }}{{ error.errid ? $t(`errors.ids.${error.errid}`) : error.message }}
+
@@ -29,7 +44,18 @@ export default { return `${this.getErrors.artist} - ${this.getErrors.title}` }, errors() { - return this.getErrors.errors + let errors = [] + this.getErrors.errors.forEach(error => { + if(!error.type || error.type === "track") errors.push(error) + }) + return errors + }, + postErrors() { + let errors = [] + this.getErrors.errors.forEach(error => { + if(error.type === "post") errors.push(error) + }) + return errors } } } diff --git a/src/components/pages/Settings.vue b/src/components/pages/Settings.vue index 720bacb..56e513e 100644 --- a/src/components/pages/Settings.vue +++ b/src/components/pages/Settings.vue @@ -35,14 +35,14 @@
- +
diff --git a/src/lang/en.js b/src/lang/en.js index cfd480a..7ecccf2 100644 --- a/src/lang/en.js +++ b/src/lang/en.js @@ -115,6 +115,7 @@ const en = { }, errors: { title: 'Errors for {name}', + postTitle: 'After download errors', ids: { invalidURL: 'URL not recognized', unsupportedURL: 'URL not supported yet', @@ -227,13 +228,9 @@ const en = { arl: { title: 'Use ARL instead', question: 'How do I get my own ARL?', - update: 'Update ARL' + update: 'Force Update ARL' }, logout: 'Logout', - login: 'Login via deezer.com' - }, - loginWithCredentials: { - title: 'Login with credentials', login: 'Login', email: 'E-mail', password: 'Password' diff --git a/src/lang/it.js b/src/lang/it.js index 17c450d..6edfb23 100644 --- a/src/lang/it.js +++ b/src/lang/it.js @@ -116,6 +116,7 @@ const it = { }, errors: { title: 'Errori riguardanti {name}', + postTitle: 'Errori dopo il download', ids: { invalidURL: 'URL non riconosciuto', unsupportedURL: 'URL non ancora supportato', @@ -133,7 +134,10 @@ const it = { notAvailable: 'Brano non presente sui server di Deezer!', notAvailableNoAlternative: 'Brano non presente sui server di Deezer e nessuna alternativa trovata!', noSpaceLeft: 'Spazio su disco esaurito!', - albumDoesntExists: 'Il brano non ha nessun album, impossibile ottenere informazioni' + albumDoesntExists: 'Il brano non ha nessun album, impossibile ottenere informazioni', + wrongLicense: 'Il tuo account non può ascoltare questo brano con il bitrate specificato.', + wrongGeolocation: 'Il tuo account non può ascoltare questo brano dal tuo paese.', + wrongGeolocationNoAlternative: 'Il tuo account non può ascoltare questo brano dal e nessuna alternativa trovata.' } }, favorites: { @@ -152,8 +156,7 @@ const it = { } }, linkAnalyzer: { - info: - 'Puoi utilizzare questa sezione per avere più informazioni riguardanti il link che stai cercando di scaricare.', + info: 'Puoi utilizzare questa sezione per avere più informazioni riguardanti il link che stai cercando di scaricare.', useful: 'Ciò può esserti utile se stai cercando di scaricare brani che non sono disponibili nel tuo Paese e vuoi sapere in quale Paese sono invece disponibili, per esempio.', linkNotSupported: 'Questo link non è ancora supportato', @@ -213,7 +216,8 @@ const it = { loginNeededToDownload: 'Devi accedere prima di poter scaricare brani!', deezerNotAvailable: 'Deezer non è disponibile nel tuo paese. Dovresti usare una VPN.', startGeneratingItems: 'Elaborando {n} oggetti...', - finishGeneratingItems: '{n} oggetti generati.' + finishGeneratingItems: '{n} oggetti generati.', + noLovedPlaylist: 'Nessuna playlist "Canzoni del cuore"!' }, settings: { title: 'Impostazioni', @@ -222,14 +226,11 @@ const it = { title: 'Login', loggedIn: 'Sei loggato come {username}', arl: { + title: "Usa l'ARL", question: 'Come ottengo il mio ARL?', update: 'Aggiorna ARL' }, logout: 'Disconnettiti', - login: 'Accedi tramite deezer.com' - }, - loginWithCredentials: { - title: 'Login con credentiali', login: 'Login', email: 'E-mail', password: 'Password' @@ -290,6 +291,8 @@ const it = { }, fallbackBitrate: 'Utilizza bitrate più bassi se il bitrate preferito non è disponibile', fallbackSearch: 'Cerca il brano se il link originale non è disponibile', + fallbackISRC: 'Cerca tramite ISRC se il brano non è disponibile', + feelingLucky: 'Prova e usa il metodo vecchio di generazione degli URL', logErrors: 'Crea file di log per gli errori', logSearched: 'Crea file di log per le alternative cercate', syncedLyrics: 'Crea i file .lyr (Testi Sincronizzati)', @@ -322,6 +325,7 @@ const it = { head: 'Quali tag salvare', title: 'Titolo', artist: 'Artista', + artists: 'Tag ARTISTS extra', album: 'Album', cover: 'Copertina', trackNumber: 'Numero Traccia', @@ -344,7 +348,9 @@ const it = { copyright: 'Copyright', composer: 'Compositori', involvedPeople: 'Persone Coinvolte', - source: 'Sorgente e ID brano' + source: 'Sorgente e ID brano', + artistsWarning: + 'Disabilitare il tag ARTSITS mentre non si sta usando la specificazione standard non salverà il multiartist' }, other: { title: 'Altro', @@ -356,7 +362,9 @@ const it = { nothing: "Salva solo l'artista principale", default: 'Usando la specificazione standard', andFeat: 'Usando & e feat.', - using: 'Usando "{separator}"' + using: 'Usando "{separator}"', + warning: + 'Usando qualisasi separatore diverso dallo standard aggiugerà il tag ARTISTS per salvare il multiartist' }, singleAlbumArtist: "Salva solo l'artista dell'album principale", albumVariousArtists: 'Lascia "Artisti Vari" negli artisti dell\'album',