1.1.20 - self describing code (jk read telegram changelog)
|
@ -117,13 +117,14 @@ async function createWindow() {
|
|||
minHeight: 600,
|
||||
resizable: true,
|
||||
autoHideMenuBar: true,
|
||||
frame: false,
|
||||
frame: settings.nativeTopBar,
|
||||
icon: assetPath("icon.png"),
|
||||
title: 'Freezer',
|
||||
webPreferences: {
|
||||
enableRemoteModule: true,
|
||||
nodeIntegration: true,
|
||||
devTools: true
|
||||
devTools: true,
|
||||
contextIsolation: false
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -13,13 +13,13 @@
|
|||
"@mdi/font": "^5.9.55",
|
||||
"axios": "^0.21.1",
|
||||
"roboto-fontface": "*",
|
||||
"socket.io-client": "^4.1.2",
|
||||
"vue": "^2.6.12",
|
||||
"vue-esc": "^3.0.1",
|
||||
"vue-i18n": "^8.22.4",
|
||||
"vue-router": "^3.4.9",
|
||||
"vue-socket.io": "^3.0.10",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuetify": "^2.4.2"
|
||||
"vuetify": "^2.5.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@intlify/vue-i18n-loader": "^1.0.0",
|
||||
|
@ -33,7 +33,7 @@
|
|||
"vue-cli-plugin-i18n": "~1.0.1",
|
||||
"vue-cli-plugin-vuetify": "^2.0.9",
|
||||
"vue-template-compiler": "^2.6.12",
|
||||
"vuetify-loader": "^1.3.0"
|
||||
"vuetify-loader": "^1.7.2"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"root": true,
|
||||
|
|
|
@ -3,10 +3,11 @@
|
|||
<v-app v-esc='closePlayer'>
|
||||
|
||||
<v-system-bar
|
||||
:color='$root.settings.lightTheme ? "#f5f5f5" : "#121212"'
|
||||
:color='$root.settings.lgbtMode ? null : $root.settings.lightTheme ? "#f5f5f5" : "#121212"'
|
||||
app
|
||||
class='topbar'
|
||||
v-if='$root.settings.electron'
|
||||
:class='{"lgbt-header": $root.settings.lgbtMode}'
|
||||
v-if='$root.settings.electron && !$root.settings.nativeTopBar'
|
||||
height='28'>
|
||||
|
||||
<v-spacer></v-spacer>
|
||||
|
@ -192,11 +193,11 @@
|
|||
<v-main>
|
||||
<img :src='backgroundSrc' class='wallpaper' v-if='$root.settings.backgroundImage'>
|
||||
<v-container
|
||||
class='overflow-y-auto'
|
||||
fluid
|
||||
style='height: calc(100vh - 140px);'>
|
||||
class='overflow-y-auto'
|
||||
:class='{"main-container": $root.topBar, "main-container-notop": !$root.topBar}'
|
||||
:fluid='fluidContainer'>
|
||||
<keep-alive include='Search,PlaylistPage,HomeScreen,DeezerPage'>
|
||||
<router-view class='router-wiev'></router-view>
|
||||
<router-view></router-view>
|
||||
</keep-alive>
|
||||
</v-container>
|
||||
</v-main>
|
||||
|
@ -340,6 +341,30 @@
|
|||
position: absolute;
|
||||
object-fit: fill;
|
||||
}
|
||||
|
||||
.main-container {
|
||||
height: calc(100vh - 140px);
|
||||
}
|
||||
|
||||
.main-container-notop {
|
||||
height: calc(100vh - 118px);
|
||||
}
|
||||
|
||||
.lgbt-header {
|
||||
background-image: linear-gradient(135deg,
|
||||
#FE0000FF 16.66%,
|
||||
#FD8C00FF 16.66%, 33.32%,
|
||||
#FFE500FF 33.32%, 49.98%,
|
||||
#119F0BFF 49.98%, 66.64%,
|
||||
#0644B3FF 66.64%, 83.3%,
|
||||
#C22EDCFF 83.3%);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.lgbt-header button {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
|
@ -363,7 +388,8 @@ export default {
|
|||
cancelSuggestions: false,
|
||||
globalSnackbar: false,
|
||||
version: null,
|
||||
updateAvailable: false
|
||||
updateAvailable: false,
|
||||
fluidContainer: window.innerWidth < 1300
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
@ -485,7 +511,7 @@ export default {
|
|||
if (this.$root.settings.backgroundImage && this.$root.settings.backgroundImage.startsWith("http"))
|
||||
return this.$root.settings.backgroundImage;
|
||||
return process.env.NODE_ENV === 'development' ? "http://localhost:10069/background" : "/background";
|
||||
}
|
||||
},
|
||||
},
|
||||
async mounted() {
|
||||
//Scroll on volume
|
||||
|
@ -523,6 +549,11 @@ export default {
|
|||
if (this.$root.loadingPromise) await this.$root.loadingPromise;
|
||||
this.volume = this.$root.volume;
|
||||
|
||||
//Limit content width on large displays
|
||||
window.addEventListener('resize', () => {
|
||||
this.fluidContainer = window.innerWidth < 1300;
|
||||
});
|
||||
|
||||
//Check for update
|
||||
this.checkUpdate();
|
||||
},
|
||||
|
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "تنزيل اسم الملف",
|
||||
"Language": "اللغة",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "Non",
|
||||
"Download Filename": "Nome de les descargues",
|
||||
"Language": "Llingua",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Imaxe del fondu",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Introduz una URL o un camín absolutu. ALVERTENCIA: ¡Ha reaniciase l'aplicación!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "Nein",
|
||||
"Download Filename": "Dateiname herunterladen",
|
||||
"Language": "Sprache",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Hintergrundbild",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "URL oder absoluten Pfad eingeben. WARNUNG: Neuladen erforderlich!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "Όχι",
|
||||
"Download Filename": "Όνομα Αρχείου Λήψης",
|
||||
"Language": "Γλώσσα",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Εικόνα Φόντου",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Εισάγετε URL ή απόλυτη διαδρομή. ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Απαιτείται επαναφόρτωση!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "No",
|
||||
"Download Filename": "Nombre del archivo de descarga",
|
||||
"Language": "Idioma",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Imagen de fondo",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Introducir la URL o ruta absoluta. ADVERTENCIA: ¡Necesita reiniciar!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "بارگیری اسم فایل",
|
||||
"Language": "زبان",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Download Filename",
|
||||
"Language": "Wika",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -152,7 +152,7 @@
|
|||
"Currently only Spotify is supported and limited to 100 tracks.": "Actuellement, seul Spotify est pris en charge et limité à 100 titres.",
|
||||
"Import into playlist": "Importer dans la playlist",
|
||||
"Keep sidebar open": "Garder le panneau latéral ouvert",
|
||||
"WARNING: Might require reload to work properly!": "AVERTISSEMENT : Il peut être nécessaire de recharger pour fonctionner correctement !",
|
||||
"WARNING: Might require reload to work properly!": "AVERTISSEMENT : Il peut être nécessaire de redémarrer pour fonctionner correctement !",
|
||||
"An error occured, URL might be invalid or unsupported.": "Une erreur est survenue, l'URL est peut-être invalide ou non prise en charge.",
|
||||
"Top tracks": "Titres populaires",
|
||||
"Show all top tracks": "Afficher tous les titres populaires",
|
||||
|
@ -163,6 +163,9 @@
|
|||
"No": "Non",
|
||||
"Download Filename": "Nom du fichier à télécharger",
|
||||
"Language": "Langue",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Image d'arrière-plan",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Entrez l'URL ou le chemin absolu. ATTENTION : Nécessite un redémarrage !",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "לא",
|
||||
"Download Filename": "הורד/י את שם הקובץ",
|
||||
"Language": "שפה",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "תמונת רקע",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "הזן כתובת אתר או נתיב מוחלט. אזהרה: מחייב טעינה מחדש!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "Ne",
|
||||
"Download Filename": "Naziv datoteke preuzimanja",
|
||||
"Language": "Jezik",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Pozadinska slika",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Unesire URL ili apsolutnu putanju. UPOZORENJE: Zahtijeva ponovno pokretanje!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -9,7 +9,7 @@
|
|||
"More": "Továbbiak",
|
||||
"Settings": "Beállítások",
|
||||
"Downloads": "Letöltések",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Keressen, vagy illesszen be Deezer URL linket. Használja a \"/\" karaktert, hogy gyorsan ősszpontosítson.",
|
||||
"Search or paste Deezer URL. Use / to quickly focus.": "Keressen, vagy illesszen be Deezer URL linket. Használja a \"/\" karaktert, hogy megfelelően rámutasson.",
|
||||
"Play": "Lejátszás",
|
||||
"Add to library": "Hozzáadás a könyvtárhoz",
|
||||
"Download": "Letöltés",
|
||||
|
@ -19,7 +19,7 @@
|
|||
"Estimated size:": "Becsült fájl méret:",
|
||||
"Start downloading": "Letöltés indítása",
|
||||
"Cancel": "Mégse",
|
||||
"Stream logging is disabled!": "Stream naplózás le van tiltva!",
|
||||
"Stream logging is disabled!": "A stream naplózás le van tiltva!",
|
||||
"Enable it in settings for history to work properly.": "Engedélyezze a beállításokban, hogy az előzmények megfelelően működjenek.",
|
||||
"History": "Előzmények",
|
||||
"Create new playlist": "Új lejátszási lista létrehozása",
|
||||
|
@ -36,14 +36,14 @@
|
|||
"Create new": "Új létrehozása",
|
||||
"Remove": "Eltávolítás",
|
||||
"Play next": "Következő lejátszása",
|
||||
"Add to queue": "Hozzáadás a várólistához",
|
||||
"Add to queue": "Hozzáadás a listához",
|
||||
"Remove from library": "Eltávolítás a könyvtárból",
|
||||
"Remove from playlist": "Eltávolítás a lejátszási listáról",
|
||||
"Play track mix": "Dal Mix lejátszása",
|
||||
"Go to": "Menjen",
|
||||
"Go to": "Ugrás",
|
||||
"Track Mix": "Dal Mix",
|
||||
"Duration": "Időtartam",
|
||||
"Released": "Kiadva",
|
||||
"Released": "Megjelent",
|
||||
"Disk": "Lemez",
|
||||
"albums": "albumok",
|
||||
"Play top": "Legfelső lejátszása",
|
||||
|
@ -163,6 +163,9 @@
|
|||
"No": "Nem",
|
||||
"Download Filename": "Letöltött fájlnév",
|
||||
"Language": "Nyelv",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Háttérkép",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Adjon meg URL címet vagy teljes elérési utat. FIGYELEM: Újraindítás szükséges!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Unduh Nama File",
|
||||
"Language": "Bahasa",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "No",
|
||||
"Download Filename": "Nome del file scaricato",
|
||||
"Language": "Lingua",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Immagine di sfondo",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Inserisci l'URL o il percorso assoluto. ATTENZIONE: Richiede il ricaricamento!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Bestandsnaam Downloaden",
|
||||
"Language": "Taal",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Nazwa pobieranego pliku",
|
||||
"Language": "Język",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "Não",
|
||||
"Download Filename": "Nomenclatura de download",
|
||||
"Language": "Idioma",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Imagem de Fundo",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Digite URL ou caminho absoluto. ATENÇÃO: Requer recarregar!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "Nu",
|
||||
"Download Filename": "Denumirea Descărcării",
|
||||
"Language": "Limba",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Imagine de fundal",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Introduceţi URL-ul sau calea completă. ATENŢIE: Necesită reîncărcare!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Скачать шаблон для названия",
|
||||
"Language": "Язык",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "Nie",
|
||||
"Download Filename": "Stiahnuť názov súboru",
|
||||
"Language": "Jazyk",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Obrázok pozadia",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Vložte URL alebo cestu. VAROVANIE: Vyžaduje obnovenie!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Imena prenosa",
|
||||
"Language": "Jezik",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "Hayır",
|
||||
"Download Filename": "Adlandırma taslağı indir",
|
||||
"Language": "Dil",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Arka plan resmi",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "URL'yi veya mutlak yolu girin. UYARI: yeniden yükleme gerektirir!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -161,8 +161,11 @@
|
|||
"Artists:": "Виконавці:",
|
||||
"Yes": "Так",
|
||||
"No": "Ні",
|
||||
"Download Filename": "Download Filename",
|
||||
"Download Filename": "Ім'я файлу завантаження",
|
||||
"Language": "Мова",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Фонове зображення",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Введіть URL або абсолютний шлях. УВАГА: необхідне перезавантаження!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Download Filename",
|
||||
"Language": "Language",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "Downwoad Filename",
|
||||
"Language": "Wanguage (Don't change me >w<)",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -163,6 +163,9 @@
|
|||
"No": "Không",
|
||||
"Download Filename": "Tải xuống tên tệp",
|
||||
"Language": "Ngôn ngữ",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Background Image": "Ảnh nền",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Nhập URL hoặc đường dẫn hợp lệ. CẢNH BÁO: Yêu cầu tải lại!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -164,5 +164,8 @@
|
|||
"Download Filename": "下载文件名",
|
||||
"Language": "语言",
|
||||
"Background Image": "Background Image",
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!"
|
||||
}
|
||||
"Enter URL or absolute path. WARNING: Requires reload!": "Enter URL or absolute path. WARNING: Requires reload!",
|
||||
"LGBT Mode": "LGBT Mode",
|
||||
"Native top bar": "Native top bar",
|
||||
"Requires restart of Freezer!": "Requires restart of Freezer!"
|
||||
}
|
|
@ -4,8 +4,8 @@ import router from './js/router';
|
|||
import vuetify from './js/vuetify';
|
||||
import axios from 'axios';
|
||||
import VueEsc from 'vue-esc';
|
||||
import VueSocketIO from 'vue-socket.io';
|
||||
import i18n from './js/i18n';
|
||||
import { io } from "socket.io-client";
|
||||
|
||||
//Globals
|
||||
let ipcRenderer;
|
||||
|
@ -52,10 +52,9 @@ Vue.prototype.$filesize = (bytes) => {
|
|||
}
|
||||
|
||||
//Sockets
|
||||
Vue.use(new VueSocketIO({
|
||||
connection: process.env.NODE_ENV === 'development' ? "http://localhost:10069" : window.location.toString(),
|
||||
options: {path: '/socket'}
|
||||
}));
|
||||
Vue.prototype.$io = io("http://localhost:10069", {
|
||||
path: '/socket'
|
||||
});
|
||||
|
||||
Vue.config.productionTip = false;
|
||||
Vue.use(VueEsc);
|
||||
|
@ -503,7 +502,7 @@ new Vue({
|
|||
}, 500);
|
||||
return;
|
||||
}
|
||||
this.$socket.emit('stateChange', {
|
||||
this.$io.emit('stateChange', {
|
||||
position: this.position,
|
||||
duration: this.duration(),
|
||||
state: this.state,
|
||||
|
@ -517,6 +516,29 @@ new Vue({
|
|||
},
|
||||
updateLanguage(l) {
|
||||
i18n.locale = l;
|
||||
},
|
||||
//For LGBT/Gayming mode
|
||||
primaryColorRainbow() {
|
||||
const colors = ['#F44336', '#E91E63', '#9C27B0', '#673AB7', '#3F51B5', '#2196F3', '#03A9F4',
|
||||
'#00BCD4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722',
|
||||
'#795548', '#607D8B', '#9E9E9E'];
|
||||
let index = 0;
|
||||
setInterval(() => {
|
||||
this.$vuetify.theme.themes.dark.primary = colors[index];
|
||||
this.$vuetify.theme.themes.light.primary = colors[index];
|
||||
this.$root.settings.primaryColor = colors[index];
|
||||
index++;
|
||||
if (index == colors.length)
|
||||
index = 0;
|
||||
}, 400);
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
//Show or no topbar
|
||||
topBar() {
|
||||
if (!this.settings.electron) return false;
|
||||
return !this.settings.nativeTopBar;
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -530,6 +552,18 @@ new Vue({
|
|||
this.$vuetify.theme.themes.light.primary = this.settings.primaryColor;
|
||||
if (this.settings.lightTheme)
|
||||
this.$vuetify.theme.dark = false;
|
||||
|
||||
//LGBT mode
|
||||
const lgbt = 'https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Gay_Pride_Flag.svg/1280px-Gay_Pride_Flag.svg.png';
|
||||
if (this.settings.lgbtMode) {
|
||||
this.settings.backgroundImage = lgbt;
|
||||
this.primaryColorRainbow();
|
||||
} else {
|
||||
//Remove bg image
|
||||
if (this.settings.backgroundImage == lgbt)
|
||||
this.settings.backgroundImage = null;
|
||||
}
|
||||
|
||||
i18n.locale = this.settings.language;
|
||||
this.volume = this.settings.volume;
|
||||
|
||||
|
@ -584,15 +618,15 @@ new Vue({
|
|||
//Sockets
|
||||
|
||||
//Queue change
|
||||
this.sockets.subscribe('downloads', (data) => {
|
||||
this.$io.on('downloads', (data) => {
|
||||
this.downloads = data;
|
||||
});
|
||||
//Current download change
|
||||
this.sockets.subscribe('currentlyDownloading', (data) => {
|
||||
this.$io.on('currentlyDownloading', (data) => {
|
||||
this.downloads.threads = data;
|
||||
});
|
||||
//Play at offset (for integrations)
|
||||
this.sockets.subscribe('playOffset', async (data) => {
|
||||
this.$io.on('playOffset', async (data) => {
|
||||
this.queue.data.splice(this.queue.index + 1, 0, data.track);
|
||||
await this.skip(1);
|
||||
this.seek(data.position);
|
||||
|
@ -601,25 +635,25 @@ new Vue({
|
|||
//Importer
|
||||
|
||||
//Start
|
||||
this.sockets.subscribe('importerInit', (data) => {
|
||||
this.$io.on('importerInit', (data) => {
|
||||
this.importer = data;
|
||||
});
|
||||
//New track imported
|
||||
this.sockets.subscribe('importerTrack', (data) => {
|
||||
this.$io.on('importerTrack', (data) => {
|
||||
this.importer.tracks.push(data);
|
||||
});
|
||||
//Mark as done
|
||||
this.sockets.subscribe('importerDone', () => {
|
||||
this.$io.on('importerDone', () => {
|
||||
this.importer.active = false;
|
||||
this.importer.done = true;
|
||||
});
|
||||
this.sockets.subscribe('importerError', () => {
|
||||
this.$io.on('importerError', () => {
|
||||
this.importer.error = true;
|
||||
this.importer.active = false;
|
||||
this.importer.done = false;
|
||||
});
|
||||
//Album
|
||||
this.sockets.subscribe('importerAlbum', a => {
|
||||
this.$io.on('importerAlbum', a => {
|
||||
//Not downloading, got albumn
|
||||
if (a) {
|
||||
this.$router.push({
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<div class='pa-0' :class='{electron: $root.settings.electron, notop: !$root.settings.electron}'>
|
||||
<div class='pa-0' :class='{electron: $root.topBar, notop: !$root.topBar}'>
|
||||
|
||||
<v-app-bar dense>
|
||||
<v-btn icon @click='close'>
|
||||
|
@ -144,7 +144,7 @@
|
|||
<!-- Queue tab -->
|
||||
<v-tab-item key='queue' v-if='showQueue'>
|
||||
<v-list two-line avatar class='overflow-y-auto' style='max-height: calc(100vh - 160px)'>
|
||||
<v-virtual-scroll :items='$root.queue.data' item-height='72' benched='5'>
|
||||
<v-virtual-scroll :items='$root.queue.data' item-height='72' benched='5' style='overflow-y: hidden !important'>
|
||||
<template v-slot:default="{ index, item }">
|
||||
<draggable v-model='$root.queue.data' @move='queueMove'>
|
||||
<v-lazy min-height="1" transition="fade-transition" :key='"qq" + index'>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<v-tabs-items v-model='tab'>
|
||||
<!-- Tracks -->
|
||||
<v-tab-item key='tracks'>
|
||||
<LibraryTracks height='calc(100vh - 310px)'></LibraryTracks>
|
||||
<LibraryTracks :height='"calc(100vh - " + ($root.topBar ? 310 : 290) + "px)"'></LibraryTracks>
|
||||
</v-tab-item>
|
||||
|
||||
<!-- Albums -->
|
||||
|
|
|
@ -176,6 +176,25 @@
|
|||
<v-list-item-subtitle>{{$t("WARNING: Might require reload to work properly!")}}</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<!-- LGBT Mode -->
|
||||
<v-list-item>
|
||||
<v-list-item-action>
|
||||
<v-checkbox v-model='$root.settings.lgbtMode' class='pl-2' @click='applyLGBT'></v-checkbox>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{$t("LGBT Mode")}}</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<!-- Native top bar -->
|
||||
<v-list-item>
|
||||
<v-list-item-action>
|
||||
<v-checkbox v-model='$root.settings.nativeTopBar' class='pl-2'></v-checkbox>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{$t("Native top bar")}}</v-list-item-title>
|
||||
<v-list-item-subtitle>{{$t("Requires restart of Freezer!")}}</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<!-- Background image -->
|
||||
<v-text-field
|
||||
class='px-4 my-2'
|
||||
|
@ -372,10 +391,6 @@ export default {
|
|||
],
|
||||
artResolutions: [256, 512, 600, 800, 1000, 1200, 1400, 1600, 1800],
|
||||
colorPicker: false,
|
||||
primaryColorIndex: 0,
|
||||
primaries: ['#F44336', '#E91E63', '#9C27B0', '#673AB7', '#3F51B5', '#2196F3', '#03A9F4',
|
||||
'#00BCD4', '#009688', '#4CAF50', '#8BC34A', '#CDDC39', '#FFEB3B', '#FFC107', '#FF9800', '#FF5722',
|
||||
'#795548', '#607D8B', '#9E9E9E'],
|
||||
|
||||
//Lists from Deezer website
|
||||
languageList: ["me", "da", "de", "en", "us", "es", "mx", "fr", "hr", "id", "it", "hu", "ms", "nl", "no", "pl", "br", "pt", "ru", "ro", "sq", "sk", "sl", "sr", "fi", "sv", "tr", "cs", "bg", "uk", "he", "ar", "th", "cn", "ja", "ko"],
|
||||
|
@ -464,6 +479,10 @@ export default {
|
|||
this.$vuetify.theme.dark = true;
|
||||
this.$vuetify.theme.light = false;
|
||||
}
|
||||
},
|
||||
async applyLGBT() {
|
||||
await this.save();
|
||||
window.location.reload();
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
@ -492,14 +511,7 @@ export default {
|
|||
|
||||
//RGB
|
||||
if (event.code == 'KeyG' && event.ctrlKey && event.altKey) {
|
||||
setInterval(() => {
|
||||
this.$vuetify.theme.themes.dark.primary = this.primaries[this.primaryColorIndex];
|
||||
this.$vuetify.theme.themes.light.primary = this.primaries[this.primaryColorIndex];
|
||||
this.$root.settings.primaryColor = this.primaries[this.primaryColorIndex];
|
||||
this.primaryColorIndex++;
|
||||
if (this.primaryColorIndex == this.primaries.length)
|
||||
this.primaryColorIndex = 0;
|
||||
}, 400);
|
||||
this.$root.primaryColorRainbow();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "freezer",
|
||||
"private": true,
|
||||
"version": "1.1.19",
|
||||
"version": "1.1.20",
|
||||
"description": "",
|
||||
"main": "background.js",
|
||||
"scripts": {
|
||||
|
@ -10,24 +10,24 @@
|
|||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"arg": "^4.1.3",
|
||||
"arg": "^5.0.0",
|
||||
"axios": "^0.21.1",
|
||||
"browser-id3-writer": "^4.4.0",
|
||||
"chalk": "^4.1.0",
|
||||
"cheerio": "^1.0.0-rc.5",
|
||||
"chalk": "^4.1.1",
|
||||
"cheerio": "^1.0.0-rc.9",
|
||||
"compare-versions": "^3.6.0",
|
||||
"cors": "^2.8.5",
|
||||
"discord-rpc": "^3.1.4",
|
||||
"discord-rpc": "^3.2.0",
|
||||
"express": "^4.17.1",
|
||||
"lastfmapi": "^0.1.1",
|
||||
"metaflac-js2": "^1.0.7",
|
||||
"nedb": "^1.8.0",
|
||||
"nodeezcryptor": "git+https://git.freezer.life/exttex/nodeezcryptor.git",
|
||||
"sanitize-filename": "^1.6.3",
|
||||
"socket.io": "^2.3.0",
|
||||
"socket.io": "^4.1.2",
|
||||
"winston": "^3.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^7.10.0"
|
||||
"eslint": "^7.27.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -527,6 +527,11 @@ class DownloadThread {
|
|||
}
|
||||
}
|
||||
|
||||
//Cut path to fit into windows limits
|
||||
if (fn.length >= 249) {
|
||||
fn = fn.substring(0, 249);
|
||||
}
|
||||
|
||||
//Extension
|
||||
if (quality.toString() == '9') {
|
||||
fn += '.flac';
|
||||
|
|
|
@ -54,11 +54,12 @@ class Integrations extends EventEmitter {
|
|||
}
|
||||
|
||||
//LastFM Scrobble
|
||||
async scrobbleLastFM(title, artist) {
|
||||
async scrobbleLastFM(title, album, artist) {
|
||||
if (this.settings.lastFM)
|
||||
this.lastfm.track.scrobble({
|
||||
artist: artist,
|
||||
artist,
|
||||
track: title,
|
||||
album,
|
||||
timestamp: Math.floor((new Date()).getTime() / 1000)
|
||||
});
|
||||
}
|
||||
|
@ -103,35 +104,39 @@ class Integrations extends EventEmitter {
|
|||
//Called when playback state changed
|
||||
async updateState(data) {
|
||||
if (this.discordReady) {
|
||||
let richPresence = {
|
||||
state: data.track.artistString,
|
||||
details: data.track.title,
|
||||
largeImageKey: 'icon',
|
||||
instance: true,
|
||||
if (data.state == 2){
|
||||
let richPresence = {
|
||||
state: data.track.artistString,
|
||||
details: data.track.title,
|
||||
largeImageKey: 'icon',
|
||||
instance: true,
|
||||
}
|
||||
//Show timestamp only if playing
|
||||
if (data.state == 2) {
|
||||
Object.assign(richPresence, {
|
||||
startTimestamp: Date.now() - data.position,
|
||||
endTimestamp: (Date.now() - data.position) + data.duration,
|
||||
});
|
||||
}
|
||||
//Enabled discord join
|
||||
if (this.settings.discordJoin) {
|
||||
Object.assign(richPresence, {
|
||||
partySize: 1,
|
||||
partyMax: 10,
|
||||
matchSecret: 'match_secret_' + data.track.id,
|
||||
joinSecret: JSON.stringify({
|
||||
pos: Math.floor(data.position),
|
||||
ts: Date.now(),
|
||||
id: data.track.id
|
||||
}),
|
||||
partyId: 'party_id_' + data.track.id
|
||||
});
|
||||
}
|
||||
//Set
|
||||
this.discordRPC.setActivity(richPresence);
|
||||
} else {
|
||||
this.discordRPC.clearActivity();
|
||||
}
|
||||
//Show timestamp only if playing
|
||||
if (data.state == 2) {
|
||||
Object.assign(richPresence, {
|
||||
startTimestamp: Date.now() - data.position,
|
||||
endTimestamp: (Date.now() - data.position) + data.duration,
|
||||
});
|
||||
}
|
||||
//Enabled discord join
|
||||
if (this.settings.discordJoin) {
|
||||
Object.assign(richPresence, {
|
||||
partySize: 1,
|
||||
partyMax: 10,
|
||||
matchSecret: 'match_secret_' + data.track.id,
|
||||
joinSecret: JSON.stringify({
|
||||
pos: Math.floor(data.position),
|
||||
ts: Date.now(),
|
||||
id: data.track.id
|
||||
}),
|
||||
partyId: 'party_id_' + data.track.id
|
||||
});
|
||||
}
|
||||
//Set
|
||||
this.discordRPC.setActivity(richPresence);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -27,8 +27,14 @@ app.use(express.static(path.join(__dirname, '../client', 'dist')));
|
|||
app.use(cors({origin: 'http://localhost:8080'}));
|
||||
//Server
|
||||
const server = require('http').createServer(app);
|
||||
const io = require('socket.io').listen(server, {
|
||||
const { Server } = require('socket.io');
|
||||
const io = new Server(server, {
|
||||
path: '/socket',
|
||||
//CORS for webpack debug
|
||||
cors: {
|
||||
origin: 'http://localhost:8080',
|
||||
methods: ["GET", "POST"],
|
||||
}
|
||||
});
|
||||
|
||||
//Get playback info
|
||||
|
@ -463,7 +469,7 @@ app.delete('/downloads/:index', async (req, res) => {
|
|||
//Log listen to deezer & lastfm
|
||||
app.post('/log', async (req, res) => {
|
||||
//LastFM
|
||||
integrations.scrobbleLastFM(req.body.title, req.body.artists[0].name);
|
||||
integrations.scrobbleLastFM(req.body.title, req.body.album.title, req.body.artists[0].name);
|
||||
|
||||
//Deezer
|
||||
if (settings.logListen)
|
||||
|
|
|
@ -44,6 +44,8 @@ class Settings {
|
|||
this.contentLanguage = 'en';
|
||||
this.contentCountry = 'US';
|
||||
this.sidebarOpen = false;
|
||||
this.lgbtMode = false;
|
||||
this.nativeTopBar = false;
|
||||
|
||||
//Has to be local path
|
||||
this.backgroundImage = null;
|
||||
|
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 307 B |
After Width: | Height: | Size: 425 B |
After Width: | Height: | Size: 518 B |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 765 B |
After Width: | Height: | Size: 902 B |
After Width: | Height: | Size: 1.1 KiB |
64
package.json
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "freezer",
|
||||
"private": true,
|
||||
"version": "1.1.19",
|
||||
"version": "1.1.20",
|
||||
"description": "Freezer PC",
|
||||
"scripts": {
|
||||
"pack": "electron-builder --dir",
|
||||
|
@ -9,11 +9,11 @@
|
|||
"postinstall": "electron-builder install-app-deps",
|
||||
"build": "cd app && npm i && cd client && npm i && npm run build && cd .. && cd .. && npm run dist"
|
||||
},
|
||||
"license": "GNU",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"homepage": "https://freezer.life",
|
||||
"devDependencies": {
|
||||
"electron": "^9.2.1",
|
||||
"electron-builder": "^22.8.0"
|
||||
"electron": "^13.0.1",
|
||||
"electron-builder": "^22.10.5"
|
||||
},
|
||||
"build": {
|
||||
"appId": "com.exttex.freezer",
|
||||
|
@ -46,32 +46,58 @@
|
|||
"allowToChangeInstallationDirectory": false
|
||||
},
|
||||
"linux": {
|
||||
"appId": "f.f.freezer",
|
||||
"category": "AudioVideo;Network;Audio;FileTransfer;Player",
|
||||
"description": "Free music streaming client for Deezer",
|
||||
"desktop": {
|
||||
"Version": "1.1",
|
||||
"Type": "Application",
|
||||
"Name": "Freezer",
|
||||
"Name[pt_PT]": "Congelador",
|
||||
"GenericName": "Electron-based Deezer client",
|
||||
"GenericName[pt_PT]": "Aplicação Electron no ambiente de trabalho para Deezer",
|
||||
"Comment": "Desktop application for the Deezer audio streaming service",
|
||||
"Comment[pt_PT]": "Cliente não-oficial do serviço de transmissão de áudio Deezer",
|
||||
"Icon": "freezer",
|
||||
"Categories": "AudioVideo;Network;Audio;FileTransfer;Player;",
|
||||
"MimeType": "application/http;",
|
||||
"Keywords": "audio;download;flac;lyrics;mp3;music;spotify;stream;",
|
||||
"Keywords[pt_PT]": "áudio;descarregar;flac;letras;mp3;música;spotify;transmissão;",
|
||||
"Keywords[ru]": "Фризер;Музыка;Плеер;Дизер;",
|
||||
"StartupNotify": "true",
|
||||
"StartupWMClass": "freezer",
|
||||
"DBusActivatable": "false",
|
||||
"Terminal": "false",
|
||||
"NoDisplay": "false",
|
||||
"Hidden": "false"
|
||||
},
|
||||
"executableName": "freezer",
|
||||
"icon": "build/iconset",
|
||||
"maintainer": "exttex",
|
||||
"mimeTypes": [
|
||||
"application/http"
|
||||
],
|
||||
"synopsis": "Free audio streaming client for Deezer",
|
||||
"target": [
|
||||
"AppImage",
|
||||
"deb",
|
||||
"tar.gz"
|
||||
],
|
||||
"category": "audio",
|
||||
"icon": "build/iconset",
|
||||
"maintainer": "exttex"
|
||||
"tar.xz"
|
||||
]
|
||||
},
|
||||
"appImage": {
|
||||
"desktop": {
|
||||
"X-AppImage-Name": "Freezer",
|
||||
"Name": "Freezer",
|
||||
"Type": "Application",
|
||||
"Categories": "AudioVideo"
|
||||
"X-AppImage-Name": "Freezer"
|
||||
}
|
||||
},
|
||||
"deb": {
|
||||
"packageCategory": "sound",
|
||||
"priority": "optional",
|
||||
"depends": [
|
||||
"libssl-dev",
|
||||
"gconf2",
|
||||
"gconf-service",
|
||||
"libflac8",
|
||||
"libnotify4",
|
||||
"libappindicator1",
|
||||
"libxtst6",
|
||||
"libnss3"
|
||||
"libnss3",
|
||||
"libssl1.1 | libssl1.0.0",
|
||||
"libxtst6"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|