This commit is contained in:
exttex 2020-11-20 10:20:49 +01:00
parent 0a467966cb
commit 80351d6a0b
40 changed files with 621 additions and 307 deletions

View File

@ -160,6 +160,18 @@ async function createWindow() {
setThumbarButtons(); setThumbarButtons();
} }
//Single instance
const singleInstanceLock = app.requestSingleInstanceLock();
if (!singleInstanceLock) {
app.quit();
} else {
app.on('second-instance', () => {
if (win) {
if (!win.visible) win.show();
}
});
}
//Create window //Create window
app.on('ready', async () => { app.on('ready', async () => {
await startServer(); await startServer();

View File

@ -130,7 +130,8 @@
<!-- About --> <!-- About -->
<v-list-item link to='/about'> <v-list-item link to='/about'>
<v-list-item-icon> <v-list-item-icon>
<v-icon>mdi-information</v-icon> <v-icon v-if='!updateAvailable'>mdi-information</v-icon>
<v-icon color='primary' v-if='updateAvailable'>mdi-update</v-icon>
</v-list-item-icon> </v-list-item-icon>
<v-list-item-title>{{$t('About')}}</v-list-item-title> <v-list-item-title>{{$t('About')}}</v-list-item-title>
</v-list-item> </v-list-item>
@ -325,6 +326,7 @@ export default {
cancelSuggestions: false, cancelSuggestions: false,
globalSnackbar: false, globalSnackbar: false,
version: null, version: null,
updateAvailable: false
} }
}, },
methods: { methods: {
@ -413,6 +415,15 @@ export default {
maximize() { maximize() {
const {ipcRenderer} = window.require('electron'); const {ipcRenderer} = window.require('electron');
ipcRenderer.send('maximize'); ipcRenderer.send('maximize');
},
async checkUpdate() {
try {
let res = await this.$axios('/updates');
if (res.data)
this.updateAvailable = true;
} catch (_) {
this.updateAvailable = false;
}
} }
}, },
computed: { computed: {
@ -451,6 +462,9 @@ export default {
//Wait for volume to load //Wait for volume to load
if (this.$root.loadingPromise) await this.$root.loadingPromise; if (this.$root.loadingPromise) await this.$root.loadingPromise;
this.volume = this.$root.volume; this.volume = this.$root.volume;
//Check for update
this.checkUpdate();
}, },
created() { created() {
//Go to login if unauthorized //Go to login if unauthorized

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<v-list-item two-line @click='click' v-if='!card'> <v-list-item two-line @click='click' v-if='!card' @contextmenu.prevent="menu = true">
<v-hover v-slot:default='{hover}'> <v-hover v-slot:default='{hover}'>
<v-list-item-avatar> <v-list-item-avatar>
<v-img :src='album.art.thumb'></v-img> <v-img :src='album.art.thumb'></v-img>

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<v-list-item @click='click' v-if='!card'> <v-list-item @click='click' v-if='!card' @contextmenu.prevent="menu = true">
<v-list-item-avatar> <v-list-item-avatar>
<v-img :src='artist.picture.thumb'></v-img> <v-img :src='artist.picture.thumb'></v-img>
</v-list-item-avatar> </v-list-item-avatar>

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<!-- List tile --> <!-- List tile -->
<v-list-item @click='click' v-if='!card'> <v-list-item @click='click' v-if='!card' @contextmenu.prevent="menu = true">
<v-hover v-slot:default='{hover}'> <v-hover v-slot:default='{hover}'>
<v-list-item-avatar> <v-list-item-avatar>
<v-img :src='playlist.image.thumb'></v-img> <v-img :src='playlist.image.thumb'></v-img>

View File

@ -1,5 +1,5 @@
<template> <template>
<v-list-item two-line @click='$emit("click")' :ripple='ripple'> <v-list-item two-line @click='$emit("click")' :ripple='ripple' @contextmenu.prevent="menu = true">
<v-list-item-avatar> <v-list-item-avatar>
<v-img :src='track.albumArt.thumb'></v-img> <v-img :src='track.albumArt.thumb'></v-img>
</v-list-item-avatar> </v-list-item-avatar>
@ -191,10 +191,10 @@ export default {
methods: { methods: {
//Add track next to queue //Add track next to queue
playNext() { playNext() {
this.$root.addTrackIndex(this.track, this.$root.queueIndex+1); this.$root.addTrackIndex(this.track, this.$root.queue.index+1);
}, },
addQueue() { addQueue() {
this.$root.queue.push(this.track); this.$root.queue.data.push(this.track);
}, },
addLibrary() { addLibrary() {
this.isLibrary = true; this.isLibrary = true;

View File

@ -134,5 +134,8 @@
"Share": "مشاركة", "Share": "مشاركة",
"Settings quality": "جودة الإعدادات", "Settings quality": "جودة الإعدادات",
"Content language": "لغة المحتوى", "Content language": "لغة المحتوى",
"Content country": "بلد المحتوى" "Content country": "بلد المحتوى",
"Website": "الموقع الالكتروني",
"Visit website": "زيارة الموقع الإلكتروني",
"New update available:": "تحديث جديد متوفر:"
} }

View File

@ -0,0 +1,141 @@
{
"Home": "Home",
"Browse": "Browse",
"Library": "Library",
"Tracks": "Tracks",
"Playlists": "Playlists",
"Albums": "Albums",
"Artists": "Artists",
"More": "More",
"Settings": "Settings",
"Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.",
"Play": "Play",
"Add to library": "Add to library",
"Download": "Download",
"fans": "fans",
"tracks": "tracks",
"Quality": "Quality",
"Estimated size:": "Estimated size:",
"Start downloading": "Start downloading",
"Cancel": "Cancel",
"Stream logging is disabled!": "Stream logging is disabled!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.",
"History": "History",
"Create new playlist": "Create new playlist",
"TRACKS": "TRACKS",
"Sort by": "Sort by",
"Date Added": "Date Added",
"Name (A-Z)": "Name (A-Z)",
"Artist (A-Z)": "Artist (A-Z)",
"Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!",
"Create playlist": "Create playlist",
"Create": "Create",
"Add to playlist": "Add to playlist",
"Create new": "Create new",
"Remove": "Remove",
"Play next": "Play next",
"Add to queue": "Add to queue",
"Remove from library": "Remove from library",
"Remove from playlist": "Remove from playlist",
"Play track mix": "Play track mix",
"Go to": "Go to",
"Track Mix": "Track Mix",
"Duration": "Duration",
"Released": "Released",
"Disk": "Disk",
"albums": "albums",
"Play top": "Play top",
"Radio": "Radio",
"Show all albums": "Show all albums",
"Show all singles": "Show all singles",
"Show more": "Show more",
"Downloaded": "Downloaded",
"Queue": "Queue",
"Total": "Total",
"Stop": "Stop",
"Start": "Start",
"Show folder": "Show folder",
"Clear queue": "Clear queue",
"Playing from": "Playing from",
"Info": "Info",
"Lyrics": "Lyrics",
"Track number": "Track number",
"Disk number": "Disk number",
"Explicit": "Explicit",
"Source": "Source",
"ID": "ID",
"Error logging in!": "Error logging in!",
"Please try again later, or try another account.": "Please try again later, or try another account.",
"Logout": "Logout",
"Login using browser": "Login using browser",
"Please login using your Deezer account:": "Please login using your Deezer account:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:",
"ARL/Token": "ARL/Token",
"Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.",
"Only in Electron version!": "Only in Electron version!",
"Search results for:": "Search results for:",
"Error loading data!": "Error loading data!",
"Try again later!": "Try again later!",
"Search": "Search",
"Streaming Quality": "Streaming Quality",
"Download Quality": "Download Quality",
"Downloads Directory": "Downloads Directory",
"Simultaneous downloads": "Simultaneous downloads",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.",
"Show download dialog": "Show download dialog",
"Create folders for artists": "Create folders for artists",
"Create folders for albums": "Create folders for albums",
"Download lyrics": "Download lyrics",
"Variables": "Variables",
"UI": "UI",
"Show autocomplete in search": "Show autocomplete in search",
"Integrations": "Integrations",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.",
"Log track listens to Deezer": "Log track listens to Deezer",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.",
"Login with LastFM": "Login with LastFM",
"Disconnect LastFM": "Disconnect LastFM",
"Requires restart to apply!": "Requires restart to apply!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!",
"Discord Rich Presence": "Discord Rich Presence",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!",
"Discord Join Button": "Discord Join Button",
"Other": "Other",
"Minimize to tray": "Minimize to tray",
"Don't minimize to tray": "Don't minimize to tray",
"Close on exit": "Close on exit",
"Settings saved!": "Settings saved!",
"Available only in Electron version!": "Available only in Electron version!",
"Crossfade (ms)": "Crossfade (ms)",
"Select primary color": "Select primary color",
"Light theme": "Light theme",
"Create folders for playlists": "Create folders for playlists",
"About": "About",
"Links:": "Links:",
"Telegram Releases": "Telegram Releases",
"Telegram Group": "Telegram Group",
"Discord": "Discord",
"Telegram Android Group": "Telegram Android Group",
"Credits:": "Credits:",
"Agree": "Agree",
"Dismiss": "Dismiss",
"Added to playlist!": "Added to playlist!",
"Added to library!": "Added to library!",
"Removed from library!": "Removed from library!",
"Removed from playlist!": "Removed from playlist!",
"Playlist deleted!": "Playlist deleted!",
"Delete": "Delete",
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?",
"Force white tray icon": "Force white tray icon",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.",
"Share": "Share",
"Settings quality": "Settings quality",
"Content language": "Content language",
"Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
}

View File

@ -3,7 +3,7 @@
"Browse": "Durchsuchen", "Browse": "Durchsuchen",
"Library": "Mediathek", "Library": "Mediathek",
"Tracks": "Titel", "Tracks": "Titel",
"Playlists": "Playlisten", "Playlists": "Wiedergabelisten",
"Albums": "Alben", "Albums": "Alben",
"Artists": "Künstler", "Artists": "Künstler",
"More": "Mehr", "More": "Mehr",
@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Bist du sicher, dass du diese Wiedergabeliste löschen willst?", "Are you sure you want to delete this playlist?": "Bist du sicher, dass du diese Wiedergabeliste löschen willst?",
"Force white tray icon": "Erzwinge weißes Tray-Icon", "Force white tray icon": "Erzwinge weißes Tray-Icon",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Standardsymbol (weiß) in der Kontrollleiste erzwingen, wenn Design falsch erkannt wurde. Neustart erforderlich.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Standardsymbol (weiß) in der Kontrollleiste erzwingen, wenn Design falsch erkannt wurde. Neustart erforderlich.",
"Share": "Share", "Share": "Teilen",
"Settings quality": "Settings quality", "Settings quality": "Audioqualität-Einstellungen",
"Content language": "Content language", "Content language": "Sprache des Inhalts",
"Content country": "Content country" "Content country": "Land des Inhalts",
"Website": "Webseite",
"Visit website": "Webseite besuchen",
"New update available:": "Neues Update verfügbar:"
} }

View File

@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Είστε βέβαιοι ότι θέλετε να διαγράψετε την λίστα αναπαραγωγής;", "Are you sure you want to delete this playlist?": "Είστε βέβαιοι ότι θέλετε να διαγράψετε την λίστα αναπαραγωγής;",
"Force white tray icon": "Εξαναγκασμός λευκού εικονιδίου", "Force white tray icon": "Εξαναγκασμός λευκού εικονιδίου",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Επαναφορά προεπιλογής (λευκού) εικονιδίου σε περίπτωση σφάλματος θέματος. Απαιτείται επανεκκίνηση.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Επαναφορά προεπιλογής (λευκού) εικονιδίου σε περίπτωση σφάλματος θέματος. Απαιτείται επανεκκίνηση.",
"Share": "Share", "Share": "Κοινοποίηση",
"Settings quality": "Settings quality", "Settings quality": "Επιλογή ρυθμίσεων ποιότητας",
"Content language": "Content language", "Content language": "Γλώσσα περιεχομένου",
"Content country": "Content country" "Content country": "Χώρα περιεχομένου",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -134,5 +134,8 @@
"Share": "Share", "Share": "Share",
"Settings quality": "Settings quality", "Settings quality": "Settings quality",
"Content language": "Content language", "Content language": "Content language",
"Content country": "Content country" "Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "¿Está seguro de querer eliminar la lista de reproducción?", "Are you sure you want to delete this playlist?": "¿Está seguro de querer eliminar la lista de reproducción?",
"Force white tray icon": "Forzar icono blanco en la bandeja", "Force white tray icon": "Forzar icono blanco en la bandeja",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forzar icono predeterminado en bandeja (blanco) si el tema no es detectado correctamente. Requiere reinicio.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forzar icono predeterminado en bandeja (blanco) si el tema no es detectado correctamente. Requiere reinicio.",
"Share": "Share", "Share": "Compartir",
"Settings quality": "Settings quality", "Settings quality": "Ajustes de calidad",
"Content language": "Content language", "Content language": "Idioma del contenido",
"Content country": "Content country" "Content country": "País del contenido",
"Website": "Sitio Web",
"Visit website": "Visita la página web",
"New update available:": "Nueva actualización disponible:"
} }

View File

@ -134,5 +134,8 @@
"Share": "Share", "Share": "Share",
"Settings quality": "Settings quality", "Settings quality": "Settings quality",
"Content language": "Content language", "Content language": "Content language",
"Content country": "Content country" "Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?", "Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?",
"Force white tray icon": "Force white tray icon", "Force white tray icon": "Force white tray icon",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.",
"Share": "Share", "Share": "Ibahagi",
"Settings quality": "Settings quality", "Settings quality": "Settings quality",
"Content language": "Content language", "Content language": "Wika ng nilalaman",
"Content country": "Content country" "Content country": "Bansa ng nilalaman",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -2,7 +2,7 @@
"Home": "Accueil", "Home": "Accueil",
"Browse": "Explorer", "Browse": "Explorer",
"Library": "Bibliothèque", "Library": "Bibliothèque",
"Tracks": "Pistes", "Tracks": "Titres",
"Playlists": "Playlists", "Playlists": "Playlists",
"Albums": "Albums", "Albums": "Albums",
"Artists": "Artistes", "Artists": "Artistes",
@ -14,7 +14,7 @@
"Add to library": "Ajouter à la bibliothèque", "Add to library": "Ajouter à la bibliothèque",
"Download": "Télécharger", "Download": "Télécharger",
"fans": "fans", "fans": "fans",
"tracks": "pistes", "tracks": "titres",
"Quality": "Qualité", "Quality": "Qualité",
"Estimated size:": "Durée estimée:", "Estimated size:": "Durée estimée:",
"Start downloading": "Lancer le téléchargement", "Start downloading": "Lancer le téléchargement",
@ -23,7 +23,7 @@
"Enable it in settings for history to work properly.": "Activez-le dans les paramètres pour que l'historique fonctionne correctement.", "Enable it in settings for history to work properly.": "Activez-le dans les paramètres pour que l'historique fonctionne correctement.",
"History": "Historique", "History": "Historique",
"Create new playlist": "Créer une nouvelle playlist", "Create new playlist": "Créer une nouvelle playlist",
"TRACKS": "PISTES", "TRACKS": "TITRES",
"Sort by": "Trier par", "Sort by": "Trier par",
"Date Added": "Ajouté le", "Date Added": "Ajouté le",
"Name (A-Z)": "Nom (A-Z)", "Name (A-Z)": "Nom (A-Z)",
@ -39,9 +39,9 @@
"Add to queue": "Ajouter à la file d'attente", "Add to queue": "Ajouter à la file d'attente",
"Remove from library": "Supprimer de la bibliothèque", "Remove from library": "Supprimer de la bibliothèque",
"Remove from playlist": "Supprimer de la playlist", "Remove from playlist": "Supprimer de la playlist",
"Play track mix": "Jouer un mélange de pistes", "Play track mix": "Jouer un mélange de titres",
"Go to": "Aller à", "Go to": "Aller à",
"Track Mix": "Mélange de piste", "Track Mix": "Mélange de titres",
"Duration": "Durée", "Duration": "Durée",
"Released": "Publié", "Released": "Publié",
"Disk": "Disque", "Disk": "Disque",
@ -94,14 +94,14 @@
"Show autocomplete in search": "Afficher la saisie automatique dans la recherche", "Show autocomplete in search": "Afficher la saisie automatique dans la recherche",
"Integrations": "Intégrations", "Integrations": "Intégrations",
"This allows listening history, flow and recommendations to work properly.": "Cela permet à l'historique des titres écoutés, au flow et aux recommandations de fonctionner correctement.", "This allows listening history, flow and recommendations to work properly.": "Cela permet à l'historique des titres écoutés, au flow et aux recommandations de fonctionner correctement.",
"Log track listens to Deezer": "Journaliser la piste écoutée sur Deezer", "Log track listens to Deezer": "Journaliser sur Deezer les titres écoutés",
"Connect your LastFM account to allow scrobbling.": "Connectez votre compte LastFM pour autoriser le scrobbling.", "Connect your LastFM account to allow scrobbling.": "Connectez votre compte LastFM pour autoriser le scrobbling.",
"Login with LastFM": "Se connecter avec LastFM", "Login with LastFM": "Se connecter avec LastFM",
"Disconnect LastFM": "Déconnecté LastFM", "Disconnect LastFM": "Déconnecté LastFM",
"Requires restart to apply!": "Redémarrage nécessaire pour prendre effet !", "Requires restart to apply!": "Redémarrage nécessaire pour prendre effet !",
"Enable Discord Rich Presence, requires restart to toggle!": "Activer la présence Discord, nécessite un redémarrage pour prendre effet !", "Enable Discord Rich Presence, requires restart to toggle!": "Activer la présence Discord, nécessite un redémarrage pour prendre effet !",
"Discord Rich Presence": "Présence sur Discord", "Discord Rich Presence": "Présence sur Discord",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Activer le bouton \"rejoindre\" sur Discord pour synchroniser les pistes, nécessite un redémarrage pour prendre effet !", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Activer le bouton \"rejoindre\" sur Discord pour synchroniser les titres, nécessite un redémarrage pour prendre effet !",
"Discord Join Button": "Bouton rejoindre sur Discord", "Discord Join Button": "Bouton rejoindre sur Discord",
"Other": "Autre", "Other": "Autre",
"Minimize to tray": "Réduire dans la zone de notification", "Minimize to tray": "Réduire dans la zone de notification",
@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Voulez-vous vraiment supprimer cette liste de lecture ?", "Are you sure you want to delete this playlist?": "Voulez-vous vraiment supprimer cette liste de lecture ?",
"Force white tray icon": "Forcer l'icône blanche dans la zone de notification", "Force white tray icon": "Forcer l'icône blanche dans la zone de notification",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forcer l'icône blanche par défaut dans la zone de notification si le thème n'est pas correctement détecté. Nécessite un redémarrage.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forcer l'icône blanche par défaut dans la zone de notification si le thème n'est pas correctement détecté. Nécessite un redémarrage.",
"Share": "Share", "Share": "Partager",
"Settings quality": "Settings quality", "Settings quality": "Qualité définie dans les paramètres",
"Content language": "Content language", "Content language": "Langue du contenu",
"Content country": "Content country" "Content country": "Pays du contenu",
"Website": "Site internet",
"Visit website": "Visiter le site internet",
"New update available:": "Nouvelle mise à jour disponible :"
} }

View File

@ -134,5 +134,8 @@
"Share": "Share", "Share": "Share",
"Settings quality": "Settings quality", "Settings quality": "Settings quality",
"Content language": "Content language", "Content language": "Content language",
"Content country": "Content country" "Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -134,5 +134,8 @@
"Share": "Share", "Share": "Share",
"Settings quality": "Settings quality", "Settings quality": "Settings quality",
"Content language": "Content language", "Content language": "Content language",
"Content country": "Content country" "Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -1,138 +1,141 @@
{ {
"Home": "Home", "Home": "Početna",
"Browse": "Browse", "Browse": "Pretraži",
"Library": "Library", "Library": "Biblioteka",
"Tracks": "Tracks", "Tracks": "Pjesme",
"Playlists": "Playlists", "Playlists": "Popisi za reprodukciju",
"Albums": "Albums", "Albums": "Albumi",
"Artists": "Artists", "Artists": "Izvođači",
"More": "More", "More": "Više",
"Settings": "Settings", "Settings": "Postavke",
"Downloads": "Downloads", "Downloads": "Preuzimanja",
"Search or paste Deezer URL. Use / to quickly focus.": "Search or paste Deezer URL. Use \"/\" to quickly focus.", "Search or paste Deezer URL. Use / to quickly focus.": "Pretražite ili kopirajte Deezer URL. Koristite \"/\" za brzo fokusiranje.",
"Play": "Play", "Play": "Reproduciraj",
"Add to library": "Add to library", "Add to library": "Dodaj u biblioteku",
"Download": "Download", "Download": "Preuzmi",
"fans": "fans", "fans": "obožavatelji",
"tracks": "tracks", "tracks": "pjesme",
"Quality": "Quality", "Quality": "Kvaliteta",
"Estimated size:": "Estimated size:", "Estimated size:": "Predviđena veličina:",
"Start downloading": "Start downloading", "Start downloading": "Započni preuzimanje",
"Cancel": "Cancel", "Cancel": "Poništi",
"Stream logging is disabled!": "Stream logging is disabled!", "Stream logging is disabled!": "Bilježenje strujanja je onemogućeno!",
"Enable it in settings for history to work properly.": "Enable it in settings for history to work properly.", "Enable it in settings for history to work properly.": "Uključite u postavkama kako bi povijest funkcionirala normalno.",
"History": "History", "History": "Povijest",
"Create new playlist": "Create new playlist", "Create new playlist": "Kreirajte novi popis za reprodukciju",
"TRACKS": "TRACKS", "TRACKS": "PJESME",
"Sort by": "Sort by", "Sort by": "Sortiraj po",
"Date Added": "Date Added", "Date Added": "Datum dodavanja",
"Name (A-Z)": "Name (A-Z)", "Name (A-Z)": "Naziv (A-Z)",
"Artist (A-Z)": "Artist (A-Z)", "Artist (A-Z)": "Izvođač (A-Z)",
"Album (A-Z)": "Album (A-Z)", "Album (A-Z)": "Album (A-Z)",
"Error loading lyrics or lyrics not found!": "Error loading lyrics or lyrics not found!", "Error loading lyrics or lyrics not found!": "Pogreška kod učitavanja tekstova pjesme ili tekstovi pjesme nisu pronađeni!",
"Create playlist": "Create playlist", "Create playlist": "Napravi popis za reprodukciju",
"Create": "Create", "Create": "Stvori",
"Add to playlist": "Add to playlist", "Add to playlist": "Dodaj u popis za reprodukciju",
"Create new": "Create new", "Create new": "Stvori novi",
"Remove": "Remove", "Remove": "Ukloni",
"Play next": "Play next", "Play next": "Reproduciraj sljedeće",
"Add to queue": "Add to queue", "Add to queue": "Dodaj u red",
"Remove from library": "Remove from library", "Remove from library": "Ukloni iz biblioteke",
"Remove from playlist": "Remove from playlist", "Remove from playlist": "Ukloni iz popisa za reprodukciju",
"Play track mix": "Play track mix", "Play track mix": "Sviraj miks pjesme",
"Go to": "Go to", "Go to": "Idi u",
"Track Mix": "Track Mix", "Track Mix": "Miks pjesme",
"Duration": "Duration", "Duration": "Trajanje",
"Released": "Released", "Released": "Objavljeno",
"Disk": "Disk", "Disk": "Disk",
"albums": "albums", "albums": "albumi",
"Play top": "Play top", "Play top": "Sviraj najpopularnije",
"Radio": "Radio", "Radio": "Radio",
"Show all albums": "Show all albums", "Show all albums": "Prikaži sve albume",
"Show all singles": "Show all singles", "Show all singles": "Pokaži sve singlove",
"Show more": "Show more", "Show more": "Pokaži više",
"Downloaded": "Downloaded", "Downloaded": "Preuzeto",
"Queue": "Queue", "Queue": "Red",
"Total": "Total", "Total": "Ukupno",
"Stop": "Stop", "Stop": "Zaustavi",
"Start": "Start", "Start": "Započni",
"Show folder": "Show folder", "Show folder": "Pokaži mapu",
"Clear queue": "Clear queue", "Clear queue": "Očisti red",
"Playing from": "Playing from", "Playing from": "Svira iz",
"Info": "Info", "Info": "Info",
"Lyrics": "Lyrics", "Lyrics": "Tekst pjesme",
"Track number": "Track number", "Track number": "Broj pjesme",
"Disk number": "Disk number", "Disk number": "Broj diska",
"Explicit": "Explicit", "Explicit": "Eksplicitno",
"Source": "Source", "Source": "Izvor",
"ID": "ID", "ID": "ID",
"Error logging in!": "Error logging in!", "Error logging in!": "Pogreška prilikom prijavljivanja!",
"Please try again later, or try another account.": "Please try again later, or try another account.", "Please try again later, or try another account.": "Molimo pokušajte ponovno kasnije ili pokušajte sa drugim računom.",
"Logout": "Logout", "Logout": "Odjava",
"Login using browser": "Login using browser", "Login using browser": "Prijava pomoću preglednika",
"Please login using your Deezer account:": "Please login using your Deezer account:", "Please login using your Deezer account:": "Molimo vas da se prijavite pomoću vašeg Deezer računa:",
"...or paste your ARL/Token below:": "...or paste your ARL/Token below:", "...or paste your ARL/Token below:": "...ili zalijepite svoj ARL/Token ispod:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Login", "Login": "Prijava",
"By using this program, you disagree with Deezer's ToS.": "By using this program, you disagree with Deezer's ToS.", "By using this program, you disagree with Deezer's ToS.": "Korištenjem ovog programa, ne prihvaćate Deezerove Uvjete pružanja usluge.",
"Only in Electron version!": "Only in Electron version!", "Only in Electron version!": "Samo u Electron verziji!",
"Search results for:": "Search results for:", "Search results for:": "Rezultati pretrage za:",
"Error loading data!": "Error loading data!", "Error loading data!": "Greška pri učitavanju podataka!",
"Try again later!": "Try again later!", "Try again later!": "Pokušajte ponovno kasnije!",
"Search": "Search", "Search": "Pretraga",
"Streaming Quality": "Streaming Quality", "Streaming Quality": "Kvaliteta strujanja",
"Download Quality": "Download Quality", "Download Quality": "Kvaliteta preuzimanja",
"Downloads Directory": "Downloads Directory", "Downloads Directory": "Direktorij preuzimanja",
"Simultaneous downloads": "Simultaneous downloads", "Simultaneous downloads": "Istovremena preuzimanja",
"Always show download confirm dialog before downloading.": "Always show download confirm dialog before downloading.", "Always show download confirm dialog before downloading.": "Uvijek prikaži dijaloški okvir potvrde prije preuzimanja.",
"Show download dialog": "Show download dialog", "Show download dialog": "Prikaži dijalog za preuzimanje",
"Create folders for artists": "Create folders for artists", "Create folders for artists": "Napravi mape za izvođače",
"Create folders for albums": "Create folders for albums", "Create folders for albums": "Naprave mape za albume",
"Download lyrics": "Download lyrics", "Download lyrics": "Preuzmi tekstove pjesama",
"Variables": "Variables", "Variables": "Varijable",
"UI": "UI", "UI": "Korisničko sučelje",
"Show autocomplete in search": "Show autocomplete in search", "Show autocomplete in search": "Pokaži samodovršavanje u pretrazi",
"Integrations": "Integrations", "Integrations": "Integracije",
"This allows listening history, flow and recommendations to work properly.": "This allows listening history, flow and recommendations to work properly.", "This allows listening history, flow and recommendations to work properly.": "Ovo omogućava da povijest slušanja, flow i preporuke rade ispravno.",
"Log track listens to Deezer": "Log track listens to Deezer", "Log track listens to Deezer": "Bilježi slušanje pjesama prema Deezeru",
"Connect your LastFM account to allow scrobbling.": "Connect your LastFM account to allow scrobbling.", "Connect your LastFM account to allow scrobbling.": "Spojite svoj LastFM račun da biste omogućili skroblanje.",
"Login with LastFM": "Login with LastFM", "Login with LastFM": "Prijavite se sa LastFM",
"Disconnect LastFM": "Disconnect LastFM", "Disconnect LastFM": "Odspojite LastFM",
"Requires restart to apply!": "Requires restart to apply!", "Requires restart to apply!": "Zahtjeva ponovno pokretanje da bi se primijenilo!",
"Enable Discord Rich Presence, requires restart to toggle!": "Enable Discord Rich Presence, requires restart to toggle!", "Enable Discord Rich Presence, requires restart to toggle!": "Omogući Obogaćeno Discord Prisustvo, zahtijeva ponovno pokretanje kako biste mogli prebaciti!",
"Discord Rich Presence": "Discord Rich Presence", "Discord Rich Presence": "Obogaćeno Discord Prisutstvo",
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Enable Discord join button for syncing tracks, requires restart to toggle!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Omogući gumb Discord pridruživanje za sinkroniziranje pjesama, zahtijeva ponovno pokretanje kako biste mogli prebaciti!",
"Discord Join Button": "Discord Join Button", "Discord Join Button": "Gumb Discord pridruživanje",
"Other": "Other", "Other": "Ostalo",
"Minimize to tray": "Minimize to tray", "Minimize to tray": "Umanjite na alatnu traku",
"Don't minimize to tray": "Don't minimize to tray", "Don't minimize to tray": "Nemoj umanjiti na alatnu traku",
"Close on exit": "Close on exit", "Close on exit": "Zatvori na izlasku",
"Settings saved!": "Settings saved!", "Settings saved!": "Postavke spremljene!",
"Available only in Electron version!": "Available only in Electron version!", "Available only in Electron version!": "Dostupno samo u Electron verziji!",
"Crossfade (ms)": "Crossfade (ms)", "Crossfade (ms)": "Utišavanje/pretapanje (ms)",
"Select primary color": "Select primary color", "Select primary color": "Izaberi primarnu boju",
"Light theme": "Light theme", "Light theme": "Svijetla tema",
"Create folders for playlists": "Create folders for playlists", "Create folders for playlists": "Stvori mape za popise za reprodukciju",
"About": "About", "About": "O aplikaciji",
"Links:": "Links:", "Links:": "Poveznice:",
"Telegram Releases": "Telegram Releases", "Telegram Releases": "Telegram izdanja",
"Telegram Group": "Telegram Group", "Telegram Group": "Telegram grupa",
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android grupa",
"Credits:": "Credits:", "Credits:": "Zasluge:",
"Agree": "Agree", "Agree": "Slažem se",
"Dismiss": "Dismiss", "Dismiss": "Odbaci",
"Added to playlist!": "Added to playlist!", "Added to playlist!": "Dodano u popis za reprodukciju!",
"Added to library!": "Added to library!", "Added to library!": "Dodano u biblioteku!",
"Removed from library!": "Removed from library!", "Removed from library!": "Uklonjeno iz biblioteke!",
"Removed from playlist!": "Removed from playlist!", "Removed from playlist!": "Uklonjeno iz popisa za reprodukciju!",
"Playlist deleted!": "Playlist deleted!", "Playlist deleted!": "Popis za reprodukciju izbrisan!",
"Delete": "Delete", "Delete": "Izbriši",
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?", "Are you sure you want to delete this playlist?": "Jeste li sigurni da želite izbrisati ovaj popis za reprodukciju?",
"Force white tray icon": "Force white tray icon", "Force white tray icon": "Prisili bijelu ikonu u alatnoj traci",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Prisili zadanu (bijelu) ikonu alatne trake ako je tema neispravno detektirana. Zahtijeva ponovno pokretanje.",
"Share": "Share", "Share": "Podijeli",
"Settings quality": "Settings quality", "Settings quality": "Postavke kvalitete",
"Content language": "Content language", "Content language": "Jezik sadržaja",
"Content country": "Content country" "Content country": "Zemlja sadržaja",
"Website": "Web stranica",
"Visit website": "Posjeti web-stranicu",
"New update available:": "Dostupno je novo ažuriranje:"
} }

View File

@ -134,5 +134,8 @@
"Share": "Share", "Share": "Share",
"Settings quality": "Settings quality", "Settings quality": "Settings quality",
"Content language": "Content language", "Content language": "Content language",
"Content country": "Content country" "Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -129,10 +129,13 @@
"Playlist deleted!": "Daftar putar dihapus!", "Playlist deleted!": "Daftar putar dihapus!",
"Delete": "Hapus", "Delete": "Hapus",
"Are you sure you want to delete this playlist?": "Apakah kamu yakin ingin menghapus daftar putar ini?", "Are you sure you want to delete this playlist?": "Apakah kamu yakin ingin menghapus daftar putar ini?",
"Force white tray icon": "Force white tray icon", "Force white tray icon": "Paksa ikon baki putih",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Paksa default (putih) ikon baki jika tema tidak terdeteksi dengan benar. Membutuhkan restart.",
"Share": "Share", "Share": "Bagikan",
"Settings quality": "Settings quality", "Settings quality": "Pengaturan kualitas",
"Content language": "Content language", "Content language": "Bahasa konten",
"Content country": "Content country" "Content country": "Wilayah konten",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -113,9 +113,9 @@
"Select primary color": "Seleziona colore principale", "Select primary color": "Seleziona colore principale",
"Light theme": "Tema chiaro", "Light theme": "Tema chiaro",
"Create folders for playlists": "Crea cartelle per le playlist", "Create folders for playlists": "Crea cartelle per le playlist",
"About": "About", "About": "Informazioni",
"Links:": "Link:", "Links:": "Link:",
"Telegram Releases": "Telegram Releases", "Telegram Releases": "Rilasci su Telegram",
"Telegram Group": "Gruppo Telegram", "Telegram Group": "Gruppo Telegram",
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Gruppo Telegram Android", "Telegram Android Group": "Gruppo Telegram Android",
@ -129,10 +129,13 @@
"Playlist deleted!": "Playlist eliminata!", "Playlist deleted!": "Playlist eliminata!",
"Delete": "Elimina", "Delete": "Elimina",
"Are you sure you want to delete this playlist?": "Sei sicuro di voler eliminare questa playlist?", "Are you sure you want to delete this playlist?": "Sei sicuro di voler eliminare questa playlist?",
"Force white tray icon": "Force white tray icon", "Force white tray icon": "Forza icona bianca nel vassoio",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forza l'icona predefinita (bianca) nel vassoio se il tema è stato rilevato in modo errato. Richiede il riavvio.",
"Share": "Share", "Share": "Condividi",
"Settings quality": "Settings quality", "Settings quality": "Qualità delle Impostazioni",
"Content language": "Content language", "Content language": "Lingua dei contenuti",
"Content country": "Content country" "Content country": "Contenuto del Paese",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -134,5 +134,8 @@
"Share": "Share", "Share": "Share",
"Settings quality": "Settings quality", "Settings quality": "Settings quality",
"Content language": "Content language", "Content language": "Content language",
"Content country": "Content country" "Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -127,12 +127,15 @@
"Removed from library!": "Usunięto z biblioteki!", "Removed from library!": "Usunięto z biblioteki!",
"Removed from playlist!": "Usunięto z playlisty!", "Removed from playlist!": "Usunięto z playlisty!",
"Playlist deleted!": "Playlista została usunięta!", "Playlist deleted!": "Playlista została usunięta!",
"Delete": "Delete", "Delete": "Usuń",
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?", "Are you sure you want to delete this playlist?": "Na pewno chcesz usunąć tę playlistę?",
"Force white tray icon": "Force white tray icon", "Force white tray icon": "Wymuś białą ikonę w zasobniku",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Wymuś domyślną (białą) ikonę w zasobniku paska zadań jeśli motyw został nieprawidłowo odczytany. Wymaga ponownego uruchomienia.",
"Share": "Share", "Share": "Udostępnij",
"Settings quality": "Settings quality", "Settings quality": "Jakość z ustawień",
"Content language": "Content language", "Content language": "Język treści",
"Content country": "Content country" "Content country": "Kraj treści",
"Website": "Strona internetowa",
"Visit website": "Odwiedź stronę internetową",
"New update available:": "Dostępna jest nowa aktualizacja:"
} }

View File

@ -9,7 +9,7 @@
"More": "Mais", "More": "Mais",
"Settings": "Configurações", "Settings": "Configurações",
"Downloads": "Downloads", "Downloads": "Downloads",
"Search or paste Deezer URL. Use / to quickly focus.": "Procure ou cole a URL do Deezer. Use \"/\" para focar rapidamente.", "Search or paste Deezer URL. Use / to quickly focus.": "Pesquise ou cole a URL do Deezer. Use \"/\" para focar rapidamente.",
"Play": "Reproduzir", "Play": "Reproduzir",
"Add to library": "Adicionar à biblioteca", "Add to library": "Adicionar à biblioteca",
"Download": "Download", "Download": "Download",
@ -17,7 +17,7 @@
"tracks": "faixas", "tracks": "faixas",
"Quality": "Qualidade", "Quality": "Qualidade",
"Estimated size:": "Tempo estimado:", "Estimated size:": "Tempo estimado:",
"Start downloading": "Começar a baixar", "Start downloading": "Iniciar download",
"Cancel": "Cancelar", "Cancel": "Cancelar",
"Stream logging is disabled!": "O registro de depuração extra está desativado!", "Stream logging is disabled!": "O registro de depuração extra está desativado!",
"Enable it in settings for history to work properly.": "Habilite nas configurações para que o histórico funcione corretamente.", "Enable it in settings for history to work properly.": "Habilite nas configurações para que o histórico funcione corretamente.",
@ -56,8 +56,8 @@
"Total": "Total", "Total": "Total",
"Stop": "Parar", "Stop": "Parar",
"Start": "Começar", "Start": "Começar",
"Show folder": "Mostrar pastas", "Show folder": "Mostrar pasta",
"Clear queue": "Limpar lista", "Clear queue": "Limpar fila",
"Playing from": "Reproduzindo de", "Playing from": "Reproduzindo de",
"Info": "Informações", "Info": "Informações",
"Lyrics": "Letra", "Lyrics": "Letra",
@ -76,10 +76,10 @@
"Login": "Login", "Login": "Login",
"By using this program, you disagree with Deezer's ToS.": "Ao usar este programa, você discorda dos termos e condições de uso do Deezer.", "By using this program, you disagree with Deezer's ToS.": "Ao usar este programa, você discorda dos termos e condições de uso do Deezer.",
"Only in Electron version!": "Apenas na versão do Electron!", "Only in Electron version!": "Apenas na versão do Electron!",
"Search results for:": "Buscar resultados para:", "Search results for:": "Resultado de pesquisa para:",
"Error loading data!": "Erro ao carregar dados!", "Error loading data!": "Erro ao carregar dados!",
"Try again later!": "Tente novamente mais tarde!", "Try again later!": "Tente novamente mais tarde!",
"Search": "Busca", "Search": "Pesquisa",
"Streaming Quality": "Qualidade do streaming", "Streaming Quality": "Qualidade do streaming",
"Download Quality": "Qualiadade do download", "Download Quality": "Qualiadade do download",
"Downloads Directory": "Pasta de Download", "Downloads Directory": "Pasta de Download",
@ -91,7 +91,7 @@
"Download lyrics": "Baixar letra", "Download lyrics": "Baixar letra",
"Variables": "Variáveis", "Variables": "Variáveis",
"UI": "IU", "UI": "IU",
"Show autocomplete in search": "Mostrar autocompletar na busca", "Show autocomplete in search": "Mostrar autocompletar na pesquisa",
"Integrations": "Integrações", "Integrations": "Integrações",
"This allows listening history, flow and recommendations to work properly.": "Isto permite que o histórico de ouvidas, flow e recomendações funcionem corretamente.", "This allows listening history, flow and recommendations to work properly.": "Isto permite que o histórico de ouvidas, flow e recomendações funcionem corretamente.",
"Log track listens to Deezer": "Log de faixas ouvidas para o Deezer", "Log track listens to Deezer": "Log de faixas ouvidas para o Deezer",
@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Você tem certeza que deseja excluir esta playlist?", "Are you sure you want to delete this playlist?": "Você tem certeza que deseja excluir esta playlist?",
"Force white tray icon": "Forçar ícone de bandeja branco", "Force white tray icon": "Forçar ícone de bandeja branco",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forçar ícone de bandeja (branco) padrão se o tema for detectado incorretamente. Requer reinicialização.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forçar ícone de bandeja (branco) padrão se o tema for detectado incorretamente. Requer reinicialização.",
"Share": "Share", "Share": "Compartilhar",
"Settings quality": "Settings quality", "Settings quality": "Configurações de qualidade",
"Content language": "Content language", "Content language": "Linguagem do conteúdo",
"Content country": "Content country" "Content country": "País do conteúdo",
"Website": "Site",
"Visit website": "Visite o site",
"New update available:": "Nova atualização disponível:"
} }

View File

@ -110,29 +110,32 @@
"Settings saved!": "Setările au fost salvate!", "Settings saved!": "Setările au fost salvate!",
"Available only in Electron version!": "Disponibil doar în versiunea Electron!", "Available only in Electron version!": "Disponibil doar în versiunea Electron!",
"Crossfade (ms)": "Crossfade (ms)", "Crossfade (ms)": "Crossfade (ms)",
"Select primary color": "Select primary color", "Select primary color": "Selectaţi culoarea primară",
"Light theme": "Light theme", "Light theme": "Temă luminoasă",
"Create folders for playlists": "Create folders for playlists", "Create folders for playlists": "Creați foldere pentru playlist-uri",
"About": "About", "About": "Despre",
"Links:": "Links:", "Links:": "Link-uri:",
"Telegram Releases": "Telegram Releases", "Telegram Releases": "Lansări Telegram",
"Telegram Group": "Telegram Group", "Telegram Group": "Grup Telegram",
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Group Android Telegram",
"Credits:": "Credits:", "Credits:": "Contribuţii:",
"Agree": "Agree", "Agree": "Permite",
"Dismiss": "Dismiss", "Dismiss": "Respingeți",
"Added to playlist!": "Added to playlist!", "Added to playlist!": "Adăugat la playlist!",
"Added to library!": "Added to library!", "Added to library!": "Adăugat la bibliotecă!",
"Removed from library!": "Removed from library!", "Removed from library!": "Eliminat din bibliotecă!",
"Removed from playlist!": "Removed from playlist!", "Removed from playlist!": "Eliminat din playlist!",
"Playlist deleted!": "Playlist deleted!", "Playlist deleted!": "Playlist detectat!",
"Delete": "Delete", "Delete": "Ștergeți",
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?", "Are you sure you want to delete this playlist?": "Ești sigur că dorești să ștergi acest playlist?",
"Force white tray icon": "Force white tray icon", "Force white tray icon": "Forțează icon alb",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Forțează icon implici (alb) dacă tema este detectată incorect. Necesită repornire a aplicației.",
"Share": "Share", "Share": "Distribuiți",
"Settings quality": "Settings quality", "Settings quality": "Setări Calitate",
"Content language": "Content language", "Content language": "Limbajul conținutului",
"Content country": "Content country" "Content country": "Țara conținutului",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Вы точно хотите удалить этот плейлист?", "Are you sure you want to delete this playlist?": "Вы точно хотите удалить этот плейлист?",
"Force white tray icon": "Белый значок в трее", "Force white tray icon": "Белый значок в трее",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Принудительно использовать белый значок, если тема определена неправильно. Требуется перезапуск.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Принудительно использовать белый значок, если тема определена неправильно. Требуется перезапуск.",
"Share": "Share", "Share": "Поделиться",
"Settings quality": "Settings quality", "Settings quality": "Качество настроек",
"Content language": "Content language", "Content language": "Язык контента",
"Content country": "Content country" "Content country": "Страна контента",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -17,7 +17,7 @@
"tracks": "skladieb", "tracks": "skladieb",
"Quality": "Kvalita", "Quality": "Kvalita",
"Estimated size:": "Odhadovaná veľkosť:", "Estimated size:": "Odhadovaná veľkosť:",
"Start downloading": "Začať sťahovať", "Start downloading": "Spustiť sťahovanie",
"Cancel": "Zrušiť", "Cancel": "Zrušiť",
"Stream logging is disabled!": "Zaznamenávanie histórie pre Deezer je zakázané!", "Stream logging is disabled!": "Zaznamenávanie histórie pre Deezer je zakázané!",
"Enable it in settings for history to work properly.": "Povoliť v nastaveniach pre správne fungovanie histórie.", "Enable it in settings for history to work properly.": "Povoliť v nastaveniach pre správne fungovanie histórie.",
@ -55,7 +55,7 @@
"Queue": "Poradie", "Queue": "Poradie",
"Total": "Spolu", "Total": "Spolu",
"Stop": "Stop", "Stop": "Stop",
"Start": "Štart", "Start": "Spustiť sťahovanie",
"Show folder": "Zobraziť priečinok", "Show folder": "Zobraziť priečinok",
"Clear queue": "Vyčistiť poradie", "Clear queue": "Vyčistiť poradie",
"Playing from": "Prehráva sa", "Playing from": "Prehráva sa",
@ -83,7 +83,7 @@
"Streaming Quality": "Kvalita streamu", "Streaming Quality": "Kvalita streamu",
"Download Quality": "Kvalita sťahovania", "Download Quality": "Kvalita sťahovania",
"Downloads Directory": "Priečinok sťahovania", "Downloads Directory": "Priečinok sťahovania",
"Simultaneous downloads": "Simultánne sťahovanie", "Simultaneous downloads": "Súbežné sťahovanie",
"Always show download confirm dialog before downloading.": "Pred stiahnutím vždy zobraziť dialógové okno s potvrdením stiahnutia.", "Always show download confirm dialog before downloading.": "Pred stiahnutím vždy zobraziť dialógové okno s potvrdením stiahnutia.",
"Show download dialog": "Zobraziť dialógové okno sťahovania", "Show download dialog": "Zobraziť dialógové okno sťahovania",
"Create folders for artists": "Vytvoriť pričinky pre umelcov", "Create folders for artists": "Vytvoriť pričinky pre umelcov",
@ -131,8 +131,11 @@
"Are you sure you want to delete this playlist?": "Naozaj chcete odstrániť tento playlist?", "Are you sure you want to delete this playlist?": "Naozaj chcete odstrániť tento playlist?",
"Force white tray icon": "Vynútiť bielu ikonu v lište", "Force white tray icon": "Vynútiť bielu ikonu v lište",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Vynútiť predvolenú (bielu) ikonu v lište, ak je motív nesprávne zistený. Vyžaduje sa reštart.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Vynútiť predvolenú (bielu) ikonu v lište, ak je motív nesprávne zistený. Vyžaduje sa reštart.",
"Share": "Share", "Share": "Zdieľať",
"Settings quality": "Settings quality", "Settings quality": "Nastavenie kvality",
"Content language": "Content language", "Content language": "Jazyk obsahu",
"Content country": "Content country" "Content country": "Krajina obsahu",
"Website": "Webová stránka",
"Visit website": "Navštíviť webovú stránku",
"New update available:": "Nová aktualizácia k dispozícii:"
} }

View File

@ -3,7 +3,7 @@
"Browse": "Gözat", "Browse": "Gözat",
"Library": "Kütüphane", "Library": "Kütüphane",
"Tracks": "Parçalar", "Tracks": "Parçalar",
"Playlists": "Oynatma listeleri", "Playlists": "Çalma listeleri",
"Albums": "Albümler", "Albums": "Albümler",
"Artists": "Sanatçılar", "Artists": "Sanatçılar",
"More": "Daha Fazla", "More": "Daha Fazla",
@ -22,7 +22,7 @@
"Stream logging is disabled!": "Akış günlüğü devre dışı bırakıldı!", "Stream logging is disabled!": "Akış günlüğü devre dışı bırakıldı!",
"Enable it in settings for history to work properly.": "Geçmişin düzgün çalışması için ayarlarda etkinleştirin.", "Enable it in settings for history to work properly.": "Geçmişin düzgün çalışması için ayarlarda etkinleştirin.",
"History": "Geçmiş", "History": "Geçmiş",
"Create new playlist": "Yeni oynatma listesi oluştur", "Create new playlist": "Yeni çalma listesi oluştur",
"TRACKS": "PARÇALAR", "TRACKS": "PARÇALAR",
"Sort by": "Sırala", "Sort by": "Sırala",
"Date Added": "Eklenme Tarihi", "Date Added": "Eklenme Tarihi",
@ -30,15 +30,15 @@
"Artist (A-Z)": "Sanatçı (A-Z)", "Artist (A-Z)": "Sanatçı (A-Z)",
"Album (A-Z)": "Albüm (A-Z)", "Album (A-Z)": "Albüm (A-Z)",
"Error loading lyrics or lyrics not found!": "Şarkı sözleri bulunamadı veya yüklenirken hata oluştu!", "Error loading lyrics or lyrics not found!": "Şarkı sözleri bulunamadı veya yüklenirken hata oluştu!",
"Create playlist": "Oynatma listesi oluştur", "Create playlist": "Çalma listesi oluştur",
"Create": "Oluştur", "Create": "Oluştur",
"Add to playlist": "Oynatma listesine ekle", "Add to playlist": "Çalma listesine ekle",
"Create new": "Yeni oluştur", "Create new": "Yeni oluştur",
"Remove": "Kaldır", "Remove": "Kaldır",
"Play next": "Sonrakini çal", "Play next": "Sonrakini çal",
"Add to queue": "Sıraya ekle", "Add to queue": "Sıraya ekle",
"Remove from library": "Kütüphaneden kaldır", "Remove from library": "Kütüphaneden kaldır",
"Remove from playlist": "Oynatma listesinden kaldır", "Remove from playlist": "Çalma listesinden kaldır",
"Play track mix": "Play track mix", "Play track mix": "Play track mix",
"Go to": "Git", "Go to": "Git",
"Track Mix": "Track Mix", "Track Mix": "Track Mix",
@ -70,7 +70,7 @@
"Please try again later, or try another account.": "Lütfen daha sonra tekrar deneyin veya başka bir hesap deneyin.", "Please try again later, or try another account.": "Lütfen daha sonra tekrar deneyin veya başka bir hesap deneyin.",
"Logout": ıkış", "Logout": ıkış",
"Login using browser": "Tarayıcı kullanarak giriş yapın", "Login using browser": "Tarayıcı kullanarak giriş yapın",
"Please login using your Deezer account:": "Lütfen Deezer hesabınızı kullanarak giriş yapın.", "Please login using your Deezer account:": "Lütfen Deezer hesabınızı kullanarak giriş yapın:",
"...or paste your ARL/Token below:": "yada ARL/Token aşağıya yapıştırın:", "...or paste your ARL/Token below:": "yada ARL/Token aşağıya yapıştırın:",
"ARL/Token": "ARL/Token", "ARL/Token": "ARL/Token",
"Login": "Giriş", "Login": "Giriş",
@ -88,13 +88,13 @@
"Show download dialog": "İndirme iletişim kutusunu göster", "Show download dialog": "İndirme iletişim kutusunu göster",
"Create folders for artists": "Sanatçılar için klasörler oluşturun", "Create folders for artists": "Sanatçılar için klasörler oluşturun",
"Create folders for albums": "Albümler için klasörler oluşturun", "Create folders for albums": "Albümler için klasörler oluşturun",
"Download lyrics": ". Lrc şarkı sözlerini indir", "Download lyrics": "Şarkı sözlerini indir",
"Variables": "Değişkenler", "Variables": "Değişkenler",
"UI": "Arayüz", "UI": "Arayüz",
"Show autocomplete in search": "Otomatik tamamlama listesini göster", "Show autocomplete in search": "Otomatik tamamlama listesini göster",
"Integrations": "Entegrasyonlar", "Integrations": "Entegrasyonlar",
"This allows listening history, flow and recommendations to work properly.": "Bu dinleme geçmişinin, akışının ve önerilerin düzgün çalışmasını sağlar.", "This allows listening history, flow and recommendations to work properly.": "Bu dinleme geçmişinin, akışının ve önerilerin düzgün çalışmasını sağlar.",
"Log track listens to Deezer": "Log track listens to Deezer", "Log track listens to Deezer": "Dinlediyin şarkılar Deezer'da yansıtılsın",
"Connect your LastFM account to allow scrobbling.": "Scrobbling'e izin vermek için LastFM hesabınızı bağlayın.", "Connect your LastFM account to allow scrobbling.": "Scrobbling'e izin vermek için LastFM hesabınızı bağlayın.",
"Login with LastFM": "LastFM ile giriş yapın", "Login with LastFM": "LastFM ile giriş yapın",
"Disconnect LastFM": "LastFM bağlantısını kes", "Disconnect LastFM": "LastFM bağlantısını kes",
@ -104,35 +104,38 @@
"Enable Discord join button for syncing tracks, requires restart to toggle!": "Şarkıları senkronize etmek için Discord katılma düğmesini etkinleştirin, geçiş yapmak için yeniden başlatma gerektirir!", "Enable Discord join button for syncing tracks, requires restart to toggle!": "Şarkıları senkronize etmek için Discord katılma düğmesini etkinleştirin, geçiş yapmak için yeniden başlatma gerektirir!",
"Discord Join Button": "Discord Katılma Düğmesi", "Discord Join Button": "Discord Katılma Düğmesi",
"Other": "Diğer", "Other": "Diğer",
"Minimize to tray": "Simge durumuna küçülsün", "Minimize to tray": "Sistem tray'e küçülsün",
"Don't minimize to tray": "Simge durumuna küçülmesin tamamen kapansın", "Don't minimize to tray": "Sistem tray'e küçülmesin tamamen kapansın",
"Close on exit": "Programı kapattığınızda", "Close on exit": "Programı kapattığınızda",
"Settings saved!": "Ayarlar kaydedildi!", "Settings saved!": "Ayarlar kaydedildi!",
"Available only in Electron version!": "Sadece Electron versiyonunda mevcuttur!", "Available only in Electron version!": "Sadece Electron versiyonunda mevcuttur!",
"Crossfade (ms)": "Crossfade (ms)", "Crossfade (ms)": "Crossfade (ms)",
"Select primary color": "Select primary color", "Select primary color": "Birincil rengi seçin",
"Light theme": "Light theme", "Light theme": "Aydınlık tema",
"Create folders for playlists": "Create folders for playlists", "Create folders for playlists": "Çalma listesi için klasör oluştur",
"About": "About", "About": "Hakkında",
"Links:": "Links:", "Links:": "Bağlantılar:",
"Telegram Releases": "Telegram Releases", "Telegram Releases": "Telegram Paylaşımları",
"Telegram Group": "Telegram Group", "Telegram Group": "Telegram Grubu",
"Discord": "Discord", "Discord": "Discord",
"Telegram Android Group": "Telegram Android Group", "Telegram Android Group": "Telegram Android Grubu",
"Credits:": "Credits:", "Credits:": "Katkıda Bulunanlar:",
"Agree": "Agree", "Agree": "Katılıyorum",
"Dismiss": "Dismiss", "Dismiss": "Reddet",
"Added to playlist!": "Added to playlist!", "Added to playlist!": "Çalma listesine eklendi!",
"Added to library!": "Added to library!", "Added to library!": "Kütüphaneye eklendi!",
"Removed from library!": "Removed from library!", "Removed from library!": "Kütüphaneden silindi!",
"Removed from playlist!": "Removed from playlist!", "Removed from playlist!": "Çalma listesinden silindi!",
"Playlist deleted!": "Playlist deleted!", "Playlist deleted!": "Çalma listesi silindi!",
"Delete": "Delete", "Delete": "Sil",
"Are you sure you want to delete this playlist?": "Are you sure you want to delete this playlist?", "Are you sure you want to delete this playlist?": "Bu çalma listesini silmek istediğinizden emin misiniz?",
"Force white tray icon": "Force white tray icon", "Force white tray icon": "Sistem tray'deki beyaz ikon olmasını zorla",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Eğer tema doğru tespitlenmediyse sistem tray'deki varsayılan (beyaz) ikon olmasını zorla. Yeniden başlatma gerekli.",
"Share": "Share", "Share": "Paylaş",
"Settings quality": "Settings quality", "Settings quality": "Kalite ayarları",
"Content language": "Content language", "Content language": "İçerik dili",
"Content country": "Content country" "Content country": "İçerik ülkesi",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -63,7 +63,7 @@
"Lyrics": "Текст", "Lyrics": "Текст",
"Track number": "Номер треку", "Track number": "Номер треку",
"Disk number": "Номер диску", "Disk number": "Номер диску",
"Explicit": "Докладно", "Explicit": "18+",
"Source": "Джерело", "Source": "Джерело",
"ID": "ID", "ID": "ID",
"Error logging in!": "Помилка входу!", "Error logging in!": "Помилка входу!",
@ -129,10 +129,13 @@
"Playlist deleted!": "Плейлист видалено!", "Playlist deleted!": "Плейлист видалено!",
"Delete": "Видалити", "Delete": "Видалити",
"Are you sure you want to delete this playlist?": "Ви впевнені, що хочете видалити цей плейлист?", "Are you sure you want to delete this playlist?": "Ви впевнені, що хочете видалити цей плейлист?",
"Force white tray icon": "Force white tray icon", "Force white tray icon": "Примусово використовувати білий значок трею",
"Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Force default (white) tray icon if theme incorrectly detected. Requires restart.", "Force default (white) tray icon if theme incorrectly detected. Requires restart.": "Примусово використовувати (білий) значок, якщо тема визначена неправильно. Необхідне перезавантаження.",
"Share": "Share", "Share": "Поширити",
"Settings quality": "Settings quality", "Settings quality": "Налаштування якості",
"Content language": "Content language", "Content language": "Мова контенту",
"Content country": "Content country" "Content country": "Країна контенту",
"Website": "Веб-сторінка",
"Visit website": "Відвідати веб-сторінку",
"New update available:": "Доступне оновлення:"
} }

View File

@ -134,5 +134,8 @@
"Share": "Share", "Share": "Share",
"Settings quality": "Settings quality", "Settings quality": "Settings quality",
"Content language": "Content language", "Content language": "Content language",
"Content country": "Content country" "Content country": "Content country",
"Website": "Website",
"Visit website": "Visit website",
"New update available:": "New update available:"
} }

View File

@ -88,9 +88,9 @@ new Vue({
track: null track: null
}, },
//Repeat & Shuffle
//0 - normal, 1 - repeat list, 2 - repeat track //0 - normal, 1 - repeat list, 2 - repeat track
repeat: 0, repeat: 0,
shuffled: false,
//Library cache //Library cache
libraryTracks: [], libraryTracks: [],
@ -172,7 +172,32 @@ new Vue({
if (newIndex < 0 || newIndex >= this.queue.data.length) return; if (newIndex < 0 || newIndex >= this.queue.data.length) return;
await this.playIndex(newIndex); await this.playIndex(newIndex);
}, },
//Skip wrapper with shuffle shuffle() {
if (!this.shuffled) {
//Save positions
for (let i=0; i<this.queue.data.length; i++)
this.queue.data[i]._position = i+1;
//Shuffle
for (let i=this.queue.data.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[this.queue.data[i], this.queue.data[j]] = [this.queue.data[j], this.queue.data[i]];
}
//Update index
this.queue.index = this.queue.data.findIndex(t => t.id == this.track.id);
this.shuffled = true;
return;
}
//Restore unshuffled queue
if (this.shuffled) {
this.queue.data.sort((a, b) => (a._position || 10000) - (b._position || 10000));
this.queue.index = this.queue.data.findIndex(t => t.id == this.track.id);
this.shuffled = false;
return;
}
},
//Skip wrapper
skipNext() { skipNext() {
this.skip(1); this.skip(1);
this.savePlaybackInfo(); this.savePlaybackInfo();
@ -254,12 +279,15 @@ new Vue({
for (let i=0; i<(this.settings.crossfadeDuration / 50); i++) { for (let i=0; i<(this.settings.crossfadeDuration / 50); i++) {
if ((oldAudio.volume - volumeStep) > 0) if ((oldAudio.volume - volumeStep) > 0)
oldAudio.volume -= volumeStep; oldAudio.volume -= volumeStep;
this.audio.volume += volumeStep; if ((this.audio.volume + volumeStep) >= 1.0 || (this.audio.volume + volumeStep) >= currentVolume)
//Prevent going over
if (this.audio.volume >= currentVolume)
break; break;
this.audio.volume += volumeStep;
await new Promise((res) => setTimeout(() => res(), 50)); await new Promise((res) => setTimeout(() => res(), 50));
} }
//Restore original volume
this.audio.voume = currentVolume;
this.volume = currentVolume;
oldAudio.pause(); oldAudio.pause();
this.resetGapless(); this.resetGapless();
@ -423,7 +451,8 @@ new Vue({
queue: this.queue, queue: this.queue,
position: this.position, position: this.position,
track: this.track, track: this.track,
repeat: this.repeat repeat: this.repeat,
shuffled: this.shuffled
} }
await this.$axios.post('/playback', data); await this.$axios.post('/playback', data);
}, },
@ -503,6 +532,7 @@ new Vue({
if (pd.data.queue) this.queue = pd.data.queue; if (pd.data.queue) this.queue = pd.data.queue;
if (pd.data.track) this.track = pd.data.track; if (pd.data.track) this.track = pd.data.track;
if (pd.data.repeat) this.repeat = pd.data.repeat; if (pd.data.repeat) this.repeat = pd.data.repeat;
if (pd.data.shuffled) this.shuffled = pd.data.shuffled;
this.playTrack(this.track).then(() => { this.playTrack(this.track).then(() => {
this.seek(pd.data.position); this.seek(pd.data.position);
}); });

View File

@ -2,12 +2,25 @@
<div> <div>
<v-img src='@/../public/banner.png' max-width='400px' class='mx-auto'></v-img> <v-img src='@/../public/banner.png' max-width='400px' class='mx-auto'></v-img>
<div v-if='data' class='text-center text-h5 font-weight-bold mb-4'> <div v-if='data' class='text-center text-h5 font-weight-bold'>
v{{data.version}} v{{data.version}}
</div> </div>
<br>
<div v-if='update' class='text-center text-h6 font-weight-bold mb-4' @click='openUrl("https://freezer.life")'>
{{$t("New update available:")}} {{update.version}}
<v-btn text color='primary' outlined class='mx-2'>{{$t("Visit website")}}</v-btn>
</div>
<h1 class='my-2 px-2'>{{$t("Links:")}}</h1> <h1 class='my-2 px-2'>{{$t("Links:")}}</h1>
<v-list> <v-list>
<v-list-item @click='openUrl("https://freezer.life")'>
<v-list-item-icon>
<v-icon>mdi-earth</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title class='font-weight-bold'>{{$t("Website")}}</v-list-item-title>
</v-list-item-content>
</v-list-item>
<v-list-item @click='openUrl("https://t.me/freezereleases")'> <v-list-item @click='openUrl("https://t.me/freezereleases")'>
<v-list-item-icon> <v-list-item-icon>
<v-icon>mdi-telegram</v-icon> <v-icon>mdi-telegram</v-icon>
@ -124,7 +137,8 @@ export default {
return { return {
data: null, data: null,
xandarDialog: false, xandarDialog: false,
tobsDialog: false tobsDialog: false,
update: null
} }
}, },
methods: { methods: {
@ -132,7 +146,9 @@ export default {
if (this.$root.settings.electron) { if (this.$root.settings.electron) {
const {ipcRenderer} = window.require('electron'); const {ipcRenderer} = window.require('electron');
ipcRenderer.send('openUrl', url); ipcRenderer.send('openUrl', url);
return;
} }
window.open(url, '_blank');
}, },
fTheme() { fTheme() {
this.$root.settings.primaryColor = '#333333'; this.$root.settings.primaryColor = '#333333';
@ -145,6 +161,17 @@ export default {
this.$axios.get('/about').then((res) => { this.$axios.get('/about').then((res) => {
this.data = res.data; this.data = res.data;
}); });
},
async mounted() {
//Check for updates
try {
let res = await this.$axios.get('/updates');
if (res.data) {
this.update = res.data;
}
} catch (_) {
//No update / failed to check, ignore
}
} }
} }
</script> </script>

View File

@ -77,8 +77,9 @@
<v-icon color='primary' v-if='$root.repeat == 1'>mdi-repeat</v-icon> <v-icon color='primary' v-if='$root.repeat == 1'>mdi-repeat</v-icon>
<v-icon color='primary' v-if='$root.repeat == 2'>mdi-repeat-once</v-icon> <v-icon color='primary' v-if='$root.repeat == 2'>mdi-repeat-once</v-icon>
</v-btn> </v-btn>
<v-btn icon @click='shuffle'> <v-btn icon @click='$root.shuffle()'>
<v-icon v-if='!$root.shuffle'>mdi-shuffle</v-icon> <v-icon color='primary' v-if='$root.shuffled'>mdi-shuffle</v-icon>
<v-icon v-if='!$root.shuffled'>mdi-shuffle</v-icon>
</v-btn> </v-btn>
<v-btn icon @click='addLibrary'> <v-btn icon @click='addLibrary'>
@ -112,7 +113,7 @@
> >
<template v-slot:append> <template v-slot:append>
<div style='position: absolute; padding-top: 4px;'> <div style='position: absolute; padding-top: 4px;'>
{{Math.round($root.audio.volume * 100)}}% {{Math.round($root.volume * 100)}}%
</div> </div>
</template> </template>
</v-slider> </v-slider>
@ -137,7 +138,7 @@
<v-tabs-items v-model='tab'> <v-tabs-items v-model='tab'>
<!-- Queue tab --> <!-- Queue tab -->
<v-tab-item key='queue'> <v-tab-item key='queue' v-if='showQueue'>
<v-list two-line avatar class='overflow-y-auto' style='max-height: calc(100vh - 160px)'> <v-list two-line avatar class='overflow-y-auto' style='max-height: calc(100vh - 160px)'>
<draggable v-model='$root.queue.data' @change='queueMove'> <draggable v-model='$root.queue.data' @change='queueMove'>
<div v-for="(track, index) in $root.queue.data" :key='index + "q" + track.id'> <div v-for="(track, index) in $root.queue.data" :key='index + "q" + track.id'>
@ -257,7 +258,9 @@ export default {
tab: null, tab: null,
inLibrary: this.$root.track.library ? true:false, inLibrary: this.$root.track.library ? true:false,
playlistPopup: false, playlistPopup: false,
downloadDialog: false downloadDialog: false,
//For reloading queue
showQueue: true,
} }
}, },
methods: { methods: {
@ -310,15 +313,6 @@ export default {
} }
this.$root.repeat += 1; this.$root.repeat += 1;
}, },
shuffle() {
//Shuffle
for (let i=this.$root.queue.data.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[this.$root.queue.data[i], this.$root.queue.data[j]] = [this.$root.queue.data[j], this.$root.queue.data[i]];
}
//Update index
this.$root.queue.index = this.$root.queue.data.findIndex(t => t.id == this.$root.track.id);
},
//Copy link //Copy link
share() { share() {
let copyElem = document.createElement('input'); let copyElem = document.createElement('input');
@ -347,6 +341,11 @@ export default {
this.position = this.$root.position / 1000; this.position = this.$root.position / 1000;
} }
}, },
//Force update queue
'$root.shuffled'() {
this.showQueue = false;
this.showQueue = true;
}
} }
}; };

View File

@ -23,7 +23,7 @@
<v-tabs-items v-model='tab'> <v-tabs-items v-model='tab'>
<!-- Tracks --> <!-- Tracks -->
<v-tab-item key='tracks'> <v-tab-item key='tracks'>
<LibraryTracks height='calc(100vh - 290px)'></LibraryTracks> <LibraryTracks height='calc(100vh - 310px)'></LibraryTracks>
</v-tab-item> </v-tab-item>
<!-- Albums --> <!-- Albums -->

View File

@ -265,7 +265,7 @@ export default {
if (this.playlist.tracks.length < this.playlist.trackCount) if (this.playlist.tracks.length < this.playlist.trackCount)
await this.sort(0); await this.sort(0);
this.isReversed = !this.isReversed; this.isReversed = !this.isReversed;
this.tracks.reverse(); this.playlist.tracks.reverse();
}, },
}, },
mounted() { mounted() {

7
app/package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "freezer", "name": "freezer",
"version": "1.1.7", "version": "1.1.9",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -437,6 +437,11 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
"integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
}, },
"compare-versions": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
"integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA=="
},
"component-bind": { "component-bind": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",

View File

@ -1,7 +1,7 @@
{ {
"name": "freezer", "name": "freezer",
"private": true, "private": true,
"version": "1.1.7", "version": "1.1.10",
"description": "", "description": "",
"main": "background.js", "main": "background.js",
"scripts": { "scripts": {
@ -14,6 +14,7 @@
"axios": "^0.19.2", "axios": "^0.19.2",
"browser-id3-writer": "^4.4.0", "browser-id3-writer": "^4.4.0",
"chalk": "^4.1.0", "chalk": "^4.1.0",
"compare-versions": "^3.6.0",
"discord-rpc": "^3.1.4", "discord-rpc": "^3.1.4",
"express": "^4.17.1", "express": "^4.17.1",
"lastfmapi": "^0.1.1", "lastfmapi": "^0.1.1",

View File

@ -2,6 +2,7 @@ const express = require('express');
const path = require('path'); const path = require('path');
const packageJson = require('../package.json'); const packageJson = require('../package.json');
const fs = require('fs'); const fs = require('fs');
const compareVersions = require('compare-versions');
const axios = require('axios').default; const axios = require('axios').default;
const logger = require('./winston'); const logger = require('./winston');
const {DeezerAPI, DeezerStream} = require('./deezer'); const {DeezerAPI, DeezerStream} = require('./deezer');
@ -477,6 +478,21 @@ app.get('/about', async (req, res) => {
}); });
}); });
app.get('/updates', async (req, res) => {
try {
let response = await axios.get('https://freezer.life/api/versions');
//New version
if (compareVersions(response.data.pc.latest, packageJson.version) >= 1) {
res.send(response.data.pc.versions[0]);
return;
}
res.status(404).end();
return;
} catch (e) {
res.status(500).end();
}
});
//Redirect to index on unknown path //Redirect to index on unknown path
app.all('*', (req, res) => { app.all('*', (req, res) => {
res.redirect('/'); res.redirect('/');

Binary file not shown.

View File

@ -1,7 +1,7 @@
{ {
"name": "freezer", "name": "freezer",
"private": true, "private": true,
"version": "1.1.7", "version": "1.1.10",
"description": "", "description": "",
"scripts": { "scripts": {
"pack": "electron-builder --dir", "pack": "electron-builder --dir",