Added more error logging and started refactoring lang files

This commit is contained in:
RemixDev 2022-01-06 16:39:38 +01:00
parent 202a0b1320
commit 69b19f78ba
6 changed files with 65 additions and 27 deletions

View File

@ -67,6 +67,9 @@ export default {
hasFails() { hasFails() {
return this.queueItem.failed >= 1 return this.queueItem.failed >= 1
}, },
hasErrors() {
return this.queueItem.errors.length >= 1
},
allFailed() { allFailed() {
let allFailed = false let allFailed = false
@ -77,7 +80,7 @@ export default {
return allFailed return allFailed
}, },
finishedWithFails() { finishedWithFails() {
return this.queueItem.status === 'download finished' && this.hasFails return this.queueItem.status === 'download finished' && (this.hasFails || this.hasErrors)
}, },
isDeterminateStatus() { isDeterminateStatus() {
return possibleStates.includes(this.queueItem.status) return possibleStates.includes(this.queueItem.status)
@ -93,7 +96,7 @@ export default {
let width = 0 let width = 0
let backgroundColor = 'var(--primary-color)' let backgroundColor = 'var(--primary-color)'
if (this.hasFails) { if (this.hasFails || this.hasErrors) {
// Orange // Orange
backgroundColor = 'hsl(33, 100%, 47%)' backgroundColor = 'hsl(33, 100%, 47%)'
} else { } else {
@ -128,7 +131,7 @@ export default {
let text = 'delete_forever' let text = 'delete_forever'
if (this.queueItem.status === 'download finished') { if (this.queueItem.status === 'download finished') {
if (!this.hasFails) { if (!(this.hasFails || this.hasErrors)) {
text = 'done' text = 'done'
} else if (this.queueItem.failed >= this.queueItem.size) { } else if (this.queueItem.failed >= this.queueItem.size) {
text = 'error' text = 'error'

View File

@ -254,7 +254,7 @@ export default {
}, },
updateQueue(update) { updateQueue(update) {
// downloaded and failed default to false? // 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 (uuid && this.queue.includes(uuid)) {
if (downloaded) { if (downloaded) {
@ -273,6 +273,10 @@ export default {
if (conversion) { if (conversion) {
this.queueList[uuid].conversion = conversion this.queueList[uuid].conversion = conversion
} }
if (postFailed) {
this.queueList[uuid].errors.push({ message: error, data, stack })
}
} }
}, },
removeFromQueue(uuid) { removeFromQueue(uuid) {

View File

@ -2,12 +2,12 @@
<div> <div>
<h1 class="mb-8 text-5xl">{{ $t('errors.title', { name: title }) }}</h1> <h1 class="mb-8 text-5xl">{{ $t('errors.title', { name: title }) }}</h1>
<table class="table table--tracklist"> <table class="table table--tracklist" v-if="errors.length >= 1">
<tr> <tr>
<th>ID</th> <th>ID</th>
<th>{{ $tc('globals.listTabs.artist', 1) }}</th> <th class="uppercase-first-letter">{{ $tc('globals.listTabs.artist', 1) }}</th>
<th>{{ $tc('globals.listTabs.title', 1) }}</th> <th class="uppercase-first-letter">{{ $tc('globals.listTabs.title', 1) }}</th>
<th>{{ $tc('globals.listTabs.error', 1) }}</th> <th class="uppercase-first-letter">{{ $tc('globals.listTabs.error', 1) }}</th>
</tr> </tr>
<tr v-for="error in errors" :key="error.data.id"> <tr v-for="error in errors" :key="error.data.id">
<td>{{ error.data.id }}</td> <td>{{ error.data.id }}</td>
@ -16,6 +16,21 @@
<td><span :title="error.stack">{{ error.errid ? $t(`errors.ids.${error.errid}`) : error.message }}</span></td> <td><span :title="error.stack">{{ error.errid ? $t(`errors.ids.${error.errid}`) : error.message }}</span></td>
</tr> </tr>
</table> </table>
<div v-if="postErrors.length >= 1">
<h2>{{$t('errors.postTitle')}}</h2>
<table class="table table--tracklist">
<tr>
<th>ID</th>
<th class="uppercase-first-letter">{{ $tc('globals.listTabs.empty')}}</th>
<th class="uppercase-first-letter">{{ $tc('globals.listTabs.error', 1) }}</th>
</tr>
<tr v-for="error in postErrors" :key="error.data.id">
<td>{{ error.data.position }}</td>
<td><span v-if="error.data.id">{{ error.data.artist }} - {{ error.data.title }}</span></td>
<td><span :title="error.stack">{{ error.errid ? $t(`errors.ids.${error.errid}`) : error.message }}</span></td>
</tr>
</table>
</div>
</div> </div>
</template> </template>
@ -29,7 +44,18 @@ export default {
return `${this.getErrors.artist} - ${this.getErrors.title}` return `${this.getErrors.artist} - ${this.getErrors.title}`
}, },
errors() { 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
} }
} }
} }

View File

@ -35,14 +35,14 @@
<div v-else> <div v-else>
<form ref="loginWithCredentialsForm" @submit.prevent="loginWithCredentials"> <form ref="loginWithCredentialsForm" @submit.prevent="loginWithCredentials">
<label> <label>
<span>{{ $t('settings.loginWithCredentials.email') }}</span> <span>{{ $t('settings.login.email') }}</span>
<input type="text" name="email" placeholder="email@example.com" class="mb-6"/> <input type="text" name="email" placeholder="email@example.com" class="mb-6"/>
</label> </label>
<label> <label>
<span>{{ $t('settings.loginWithCredentials.password') }}</span> <span>{{ $t('settings.login.password') }}</span>
<input type="password" name="password" placeholder="●●●●●●●●" class="mb-6"/> <input type="password" name="password" placeholder="●●●●●●●●" class="mb-6"/>
</label> </label>
<button class="btn btn-primary login-button" type="submit">{{ $t('settings.loginWithCredentials.login') }}</button> <button class="btn btn-primary login-button" type="submit">{{ $t('settings.login.login') }}</button>
</form> </form>
</div> </div>

View File

@ -115,6 +115,7 @@ const en = {
}, },
errors: { errors: {
title: 'Errors for {name}', title: 'Errors for {name}',
postTitle: 'After download errors',
ids: { ids: {
invalidURL: 'URL not recognized', invalidURL: 'URL not recognized',
unsupportedURL: 'URL not supported yet', unsupportedURL: 'URL not supported yet',
@ -227,13 +228,9 @@ const en = {
arl: { arl: {
title: 'Use ARL instead', title: 'Use ARL instead',
question: 'How do I get my own ARL?', question: 'How do I get my own ARL?',
update: 'Update ARL' update: 'Force Update ARL'
}, },
logout: 'Logout', logout: 'Logout',
login: 'Login via deezer.com'
},
loginWithCredentials: {
title: 'Login with credentials',
login: 'Login', login: 'Login',
email: 'E-mail', email: 'E-mail',
password: 'Password' password: 'Password'

View File

@ -116,6 +116,7 @@ const it = {
}, },
errors: { errors: {
title: 'Errori riguardanti {name}', title: 'Errori riguardanti {name}',
postTitle: 'Errori dopo il download',
ids: { ids: {
invalidURL: 'URL non riconosciuto', invalidURL: 'URL non riconosciuto',
unsupportedURL: 'URL non ancora supportato', unsupportedURL: 'URL non ancora supportato',
@ -133,7 +134,10 @@ const it = {
notAvailable: 'Brano non presente sui server di Deezer!', notAvailable: 'Brano non presente sui server di Deezer!',
notAvailableNoAlternative: 'Brano non presente sui server di Deezer e nessuna alternativa trovata!', notAvailableNoAlternative: 'Brano non presente sui server di Deezer e nessuna alternativa trovata!',
noSpaceLeft: 'Spazio su disco esaurito!', 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: { favorites: {
@ -152,8 +156,7 @@ const it = {
} }
}, },
linkAnalyzer: { linkAnalyzer: {
info: info: 'Puoi utilizzare questa sezione per avere più informazioni riguardanti il link che stai cercando di scaricare.',
'Puoi utilizzare questa sezione per avere più informazioni riguardanti il link che stai cercando di scaricare.',
useful: 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.', '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', linkNotSupported: 'Questo link non è ancora supportato',
@ -213,7 +216,8 @@ const it = {
loginNeededToDownload: 'Devi accedere prima di poter scaricare brani!', loginNeededToDownload: 'Devi accedere prima di poter scaricare brani!',
deezerNotAvailable: 'Deezer non è disponibile nel tuo paese. Dovresti usare una VPN.', deezerNotAvailable: 'Deezer non è disponibile nel tuo paese. Dovresti usare una VPN.',
startGeneratingItems: 'Elaborando {n} oggetti...', startGeneratingItems: 'Elaborando {n} oggetti...',
finishGeneratingItems: '{n} oggetti generati.' finishGeneratingItems: '{n} oggetti generati.',
noLovedPlaylist: 'Nessuna playlist "Canzoni del cuore"!'
}, },
settings: { settings: {
title: 'Impostazioni', title: 'Impostazioni',
@ -222,14 +226,11 @@ const it = {
title: 'Login', title: 'Login',
loggedIn: 'Sei loggato come {username}', loggedIn: 'Sei loggato come {username}',
arl: { arl: {
title: "Usa l'ARL",
question: 'Come ottengo il mio ARL?', question: 'Come ottengo il mio ARL?',
update: 'Aggiorna ARL' update: 'Aggiorna ARL'
}, },
logout: 'Disconnettiti', logout: 'Disconnettiti',
login: 'Accedi tramite deezer.com'
},
loginWithCredentials: {
title: 'Login con credentiali',
login: 'Login', login: 'Login',
email: 'E-mail', email: 'E-mail',
password: 'Password' password: 'Password'
@ -290,6 +291,8 @@ const it = {
}, },
fallbackBitrate: 'Utilizza bitrate più bassi se il bitrate preferito non è disponibile', fallbackBitrate: 'Utilizza bitrate più bassi se il bitrate preferito non è disponibile',
fallbackSearch: 'Cerca il brano se il link originale 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', logErrors: 'Crea file di log per gli errori',
logSearched: 'Crea file di log per le alternative cercate', logSearched: 'Crea file di log per le alternative cercate',
syncedLyrics: 'Crea i file .lyr (Testi Sincronizzati)', syncedLyrics: 'Crea i file .lyr (Testi Sincronizzati)',
@ -322,6 +325,7 @@ const it = {
head: 'Quali tag salvare', head: 'Quali tag salvare',
title: 'Titolo', title: 'Titolo',
artist: 'Artista', artist: 'Artista',
artists: 'Tag ARTISTS extra',
album: 'Album', album: 'Album',
cover: 'Copertina', cover: 'Copertina',
trackNumber: 'Numero Traccia', trackNumber: 'Numero Traccia',
@ -344,7 +348,9 @@ const it = {
copyright: 'Copyright', copyright: 'Copyright',
composer: 'Compositori', composer: 'Compositori',
involvedPeople: 'Persone Coinvolte', 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: { other: {
title: 'Altro', title: 'Altro',
@ -356,7 +362,9 @@ const it = {
nothing: "Salva solo l'artista principale", nothing: "Salva solo l'artista principale",
default: 'Usando la specificazione standard', default: 'Usando la specificazione standard',
andFeat: 'Usando & e feat.', 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", singleAlbumArtist: "Salva solo l'artista dell'album principale",
albumVariousArtists: 'Lascia "Artisti Vari" negli artisti dell\'album', albumVariousArtists: 'Lascia "Artisti Vari" negli artisti dell\'album',