From 29de5350afd1a5b2aea93f46d6092a1cbc81eb46 Mon Sep 17 00:00:00 2001 From: Mefsaal Date: Mon, 25 Apr 2022 19:33:36 -0300 Subject: [PATCH 01/58] Update es_ES translation to last json file --- src/i18n/es_ES.json | 50 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/src/i18n/es_ES.json b/src/i18n/es_ES.json index 1a6cadb7..481dd72c 100644 --- a/src/i18n/es_ES.json +++ b/src/i18n/es_ES.json @@ -10,6 +10,7 @@ "notification.updatingLibrarySongs": "Actualizando Canciones de la Biblioteca...", "notification.updatingLibraryAlbums": "Actualizando Álbumes de la Biblioteca...", "notification.updatingLibraryArtists": "Actualizando Artistas de la Biblioteca...", + "term.variables": "Variables", "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -258,6 +259,7 @@ "action.cast.scan": "Escanear", "action.cast.scanning": "Escaneando...", "action.createNew": "Crear Nuevo...", + "action.openArtworkInBrowser": "Abrir Ilustración en el navegador", "settings.header.general": "General", "settings.header.general.description": "Ajuste la configuración general de Cider.", "settings.option.general.language": "Idioma", @@ -277,6 +279,19 @@ "settings.option.general.updateCider.branch.develop": "Desarrollo", "settings.option.general.customizeSidebar": "Personalizar elementos de la barra lateral", "settings.option.general.customizeSidebar.customize": "Personalizar", + "settings.option.general.keybindings": "Combinaciones de Teclas", + "settings.option.general.keybindings.open": "Abrir", + "settings.description.search": "Buscar", + "settings.description.albums": "Álbumes de la biblioteca", + "settings.description.artists": "Artistas de la biblioteca", + "settings.description.browse": "Navegar", + "settings.description.private": "Cambiar a Sesión Privada", + "settings.description.remote": "Web Remoto", + "settings.description.audio": "Configuraciones de Audio", + "settings.description.plugins": "Menú de Plugins", + "settings.description.cast": "Transmitir a los dispositivos", + "settings.description.settings": "Configuraciones", + "settings.description.developer": "Herramientas para Desarrolladores", "settings.notyf.updateCider.update-not-available": "No hay actualizaciones disponibles", "settings.notyf.updateCider.update-downloaded": "La actualización se ha descargado, reinicie para aplicarla", "settings.notyf.updateCider.update-error": "Error al actualizar Cider", @@ -285,6 +300,9 @@ "settings.header.audio.description": "Ajuste la configuración de audio para Cider.", "settings.option.audio.volumeStep": "Paso de Volumen", "settings.option.audio.maxVolume": "Volumen Máximo", + "settings.option.audio.changePlaybackRate": "Cambiar la Velocidad de Reproducción", + "settings.option.audio.playbackRate": "Velocidad de Reproducción", + "settings.option.audio.playbackRate.change": "Cambiar", "settings.option.audio.quality": "Calidad de Audio", "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", "settings.header.audio.quality.hireslossless.description": "arriba de 24-bit/192 kHz", @@ -300,6 +318,7 @@ "settings.warn.audio.enableAdvancedFunctionality.lowcores": "Cider cree que su PC no puede manejar estas funciones. ¿Estás seguro de que quieres continuar?", "settings.option.audio.audioLab": "Cider Audio Lab", "settings.option.audio.audioLab.description": "Una variedad de efectos de audio desarrollados internamente para Cider.", + "settings.option.audio.audioLab.subheader": "Designed by Cider Acoustic Technologies in California", "settings.warn.audioLab.withoutAF": "Se requiere AudioContext (funcionalidad avanzada) para habilitar Laboratorio de audio de Cider.", "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Calidez analógica", "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simula la calidez analógica inspirada en el Korg Nutube 6P1", @@ -307,6 +326,13 @@ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Cambia la intensidad del procesamiento del módulo de Calidez analógica", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Suave", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Calido", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider Atmosphere Realizer™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Realiza una Atmósfera musical diferente modelada a partir de las configuraciones de audio de última generación.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ Modo", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Cambia el modo de funcionamiento del módulo Atmosphere Realizer.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "Natural (Estándar)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "Natural (Alto)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "Natural (Plus)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Mejora la calidad de audio percibida del audio AAC de 256 kbps mediante el uso de un algoritmo en tiempo real que aprovecha los modelos psicoacústicos de la audición humana y las características de codificación AAC.", "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP no es compatible con la espacialización. Desactive la espacialización para continuar.", @@ -348,14 +374,16 @@ "settings.option.visual.hardwareAcceleration.description": "Requiere reinicio", "settings.header.visual.hardwareAcceleration.default": "Por defecto", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.option.visual.uiscale": "Escalado de IU", "settings.header.visual.theme": "Tema", "settings.option.visual.theme.github.download": "Instalar desde la URL de GitHub", - "settings.option.visual.theme.github.explore": "Explorar temas de GitHub", + "settings.option.visual.theme.github.openfolder": "Abrir Carpeta de Temas", + "settings.option.visual.theme.github.explore": "Explorar Temas de GitHub", "settings.header.visual.theme.github.page": "Temas de GitHub", "settings.option.visual.theme.github.install.confirm": "¿Está seguro de que desea instalar {{ repo }}?", - "settings.prompt.visual.theme.github.URL": "Ingrese la URL del tema que desea instalar", - "settings.notyf.visual.theme.install.success": "Tema instalado correctamente", - "settings.notyf.visual.theme.install.error": "La instalación del tema falló", + "settings.prompt.visual.theme.github.URL": "Introduce la URL del tema que quieres instalar", + "settings.notyf.visual.theme.install.success": "Tema Instalado Correctamente", + "settings.notyf.visual.theme.install.error": "La Instalación del Tema Falló", "settings.header.visual.plugin": "Plugin", "settings.option.visual.plugin.github.download": "Instalar desde la URL de GitHub", "settings.option.visual.plugin.github.explore": "Explorar Plugins de GitHub", @@ -364,7 +392,7 @@ "settings.prompt.visual.plugin.github.URL": "Ingrese la URL del tema que desea instalar", "settings.prompt.visual.plugin.github.success": "El Plugin instalado correctamente, Presione OK para reiniciar Cider", "settings.notyf.visual.plugin.install.success": "El Plugin instalado correctamente", - "settings.notyf.visual.plugin.install.error": "La instalación del Plugin falló", + "settings.notyf.visual.plugin.install.error": "La instalación del Plugin Falló", "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "Oscuro", "settings.option.visual.showPersonalInfo": "Mostrar información personal", @@ -373,7 +401,7 @@ "settings.option.window.openOnStartup": "Abrir Cider al Iniciar", "settings.option.window.openOnStartup.hidden": "Abrir oculto", "settings.option.window.useNativeTitleBar": "Usar barra de título nativa", - "settings.option.window.windowControlStyle": "Estilo de control de ventanaEstilo de control de ventana", + "settings.option.window.windowControlStyle": "Estilo de control de ventana", "settings.option.window.windowControlStyle.right": "Derecha", "settings.option.window.windowControlStyle.left": "Izquierda", "settings.header.lyrics": "Letras", @@ -384,12 +412,13 @@ "settings.option.lyrics.enableYoutubeLyrics": "Habilitar letras de YouTube para videos musicales", "settings.header.connectivity": "Conectividad", "settings.header.connectivity.description": "Ajuste la configuración de conectividad para Cider.", + "settings.option.connectivity.playbackNotifications": "Notificaciones de Reproducción", "settings.option.connectivity.discordRPC": "Discord Rich Presence", - "settings.option.connectivity.playbackNotifications": "Notificaciones de reproducción", - "settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Borrar Discord Rich Presence en Pausa", + "settings.option.connectivity.discordRPC.clientName": "Nombre del Cliente", + "settings.option.connectivity.discordRPC.clearOnPause": "Borrar Discord Rich Presence en pausa", "settings.option.connectivity.discordRPC.hideButtons": "Ocultar botones en Discord Rich Presence", + "settings.option.connectivity.discordRPC.detailsFormat": "Formato de los detalles", + "settings.option.connectivity.discordRPC.stateFormat": "Formato de Estado", "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Retraso de Scrobble (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activar Last.fm Now Playing", @@ -412,6 +441,7 @@ "settings.option.visual.transparent": "Marco transparente", "settings.option.visual.transparent.description": "Marco transparente (necesita compatibilidad con temas, requiere reiniciar)", "settings.header.advanced": "Avanzado", + "settings.header.connect": "Conectar", "spatial.notTurnedOn": "La espacialización de audio está deshabilitada. Para usar, habilítelo primero.", "spatial.spatialProperties": "Propiedades de Espacialización", "spatial.width": "Ancho", From 07e084cfbcb394ec83e8a3588b76c6c1d5e9c55f Mon Sep 17 00:00:00 2001 From: Mefsaal Date: Mon, 25 Apr 2022 22:23:18 -0300 Subject: [PATCH 02/58] little corrections --- src/i18n/es_ES.json | 64 ++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/src/i18n/es_ES.json b/src/i18n/es_ES.json index 481dd72c..e10bab53 100644 --- a/src/i18n/es_ES.json +++ b/src/i18n/es_ES.json @@ -27,7 +27,7 @@ "term.disablePrivateSession": "Deshabilitar Sesión Privada", "term.queue": "Cola", "term.lyrics": "Letras", - "term.miniplayer": "Mini Reproductor", + "term.miniplayer": "Mini-Reproductor", "term.history": "Historial", "term.search": "Buscar", "term.library": "Biblioteca", @@ -131,7 +131,7 @@ "term.socialTeam": "Equipo Social", "term.socials": "Redes Sociales", "term.contributors": "Contribuidores", - "term.equalizer": "Equalizador", + "term.equalizer": "Ecualizador", "term.reset": "Reiniciar", "term.tracks": "Pistas", "term.track": { @@ -142,15 +142,15 @@ "term.menu": "Menú", "term.check": "Comprobar", "term.aboutArtist": "Acerca de {{artistName}}", - "term.topResult": "Mejor resultado", + "term.topResult": "Mejor Resultado", "term.sharedPlaylists": "Listas de Reproducción Compartidas", "term.people": "Personas", - "term.newpreset.name": "Nuevo nombre de preestablecido de ecualizador", - "term.addedpreset": "Preajuste Agregado", - "term.deletepreset.warn": "¿Estas seguro de que quieres eliminar este Preajuste?", - "term.deletedpreset": "Preajuste Eliminado", - "term.defaultPresets": "Preajustes Predeterminados", - "term.userPresets": "Preajustes de Usuario", + "term.newpreset.name": "Nuevo nombre de Preset de Ecualizador", + "term.addedpreset": "Preset Agregado", + "term.deletepreset.warn": "¿Estas seguro de que quieres eliminar este Preset?", + "term.deletedpreset": "Preset Eliminado", + "term.defaultPresets": "Preset Predeterminados", + "term.userPresets": "Preset de Usuario", "term.requestError": "Hubo un problema con la solicitud.", "term.song.link.generate": "Obtener URL de la Canción compartida...", "term.musicVideos": "Videos Musicales", @@ -158,14 +158,14 @@ "term.curators": "Curadores", "term.appleCurators": "Curadores de Apple", "term.radioShows": "Programas de Radio", - "term.recordLabels": "Etiquetas discográficas", + "term.recordLabels": "Etiquetas Discográficas", "term.videoExtras": "Extras de Video", "term.top": "Top", - "term.version": "Version", - "term.noVideos": "No hay videos disponibles.", + "term.version": "Versión", + "term.noVideos": "No hay Videos Disponibles.", "term.plugin": "Plug-in", - "term.pluginMenu": "Plug-in Menu", - "term.pluginMenu.none": "Sin plugins interactivos", + "term.pluginMenu": "Plug-in Menú", + "term.pluginMenu.none": "Sin Plugins Interactivos", "term.replay": "Repetir", "term.uniqueAlbums": "Álbumes Únicos", "term.uniqueArtists": "Artistas Únicos", @@ -182,12 +182,12 @@ "home.title": "Principal", "home.recentlyPlayed": "Escuchado Recientemente", "home.recentlyAdded": "Agregado Recientemente", - "home.artistsFeed": "Tu feed de artistas", - "home.artistsFeed.noArtist": "Sigue a algunos artistas para ver sus últimos lanzamientos", - "home.madeForYou": "Hecho para ti", - "home.friendsListeningTo": "Amigos escuchando", - "home.followedArtists": "Artistas seguidos", - "error.appleMusicSubRequired": "Apple Music requiere una suscripción.", + "home.artistsFeed": "Tu Feed de artistas", + "home.artistsFeed.noArtist": "Sigue a algunos Artistas para ver sus últimos Lanzamientos", + "home.madeForYou": "Hecho para Ti", + "home.friendsListeningTo": "Amigos Escuchando", + "home.followedArtists": "Artistas Seguidos", + "error.appleMusicSubRequired": "Apple Music Requiere una Suscripción.", "error.connectionError": "Hubo un problema al conectarse a Apple Music.", "error.noResults": "No hay Resultados.", "error.noResults.description": "Prueba una Nueva Búsqueda", @@ -240,14 +240,14 @@ "action.removeTracks": "Eliminar ${self.selectedItems.length} pistas de la cola", "action.import": "Importar", "action.export": "Exportar", - "action.showAlbum": "Mostrar Album Completo", + "action.showAlbum": "Mostrar Álbum Completo", "action.tray.minimize": "Minimizar a la bandeja", "action.tray.quit": "Salir", "action.tray.show": "Mostrar Cider", "action.update": "Actualizar", "action.install": "Instalar", "action.copy": "Copiar", - "action.newpreset": "Nuevo preset...", + "action.newpreset": "Nuevo Preset...", "action.deletepreset": "Borrar Preset", "action.open": "Abrir", "action.relaunch.confirm": "¿Quieres reiniciar Cider?", @@ -289,15 +289,15 @@ "settings.description.remote": "Web Remoto", "settings.description.audio": "Configuraciones de Audio", "settings.description.plugins": "Menú de Plugins", - "settings.description.cast": "Transmitir a los dispositivos", + "settings.description.cast": "Transmitir a los Dispositivos", "settings.description.settings": "Configuraciones", "settings.description.developer": "Herramientas para Desarrolladores", "settings.notyf.updateCider.update-not-available": "No hay actualizaciones disponibles", - "settings.notyf.updateCider.update-downloaded": "La actualización se ha descargado, reinicie para aplicarla", + "settings.notyf.updateCider.update-downloaded": "La actualización se ha descargado, Reinicie para aplicarla", "settings.notyf.updateCider.update-error": "Error al actualizar Cider", "settings.notyf.updateCider.update-timeout": "Tiempo de espera agotado para actualizar Cider", "settings.header.audio": "Audio", - "settings.header.audio.description": "Ajuste la configuración de audio para Cider.", + "settings.header.audio.description": "Ajuste la Configuración de Audio para Cider.", "settings.option.audio.volumeStep": "Paso de Volumen", "settings.option.audio.maxVolume": "Volumen Máximo", "settings.option.audio.changePlaybackRate": "Cambiar la Velocidad de Reproducción", @@ -328,14 +328,14 @@ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Calido", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider Atmosphere Realizer™️", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Realiza una Atmósfera musical diferente modelada a partir de las configuraciones de audio de última generación.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ Modo", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ Mode", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Cambia el modo de funcionamiento del módulo Atmosphere Realizer.", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "Natural (Estándar)", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "Natural (Alto)", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "Natural (Plus)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Mejora la calidad de audio percibida del audio AAC de 256 kbps mediante el uso de un algoritmo en tiempo real que aprovecha los modelos psicoacústicos de la audición humana y las características de codificación AAC.", - "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP no es compatible con la espacialización. Desactive la espacialización para continuar.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP no es compatible con la Espacialización. Desactive la Espacialización para continuar.", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Intensidad de CAP", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Cambia la intensidad del procesamiento realizado en el audio. (Agresivo puede producir resultados no deseados)", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Estándar", @@ -344,18 +344,18 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza el volumen máximo de pistas individuales para crear una experiencia auditiva más uniforme. (No funciona en las pistas cargadas por el usuario)", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Gestionado por AudioLab", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Espacialización de audio", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialice el audio y haga que el audio sea más tridimensional (Nota: esto NO es Dolby Atmos)", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacializa el Audio y haga que el Sonido sea más tridimensional (Nota: esto NO es Dolby Atmos)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Espacialización Sintonizada de Cider", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efecto de preajuste de espacialización, deshabilita la configuración personalizable de la espacialización de audio. La espacialización debe estar habilitada como requisito previo.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Perfil de espacialización de Cider", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Cambia el Perfil de Ajuste de Espacialización.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Estándar", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiófilo", - "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "La espacialización no es compatible con CAP. Deshabilite CAP para continuar.", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "La Espacialización no es compatible con CAP. Deshabilite CAP para continuar.", "settings.header.visual": "Visual", "settings.header.visual.description": "Ajuste la configuración visual de Cider.", - "settings.option.visual.windowStyle": "Estilo de ventana", - "settings.option.visual.windowBackgroundStyle": "Estilo de fondo de ventana", + "settings.option.visual.windowStyle": "Estilo de Ventana", + "settings.option.visual.windowBackgroundStyle": "Estilo de Fondo de Ventana", "settings.header.visual.windowBackgroundStyle.none": "Ninguno", "settings.header.visual.windowBackgroundStyle.artwork": "ilustración", "settings.header.visual.windowBackgroundStyle.image": "Imagen", @@ -433,7 +433,7 @@ "settings.option.experimental.reinstallwidevine.confirm": "¿Estás seguro de que quieres reinstalar Widevine?", "settings.option.experimental.unknownPlugin": "Fuentes desconocidas", "settings.option.experimental.unknownPlugin.description": "Permitir la instalación de Plugins desde otros repos que no sean el repositorio de Plugins de Cider", - "settings.option.experimental.compactUI": "UI compacta", + "settings.option.experimental.compactUI": "UI Compacto", "settings.option.window.close_button_hide": "El botón Cerrar oculta la aplicación", "settings.option.experimental.inline_playlists": "Álbumes y listas de reproducción en línea", "settings.option.advanced.playlistTrackMapping": "Mapeo de pistas de listas de reproducción", From 57741ac2d99601def1a99c6857426c079e4d09b5 Mon Sep 17 00:00:00 2001 From: yazninja Date: Tue, 26 Apr 2022 09:37:52 +0800 Subject: [PATCH 03/58] bring back https://github.com/ciderapp/Cider/commit/065614d668c3f25337a01b5f02675f17a405c02e --- src/ciderkit/public.js | 26 ++++++++++++++++++++++++++ src/i18n/zh_TW.json | 8 +++++--- src/main/base/wsapi.ts | 4 ++++ src/renderer/main/wsapi_interop.js | 8 ++++++++ 4 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 src/ciderkit/public.js diff --git a/src/ciderkit/public.js b/src/ciderkit/public.js new file mode 100644 index 00000000..d3c26637 --- /dev/null +++ b/src/ciderkit/public.js @@ -0,0 +1,26 @@ +const CiderKit = { + v1: { + musickit: { + async mkv3(route, body, options) { + let opts = { + method: 'POST', + cache: 'no-cache', + credentials: 'same-origin', + headers: { + 'Content-Type': 'application/json' + }, + redirect: 'follow', + referrerPolicy: 'no-referrer', + body: {} + } + opts.body = JSON.stringify({ + route: route, + body: body, + options: options + }) + let response = await fetch("http://localhost:9000/api/musickit/v3", opts); + return response.json() + } + } + } +} \ No newline at end of file diff --git a/src/i18n/zh_TW.json b/src/i18n/zh_TW.json index 5dd4bbd2..8d44cef4 100644 --- a/src/i18n/zh_TW.json +++ b/src/i18n/zh_TW.json @@ -328,10 +328,9 @@ "settings.option.lyrics.enableYoutubeLyrics": "播放 MV 時,使用 YouTube 歌詞", "settings.header.connectivity": "外部連接", "settings.header.connectivity.description": "調整 Cider 與外部的連接", - "settings.option.connectivity.discordRPC": "Discord 動態", "settings.option.connectivity.playbackNotifications": "歌曲播放通知", - "settings.header.connectivity.discordRPC.cider": "顯示正在使用 Cider", - "settings.header.connectivity.discordRPC.appleMusic": "顯示正在使用 Apple Music", + "settings.option.connectivity.discordRPC": "Discord 動態", + "settings.option.connectivity.discordRPC.clientName": "應用程式名稱", "settings.option.connectivity.discordRPC.clearOnPause": "暫停時清除 Discord 動態", "settings.option.connectivity.discordRPC.hideButtons": "隱藏 Discord 動態上的按鈕", "settings.option.connectivity.lastfmScrobble": "Last.FM Scrobbling 記錄", @@ -357,6 +356,9 @@ "settings.option.visual.transparent": "透明視窗框架", "settings.option.visual.transparent.description": "需主題有支援透明框架,且須重新啟動才會套用。", "settings.header.advanced": "進階", + "settings.header.connect": "同步", + "settings.option.connect.link_account": "開啟與 Cider Connect 同步", + "settings.option.connect.link_account.description": "將您的 Discord 帳戶與 Cider Connect 連接後,你可以儲存使用者資料,包括設定、等化器,並最終在完成後儲存更多資料。(正在進行中)", "spatial.notTurnedOn": "空間音訊目前是關閉狀態,請先開啟再使用。", "spatial.spatialProperties": "空間音訊屬性設定", "spatial.width": "寬度", diff --git a/src/main/base/wsapi.ts b/src/main/base/wsapi.ts index bb48d86a..a10fd529 100644 --- a/src/main/base/wsapi.ts +++ b/src/main/base/wsapi.ts @@ -157,6 +157,10 @@ export class wsapi { this._win.webContents.executeJavaScript(`MusicKit.getInstance().pause()`); response.message = "Paused"; break; + case "playpause": + this._win.webContents.executeJavaScript(`MusicKitInterop.playPause()`); + response.message = "Play/Pause"; + break case "play": this._win.webContents.executeJavaScript(`MusicKit.getInstance().play()`); response.message = "Playing"; diff --git a/src/renderer/main/wsapi_interop.js b/src/renderer/main/wsapi_interop.js index 563b2e30..d9477a23 100644 --- a/src/renderer/main/wsapi_interop.js +++ b/src/renderer/main/wsapi_interop.js @@ -1,6 +1,14 @@ const wsapi = { cache: {playParams: {id: 0}, status: null, remainingTime: 0}, playbackCache: {status: null, time: Date.now()}, + async v3(encoded = "") { + let decoded = atob(encoded); + let json = JSON.parse(decoded); + console.log(json) + let response = await (await MusicKit.getInstance().api.v3.music(json.route, json.body, json.options)) + let ret = response.data + return JSON.stringify(ret) + }, search(term, limit) { MusicKit.getInstance().api.search(term, {limit: limit, types: 'songs,artists,albums,playlists'}).then((results)=>{ ipcRenderer.send('wsapi-returnSearch', JSON.stringify(results)) From 52d52c5d3f202ed2a7255c2bd4a2f7f0da9accc8 Mon Sep 17 00:00:00 2001 From: cryptofyre Date: Mon, 25 Apr 2022 21:31:44 -0500 Subject: [PATCH 04/58] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4b2b54da..34d1257f 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "cider", "applicationId": "Cider", "productName": "Cider", - "version": "1.4.4", + "version": "1.4.5", "description": "A new cross-platform Apple Music experience based on Electron and Vue.js written from scratch with performance in mind.", "license": "AGPL-3.0", "main": "./build/index.js", From c32d781521674fa57bbe3a3bafae002d7cc1bdf9 Mon Sep 17 00:00:00 2001 From: Amaru8 <52407090+Amaru8@users.noreply.github.com> Date: Tue, 26 Apr 2022 07:45:50 +0200 Subject: [PATCH 05/58] Copy new Sync strings to source from en_US --- src/i18n/source/en_US.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json index cb7cb1da..56cb0c9b 100644 --- a/src/i18n/source/en_US.json +++ b/src/i18n/source/en_US.json @@ -441,7 +441,9 @@ "settings.option.visual.transparent": "Transparent frame", "settings.option.visual.transparent.description": "(needs Theme Support, requires relaunch)", "settings.header.advanced": "Advanced", - "settings.header.connect": "Connect", + "settings.header.connect": "Sync", + "settings.option.connect.link_account": "Enable Sync with Cider Connect", + "settings.option.connect.link_account.description": "Linking your Discord account with Cider Connect allows you to store userdata including Settings, EQ's, and eventually more once finished. (Work In Progress)", "spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.", "spatial.spatialProperties": "Spatial Properties", "spatial.width": "Width", From f5f4ef0f9a2bfcd2c30bab83b25bdb2af89f7002 Mon Sep 17 00:00:00 2001 From: Amaru8 <52407090+Amaru8@users.noreply.github.com> Date: Tue, 26 Apr 2022 10:48:05 +0200 Subject: [PATCH 06/58] Add keybind strings to hu_HU --- src/i18n/hu_HU.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/i18n/hu_HU.json b/src/i18n/hu_HU.json index 89db1fe3..9c23f1e1 100644 --- a/src/i18n/hu_HU.json +++ b/src/i18n/hu_HU.json @@ -281,6 +281,17 @@ "settings.option.general.customizeSidebar.customize": "Testreszabás", "settings.option.general.keybindings": "Billentyűparancsok", "settings.option.general.keybindings.open": "Megnyitás", + "settings.description.search": "Keresés", + "settings.description.albums": "Albumkönyvtár", + "settings.description.artists": "Előadókönyvtár", + "settings.description.browse": "Böngészés", + "settings.description.private": "Privát hallgatás ki/be", + "settings.description.remote": "Távirányító", + "settings.description.audio": "Hangbeállítások", + "settings.description.plugins": "Plugin Menü", + "settings.description.cast": "Tükrözés", + "settings.description.settings": "Beállítások", + "settings.description.developer": "Fejlesztői eszközök", "settings.notyf.updateCider.update-not-available": "Nem található frissítés", "settings.notyf.updateCider.update-downloaded": "A frissítés le lett töltve, a telepítéshez indítsa újra az alkalmazást", "settings.notyf.updateCider.update-error": "Hiba történt a frissítés közben", From 41ca3cf8f698dfe419c2584c8b8e76eb61a06758 Mon Sep 17 00:00:00 2001 From: Monochromish Date: Tue, 26 Apr 2022 18:48:10 +1000 Subject: [PATCH 07/58] Added update keybind feature. --- src/i18n/en_US.json | 2 + src/i18n/source/en_US.json | 2 + src/main/base/store.ts | 47 +++ src/main/plugins/menubar.ts | 406 ++++++++++++++------------ src/renderer/main/events.js | 22 -- src/renderer/views/pages/settings.ejs | 155 +++++++--- 6 files changed, 388 insertions(+), 246 deletions(-) diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index 56cb0c9b..9b9a5608 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -280,6 +280,8 @@ "settings.option.general.customizeSidebar": "Customize Sidebar Items", "settings.option.general.customizeSidebar.customize": "Customize", "settings.option.general.keybindings": "Keybindings", + "settings.notyf.general.keybindings.update.success": "Keybind updated successfully", + "settings.prompt.general.keybindings.update.success": "Keybind updated successfully. Press OK to relaunch Cider", "settings.option.general.keybindings.open": "Open", "settings.description.search": "Search", "settings.description.albums": "Library Albums", diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json index cb7cb1da..3851499a 100644 --- a/src/i18n/source/en_US.json +++ b/src/i18n/source/en_US.json @@ -280,6 +280,8 @@ "settings.option.general.customizeSidebar": "Customize Sidebar Items", "settings.option.general.customizeSidebar.customize": "Customize", "settings.option.general.keybindings": "Keybindings", + "settings.notyf.general.keybindings.update.success": "Keybind updated successfully", + "settings.prompt.general.keybindings.update.success": "Keybind updated successfully. Press OK to relaunch Cider", "settings.option.general.keybindings.open": "Open", "settings.description.search": "Search", "settings.description.albums": "Library Albums", diff --git a/src/main/base/store.ts b/src/main/base/store.ts index fe9cd36e..f71f0798 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -44,6 +44,53 @@ export class Store { "onStartup": { "enabled": false, "hidden": false, + }, + "keybind": { + "search": [ + process.platform == "darwin" ? "Command" : "Control", + "S" + ], + "albums": [ + process.platform == "darwin" ? "Command" : "Control", + "F" + ], + "artists": [ + process.platform == "darwin" ? "Command" : "Control", + "D" + ], + "browse": [ + process.platform == "darwin" ? "Command" : "Control", + "B" + ], + "togglePrivateSession": [ + process.platform == "darwin" ? "Command" : "Control", + "P" + ], + "webRemote": [ + process.platform == "darwin" ? "Command" : "Control", + "W" + ], + "audioSettings": [ + process.platform == "darwin" ? "Option" : "Shift", + "A" + ], + "pluginMenu": [ + process.platform == "darwin" ? "Option" : "Shift", + "P" + ], + "castToDevices": [ + process.platform == "darwin" ? "Option" : "Shift", + "C" + ], + "settings": [ + process.platform == "darwin" ? "Option" : "Shift", + "S" + ], + "openDeveloperTools": [ + process.platform == "darwin" ? "Command" : "Control", + process.platform == "darwin" ? "Option" : "Shift", + "I" + ] } }, "home": { diff --git a/src/main/plugins/menubar.ts b/src/main/plugins/menubar.ts index 04236d5a..38ac4886 100644 --- a/src/main/plugins/menubar.ts +++ b/src/main/plugins/menubar.ts @@ -35,196 +35,7 @@ export default class Thumbar { * @private */ private isMac: boolean = process.platform === 'darwin'; - private _menuTemplate: any = [ - { - label: app.getName(), - submenu: [ - { - label: 'About', - click: () => this._win.webContents.executeJavaScript(`app.appRoute('about')`) - }, - {type: 'separator'}, - { - label: 'Settings', - accelerator: 'CommandOrControl+,', - click: () => this._win.webContents.executeJavaScript(`app.appRoute('settings')`) - }, - {type: 'separator'}, - {role: 'services'}, - {type: 'separator'}, - {role: 'hide'}, - {role: 'hideOthers'}, - {role: 'unhide'}, - {type: 'separator'}, - {role: 'quit'} - ] - }, - { - label: 'View', - submenu: [ - {role: 'reload'}, - {role: 'forceReload'}, - {role: 'toggleDevTools'}, - {type: 'separator'}, - {role: 'resetZoom'}, - {role: 'zoomIn'}, - {role: 'zoomOut'}, - {type: 'separator'}, - {role: 'togglefullscreen'}, - ] - }, - { - label: 'Window', - submenu: [ - {role: 'minimize'}, - { - label: 'Show', - click: () => utils.getWindow().show() - }, - {role: 'zoom'}, - ...(this.isMac ? [ - {type: 'separator'}, - {role: 'front'}, - {role: 'close'}, - ] : [ - {role: 'close'}, - ]), - - { - label: 'Edit', - submenu: [ - {role: 'undo'}, - {role: 'redo'}, - {type: 'separator'}, - {role: 'cut'}, - {role: 'copy'}, - {role: 'paste'}, - ] - }, - {type: 'separator'}, - { - label: 'Toggle Private Session', - accelerator: 'CommandOrControl+P', - click: () => this._win.webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`) - }, - {type: 'separator'}, - { - label: 'Web Remote', - accelerator: 'CommandOrControl+Shift+W', - sublabel: 'Opens in external window', - click: () => this._win.webContents.executeJavaScript(`app.appRoute('remote-pair')`) - }, - { - label: 'Audio Settings', - accelerator: 'CommandOrControl+Shift+A', - click: () => this._win.webContents.executeJavaScript(`app.modals.audioSettings = true`) - }, - { - label: 'Plug-in Menu', - accelerator: 'CommandOrControl+Shift+P', - click: () => this._win.webContents.executeJavaScript(`app.modals.pluginMenu = true`) - } - - ] - }, - { - label: 'Controls', - submenu: [ - { - label: 'Pause / Play', - accelerator: 'Space', - click: () => this._win.webContents.executeJavaScript(`app.SpacePause()`) - }, - { - label: 'Next', - accelerator: 'CommandOrControl+Right', - click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.next()`) - }, - { - label: 'Previous', - accelerator: 'CommandOrControl+Left', - click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.previous()`) - }, - {type: 'separator'}, - { - label: 'Volume Up', - accelerator: 'CommandOrControl+Up', - click: () => this._win.webContents.executeJavaScript(`app.volumeUp()`) - }, - { - label: 'Volume Down', - accelerator: 'CommandOrControl+Down', - click: () => this._win.webContents.executeJavaScript(`app.volumeDown()`) - }, - {type: 'separator'}, - { - label: 'Cast To Devices', - accelerator: 'CommandOrControl+Shift+C', - click: () => this._win.webContents.executeJavaScript(`app.modals.castMenu = true`) - } - ] - }, - { - label: 'Account', - submenu: [ - { - label: 'Account Settings', - click: () => this._win.webContents.executeJavaScript(`app.appRoute('apple-account-settings')`) - }, - { - label: 'Sign Out', - click: () => this._win.webContents.executeJavaScript(`app.unauthorize()`) - } - ] - }, - { - label: 'Support', - role: 'help', - submenu: [ - { - label: 'Discord', - click: () => shell.openExternal("https://discord.gg/AppleMusic").catch(console.error) - }, - { - label: 'GitHub Wiki', - click: () => shell.openExternal("https://github.com/ciderapp/Cider/wiki/Troubleshooting").catch(console.error) - }, - {type: 'separator'}, - { - label: 'Report a...', - submenu: [ - { - label: 'Bug', - click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=bug%2Ctriage&template=bug_report.yaml&title=%5BBug%5D%3A+").catch(console.error) - }, - { - label: 'Feature Request', - click: () => shell.openExternal("https://github.com/ciderapp/Cider/discussions/new?category=feature-request").catch(console.error) - }, - { - label: 'Translation Report/Request', - click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=%F0%9F%8C%90+Translations&template=translation.yaml&title=%5BTranslation%5D%3A+").catch(console.error) - }, - ] - }, - {type: 'separator'}, - { - label: 'View License', - click: () => shell.openExternal("https://github.com/ciderapp/Cider/blob/main/LICENSE").catch(console.error) - }, - {type: 'separator'}, - { - label: 'Toggle Developer Tools', - accelerator: 'Option+CommandOrControl+Shift+I', - click: () => this._win.webContents.openDevTools() - }, - { - label: 'Open Configuration File in Editor', - click: () => this._store.openInEditor() - } - ] - } - ] + private _menuTemplate: any; /******************************************************************************************* * Public Methods @@ -233,9 +44,222 @@ export default class Thumbar { /** * Runs on plugin load (Currently run on application start) */ - constructor(utils: { getApp: () => any; getStore: () => any; }) { + constructor(utils: { getApp: () => any; getStore: () => any; getWindow: () => any; }) { this._app = utils.getApp(); this._store = utils.getStore(); + + this._menuTemplate = [ + { + label: app.getName(), + submenu: [ + { + label: 'About', + click: () => this._win.webContents.executeJavaScript(`app.appRoute('about')`) + }, + {type: 'separator'}, + { + label: 'Settings', + accelerator: this._store.general.keybind.settings.join('+'), + click: () => this._win.webContents.executeJavaScript(`app.appRoute('settings')`) + }, + {type: 'separator'}, + {role: 'services'}, + {type: 'separator'}, + {role: 'hide'}, + {role: 'hideOthers'}, + {role: 'unhide'}, + {type: 'separator'}, + {role: 'quit'} + ] + }, + { + label: 'View', + submenu: [ + {role: 'reload'}, + {role: 'forceReload'}, + {role: 'toggleDevTools'}, + {type: 'separator'}, + {role: 'resetZoom'}, + {role: 'zoomIn'}, + {role: 'zoomOut'}, + {type: 'separator'}, + {role: 'togglefullscreen'}, + ] + }, + { + label: 'Window', + submenu: [ + {role: 'minimize'}, + { + label: 'Show', + click: () => utils.getWindow().show() + }, + {role: 'zoom'}, + ...(this.isMac ? [ + {type: 'separator'}, + {role: 'front'}, + {role: 'close'}, + ] : [ + {role: 'close'}, + ]), + + { + label: 'Edit', + submenu: [ + {role: 'undo'}, + {role: 'redo'}, + {type: 'separator'}, + {role: 'cut'}, + {role: 'copy'}, + {role: 'paste'}, + ] + }, + {type: 'separator'}, + { + label: 'Toggle Private Session', + accelerator: this._store.general.keybind.togglePrivateSession.join('+'), + click: () => this._win.webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`) + }, + {type: 'separator'}, + { + label: 'Web Remote', + accelerator: this._store.general.keybind.webRemote.join('+'), + sublabel: 'Opens in external window', + click: () => this._win.webContents.executeJavaScript(`app.appRoute('remote-pair')`) + }, + { + label: 'Audio Settings', + accelerator: this._store.general.keybind.audioSettings.join('+'), + click: () => this._win.webContents.executeJavaScript(`app.modals.audioSettings = true`) + }, + { + label: 'Plug-in Menu', + accelerator: this._store.general.keybind.pluginMenu.join('+'), + click: () => this._win.webContents.executeJavaScript(`app.modals.pluginMenu = true`) + } + ] + }, + { + label: 'Controls', + submenu: [ + { + label: 'Pause / Play', + accelerator: 'Space', + click: () => this._win.webContents.executeJavaScript(`app.SpacePause()`) + }, + { + label: 'Next', + accelerator: 'CommandOrControl+Right', + click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.next()`) + }, + { + label: 'Previous', + accelerator: 'CommandOrControl+Left', + click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.previous()`) + }, + {type: 'separator'}, + { + label: 'Volume Up', + accelerator: 'CommandOrControl+Up', + click: () => this._win.webContents.executeJavaScript(`app.volumeUp()`) + }, + { + label: 'Volume Down', + accelerator: 'CommandOrControl+Down', + click: () => this._win.webContents.executeJavaScript(`app.volumeDown()`) + }, + { + label: 'Browse', + accelerator: this._store.general.keybind.browse.join('+'), + click: () => this._win.webContents.executeJavaScript(`app.appRoute('browse')`) + }, + {type: 'separator'}, + { + label: 'Artists', + accelerator: this._store.general.keybind.artists.join('+'), + click: () => this._win.webContents.executeJavaScript(`app.appRoute('library-artists')`) + }, + { + label: 'Search', + accelerator: this._store.general.keybind.search.join('+'), + click: () => this._win.webContents.executeJavaScript(`app.appRoute('search')`) + }, + {type: 'separator'}, + { + label: 'Album', + accelerator: this._store.general.keybind.albums.join('+'), + click: () => this._win.webContents.executeJavaScript(`app.appRoute('library-albums')`) + }, + {type: 'separator'}, + { + label: 'Cast To Devices', + accelerator: this._store.general.keybind.castToDevices.join('+'), + click: () => this._win.webContents.executeJavaScript(`app.modals.castMenu = true`) + } + ] + }, + { + label: 'Account', + submenu: [ + { + label: 'Account Settings', + click: () => this._win.webContents.executeJavaScript(`app.appRoute('apple-account-settings')`) + }, + { + label: 'Sign Out', + click: () => this._win.webContents.executeJavaScript(`app.unauthorize()`) + } + ] + }, + { + label: 'Support', + role: 'help', + submenu: [ + { + label: 'Discord', + click: () => shell.openExternal("https://discord.gg/AppleMusic").catch(console.error) + }, + { + label: 'GitHub Wiki', + click: () => shell.openExternal("https://github.com/ciderapp/Cider/wiki/Troubleshooting").catch(console.error) + }, + {type: 'separator'}, + { + label: 'Report a...', + submenu: [ + { + label: 'Bug', + click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=bug%2Ctriage&template=bug_report.yaml&title=%5BBug%5D%3A+").catch(console.error) + }, + { + label: 'Feature Request', + click: () => shell.openExternal("https://github.com/ciderapp/Cider/discussions/new?category=feature-request").catch(console.error) + }, + { + label: 'Translation Report/Request', + click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=%F0%9F%8C%90+Translations&template=translation.yaml&title=%5BTranslation%5D%3A+").catch(console.error) + }, + ] + }, + {type: 'separator'}, + { + label: 'View License', + click: () => shell.openExternal("https://github.com/ciderapp/Cider/blob/main/LICENSE").catch(console.error) + }, + {type: 'separator'}, + { + label: 'Toggle Developer Tools', + accelerator: this._store.general.keybind.openDeveloperTools.join('+'), + click: () => this._win.webContents.openDevTools() + }, + { + label: 'Open Configuration File in Editor', + click: () => this._store.openInEditor() + } + ] + } + ]; + console.debug(`[Plugin][${this.name}] Loading Complete.`); } diff --git a/src/renderer/main/events.js b/src/renderer/main/events.js index 00726985..0b2e13d3 100644 --- a/src/renderer/main/events.js +++ b/src/renderer/main/events.js @@ -18,12 +18,6 @@ const Events = { }); document.addEventListener('keydown', async function (event) { - // CTRL + F - if (event.keyCode === 70 && event.ctrlKey) { - app.appRoute('search') - app.$refs.searchInput.focus() - app.$refs.searchInput.select() - } // CTRL + R if (event.keyCode === 82 && event.ctrlKey) { event.preventDefault() @@ -38,22 +32,6 @@ const Events = { event.preventDefault() window.location.reload() } - // CTRL + S - if (event.keyCode === 83 && event.ctrlKey) { - app.appRoute("settings") - } - // CTRL + A - if (event.keyCode === 65 && event.ctrlKey) { - app.appRoute("library-albums") - } - // CTRL + B - if (event.keyCode === 66 && event.ctrlKey) { - app.appRoute("browse") - } - // CTRL + D - if (event.keyCode === 68 && event.ctrlKey) { - app.appRoute("library-artists") - } // CTRL + E if (event.keyCode === 69 && event.ctrlKey) { app.invokeDrawer('queue') diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 1830333b..81b29251 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -138,90 +138,115 @@
{{$root.getLz('settings.description.search')}}
-
-

{{ getCommandOrControl() }} + F

-
+
+ +
{{$root.getLz('settings.description.albums')}}
-
-

{{ getCommandOrControl() }} + A

-
+
+ +
{{$root.getLz('settings.description.artists')}}
-
-

{{ getCommandOrControl() }} + D

-
+
+ +
{{$root.getLz('settings.description.browse')}}
-
-

{{ getCommandOrControl() }} + B

-
+
+ +
{{$root.getLz('settings.description.private')}}
-
-

{{ getCommandOrControl() }} + P

+
+
{{$root.getLz('settings.description.remote')}}
-
-

{{ getCommandOrControl() }} + Shift + W

+
+
{{$root.getLz('settings.description.audio')}}
-
-

{{ getCommandOrControl() }} + Shift + A

+
+
{{$root.getLz('settings.description.plugins')}}
-
-

{{ getCommandOrControl() }} + Shift + P

+
+
{{$root.getLz('settings.description.cast')}}
-
-

{{ getCommandOrControl() }} + Shift + C

+
+
{{$root.getLz('settings.description.settings')}}
-
-

{{ getCommandOrControl() }} + S

-
+
+ +
{{$root.getLz('settings.description.developer')}}
-
-

{{ getCommandOrControl() }} + {{ getOptionOrShift() }} + I

+
+
+
@@ -1294,12 +1319,6 @@ } }, methods: { - getCommandOrControl() { - return app.platform == "darwin" ? "⌘" : "Ctrl"; - }, - getOptionOrShift() { - return app.platform == "darwin" ? "⌥" : "Shift"; - }, windowBgStyleChange() { this.$root.getNowPlayingArtworkBG(undefined, true) if (this.$root.cfg.visual.window_background_style == "mica") { @@ -1313,6 +1332,76 @@ } }) }, + keyBindUpdate: function (action) { + var blur = document.createElement('div'); + blur.className = 'blur'; + blur.style.backgroundColor = 'rgba(0,0,0,0.25)'; + blur.style.position = 'fixed'; + blur.style.top = '0'; + blur.style.left = '0'; + blur.style.width = '100%'; + blur.style.height = '100%'; + blur.style.zIndex = '9999'; + blur.style.display = 'flex'; + blur.style.alignItems = 'center'; + blur.style.justifyContent = 'center'; + blur.style.fontSize = '2em'; + blur.style.color = 'white'; + blur.innerHTML = 'Press a combination of two keys to update keybind. Press Escape key to go back.' + document.body.appendChild(blur); + + var keyBind = []; + var keyBindTimeout = setTimeout(function () { + keyBind = []; + document.body.removeChild(blur); + }, 30000); + var keyBindUpdate = function (e) { + if (document.body.contains(blur)) { + if (e.key == 'Escape') { + document.body.removeChild(blur); + clearTimeout(keyBindTimeout); + return; + } else { + if (e.keyCode >= 65 && e.keyCode <= 90 && e.keyCode <= 97 && e.keyCode <= 122) { + keyBind.push(e.key.toUpperCase()); + } else { + keyBind.push(e.key); + } + if (keyBind.length == 2) { + if (keyBind[0] != keyBind[1]) { + app.cfg.general.keybind[action] = keyBind + document.body.removeChild(blur); + clearTimeout(keyBindTimeout); + notyf.success(app.getLz('settings.notyf.general.keybindings.update.success')); + bootbox.confirm(app.getLz("settings.prompt.general.keybindings.update.success"), (ok)=>{ + if(ok) ipcRenderer.invoke("relaunchApp") + }) + } else { + keyBind = []; + } + } + } + } else return; + } + document.addEventListener('keydown', keyBindUpdate); + }, + keyBindReset: function () { + app.cfg.general.keybind.search = [app.platform == "darwin" ? "Command" : "Control","S"]; + app.cfg.general.keybind.albums = [app.platform == "darwin" ? "Command" : "Control","F"]; + app.cfg.general.keybind.artists = [app.platform == "darwin" ? "Command" : "Control","D"]; + app.cfg.general.keybind.browse = [app.platform == "darwin" ? "Command" : "Control","B"]; + app.cfg.general.keybind.togglePrivateSession = [app.platform == "darwin" ? "Command" : "Control","P"]; + app.cfg.general.keybind.webRemote = [app.platform == "darwin" ? "Command" : "Control","W"]; + app.cfg.general.keybind.audioSettings = [app.platform == "darwin" ? "Option" : "Shift","A"]; + app.cfg.general.keybind.pluginMenu = [app.platform == "darwin" ? "Option" : "Shift","P"]; + app.cfg.general.keybind.castToDevices = [app.platform == "darwin" ? "Option" : "Shift","C"]; + app.cfg.general.keybind.settings = [app.platform == "darwin" ? "Option" : "Shift","S"]; + app.cfg.general.keybind.openDeveloperTools = [app.platform == "darwin" ? "Command" : "Control",app.platform == "darwin" ? "Option" : "Shift","I"]; + notyf.success(app.getLz('settings.notyf.general.keybindings.update.success')); + bootbox.confirm(app.getLz("settings.prompt.general.keybindings.update.success"), (ok)=>{ + if(ok) ipcRenderer.invoke("relaunchApp") + }) + }, gitHubExplore() { app.appRoute("themes-github") }, From 54dad06e8830ba8bcb3bcc939659be40632e3df3 Mon Sep 17 00:00:00 2001 From: Amaru8 <52407090+Amaru8@users.noreply.github.com> Date: Tue, 26 Apr 2022 10:51:09 +0200 Subject: [PATCH 08/58] Fix typo in en_US and source --- src/i18n/en_US.json | 2 +- src/i18n/source/en_US.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index 56cb0c9b..d45fee70 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -285,7 +285,7 @@ "settings.description.albums": "Library Albums", "settings.description.artists": "Library Artists", "settings.description.browse": "Browse", - "settings.description.private": "Toogle Private Session", + "settings.description.private": "Toggle Private Session", "settings.description.remote": "Web Remote", "settings.description.audio": "Audio Settings", "settings.description.plugins": "Plugins Menu", diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json index 56cb0c9b..d45fee70 100644 --- a/src/i18n/source/en_US.json +++ b/src/i18n/source/en_US.json @@ -285,7 +285,7 @@ "settings.description.albums": "Library Albums", "settings.description.artists": "Library Artists", "settings.description.browse": "Browse", - "settings.description.private": "Toogle Private Session", + "settings.description.private": "Toggle Private Session", "settings.description.remote": "Web Remote", "settings.description.audio": "Audio Settings", "settings.description.plugins": "Plugins Menu", From 399ca6c9a592511cf26197aea0cb3e19a131fc3c Mon Sep 17 00:00:00 2001 From: UnbreakCode Date: Tue, 26 Apr 2022 14:02:39 +0200 Subject: [PATCH 09/58] added toggle for qq lyrics --- src/i18n/de_DE.json | 1 + src/i18n/en_US.json | 1 + src/i18n/source/en_US.json | 1 + src/renderer/main/vueapp.js | 1 + src/renderer/views/pages/settings.ejs | 8 ++++++++ 5 files changed, 12 insertions(+) diff --git a/src/i18n/de_DE.json b/src/i18n/de_DE.json index 28d148f1..8927b95d 100644 --- a/src/i18n/de_DE.json +++ b/src/i18n/de_DE.json @@ -276,6 +276,7 @@ "settings.option.lyrics.enableMusixmatchKaraoke": "Aktiviere Karaoke-Modus (nur mit Musixmatch)", "settings.option.lyrics.musixmatchPreferredLanguage": "Bevorzugte Sprache für Musixmatch-Übersetzung", "settings.option.lyrics.enableYoutubeLyrics": "Aktiviere YouTube-Liedtexte für Musikvideos", + "settings.option.lyrics.enableQQLyrics": "Aktiviere QQ Liedtexte", "settings.header.connectivity": "Konnektivität", "settings.header.connectivity.description": "Passe die Konnektivitäts-Einstellungen für Cider an.", "settings.option.connectivity.discordRPC": "Discord Rich Presence", diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index d45fee70..e3a8eb71 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -410,6 +410,7 @@ "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", + "settings.option.lyrics.enableQQLyrics": "Enable QQ Lyrics", "settings.header.connectivity": "Connectivity", "settings.header.connectivity.description": "Adjust the connectivity settings for Cider.", "settings.option.connectivity.playbackNotifications": "Playback Notifications", diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json index d45fee70..e3a8eb71 100644 --- a/src/i18n/source/en_US.json +++ b/src/i18n/source/en_US.json @@ -410,6 +410,7 @@ "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", + "settings.option.lyrics.enableQQLyrics": "Enable QQ Lyrics", "settings.header.connectivity": "Connectivity", "settings.header.connectivity.description": "Adjust the connectivity settings for Cider.", "settings.option.connectivity.playbackNotifications": "Playback Notifications", diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index 78937242..c6bfe12b 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -2952,6 +2952,7 @@ const app = new Vue({ } }, loadQQLyrics() { + if (!app.cfg.lyrics.enable_qq) return; const track = encodeURIComponent((this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.title ?? '' : ''); const artist = encodeURIComponent((this.mk.nowPlayingItem != null) ? this.mk.nowPlayingItem.artistName ?? '' : ''); const time = encodeURIComponent((this.mk.nowPlayingItem != null) ? (Math.round((this.mk.nowPlayingItem.attributes["durationInMillis"] ?? -1000) / 1000) ?? -1) : -1); diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 1830333b..83d821d5 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -802,6 +802,14 @@
+
+
+ {{$root.getLz('settings.option.lyrics.enableQQLyrics')}} +
+
+ +
+
From 98ac593b015c034048fe23d7face8e7a46e06613 Mon Sep 17 00:00:00 2001 From: Amaru8 <52407090+Amaru8@users.noreply.github.com> Date: Tue, 26 Apr 2022 14:05:36 +0000 Subject: [PATCH 10/58] Added QQLyrics cfg default to store.ts --- src/main/base/store.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/base/store.ts b/src/main/base/store.ts index fe9cd36e..e7a62278 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -142,6 +142,7 @@ export class Store { "enable_mxm": false, "mxm_karaoke": false, "mxm_language": "en", + "enable_qq": false, "enable_yt": false, }, "lastfm": { From 7d782c90ee48a8f149414ec2e9ef0e334ed334a6 Mon Sep 17 00:00:00 2001 From: cryptofyre Date: Tue, 26 Apr 2022 09:47:33 -0500 Subject: [PATCH 11/58] Add mstest build command --- msft-test.json | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 64 insertions(+) create mode 100644 msft-test.json diff --git a/msft-test.json b/msft-test.json new file mode 100644 index 00000000..93380b05 --- /dev/null +++ b/msft-test.json @@ -0,0 +1,63 @@ +{ + "electronVersion": "18.1.0", + "electronDownload": { + "version": "18.1.0+wvcus", + "mirror": "https://github.com/castlabs/electron-releases/releases/download/v" + }, + "appId": "cider", + "protocols": [ + { + "name": "Cider", + "schemes": [ + "ame", + "cider", + "itms", + "itmss", + "musics", + "music" + ] + } + ], + "extends": null, + "files": [ + "**/*", + "./src/**/*", + "./resources/icons/icon.*" + ], + "linux": { + "target": [ + "AppImage", + "deb", + "snap", + "rpm" + ], + "synopsis": "A new look into listening and enjoying music in style and performance. ", + "category": "AudioVideo", + "icon": "cider", + "executableName": "cider" + }, + "appx": { + "applicationId": "CiderAlpha", + "publisher": "CN=CiderCollective, OID.2.25.311729368913984317654407730594956997722=1", + "displayName": "Cider (Alpha)", + "identityName": "CiderCollective.CiderAlpha", + "backgroundColor": "transparent", + "setBuildNumber": true + }, + "win": { + "target": [ + "appx" + ], + "icon": "resources/icons/icon.ico" + }, + "directories": { + "buildResources": ".", + "output": "dist" + }, + "mac": { + "icon": "./resources/icons/icon.icns", + "category": "public.app-category.music", + "entitlements": "resources/entitlements.mac.plist", + "darkModeSupport": true + } +} \ No newline at end of file diff --git a/package.json b/package.json index 34d1257f..330f2a35 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "dist:all": "yarn build && electron-builder -mwl", "winget": "yarn build && electron-builder --win -c winget.json", "msft": "yarn build && electron-builder -c msft-package.json", + "mstest": "yarn build && electron-builder -c msft-test.json", "postinstall": "electron-builder install-app-deps", "circle:script": "node resources/circle" }, From d8e4e58488d5f28e408a274c3f3ba2294c3f70c8 Mon Sep 17 00:00:00 2001 From: GamingLiamStudios <58615717+GamingLiamStudios@users.noreply.github.com> Date: Wed, 27 Apr 2022 00:43:13 +1000 Subject: [PATCH 12/58] Update en_OWO.json --- src/i18n/en_OWO.json | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/i18n/en_OWO.json b/src/i18n/en_OWO.json index 9b7efd65..940d93fd 100644 --- a/src/i18n/en_OWO.json +++ b/src/i18n/en_OWO.json @@ -279,6 +279,19 @@ "settings.option.general.updateCider.branch.develop": "Devewopment", "settings.option.general.customizeSidebar": "Customize Sidebaw Items", "settings.option.general.customizeSidebar.customize": "Customize", + "settings.option.general.keybindings": "Keybindings", + "settings.option.general.keybindings.open": "Open", + "settings.description.search": "Seawch", + "settings.description.albums": "Wibwawy Awbums", + "settings.description.artists": "Wibwawy Awtists", + "settings.description.browse": "Bwowse", + "settings.description.private": "Toggwe Pwivate Session", + "settings.description.remote": "Web Wemote", + "settings.description.audio": "Audio Settings", + "settings.description.plugins": "Pwugins Menyu", + "settings.description.cast": "Cast to Devices", + "settings.description.settings": "Settings", + "settings.description.developer": "Devewopew Toows", "settings.notyf.updateCider.update-not-available": "Nyo update avaiwabwe", "settings.notyf.updateCider.update-downloaded": "Update has been downwoaded, westawt to appwy", "settings.notyf.updateCider.update-error": "Ewwow updating Cidew", @@ -287,6 +300,9 @@ "settings.header.audio.description": "Adjust the audio settings fow Cidew.", "settings.option.audio.volumeStep": "Vowume Step", "settings.option.audio.maxVolume": "Max Vowume", + "settings.option.audio.changePlaybackRate": "Change Pwayback Wate", + "settings.option.audio.playbackRate": "Pwayback Wate", + "settings.option.audio.playbackRate.change": "Change", "settings.option.audio.quality": "Audio Quawity", "settings.header.audio.quality.hireslossless": "Hi-Wes Wosswess", "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz", @@ -361,6 +377,7 @@ "settings.option.visual.uiscale": "UI Scawe", "settings.header.visual.theme": "Theme", "settings.option.visual.theme.github.download": "Instaww fwom GitHub UWW", + "settings.option.visual.theme.github.openfolder": "Open Themes Fowdew", "settings.option.visual.theme.github.explore": "Expwowe GitHub Themes", "settings.header.visual.theme.github.page": "Themes fwom GitHub", "settings.option.visual.theme.github.install.confirm": "Awe you suwe you want to instaww {{ repo }}?", @@ -393,6 +410,7 @@ "settings.option.lyrics.enableMusixmatchKaraoke": "Enyabwe Kawaoke Mode (Musixmatch onwy)", "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Twanswation Pwefewwed Wanguage", "settings.option.lyrics.enableYoutubeLyrics": "Enyabwe Youtube Wywics fow Music Videos", + "settings.option.lyrics.enableQQLyrics": "Enyabwe QQ Wywics", "settings.header.connectivity": "Connyectivity", "settings.header.connectivity.description": "Adjust the connyectivity settings fow Cidew.", "settings.option.connectivity.playbackNotifications": "Pwayback Nyotifications", @@ -422,9 +440,11 @@ "settings.option.advanced.playlistTrackMapping": "Pwaywist Twack Mapping", "settings.option.advanced.playlistTrackMapping.description": "Enyabwes deep scannying of pwaywists to detewminye which twacks awe in which pwaywists. Pwaywist cache buiwd times can incwease signyificantwy.", "settings.option.visual.transparent": "Twanspawent fwame", - "settings.option.visual.transparent.description": "Twanspawent fwame (nyeeds Theme Suppowt , wequiwes wewaunch)", + "settings.option.visual.transparent.description": "(nyeeds Theme Suppowt, wequiwes wewaunch)", "settings.header.advanced": "Advanced", - "settings.header.connect": "Connyect", + "settings.header.connect": "Sync", + "settings.option.connect.link_account": "Enyabwe Sync with Cidew Connyect", + "settings.option.connect.link_account.description": "Winking youw Discowd account with Cidew Connyect awwows you to stowe usewdata incwuding Settings, EQ's, and eventuawwy mowe once finyished. (Wowk In Pwogwess)", "spatial.notTurnedOn": "Audio Spatiawization is disabwed. To use, pwease enyabwe it fiwst.", "spatial.spatialProperties": "Spatiaw Pwopewties", "spatial.width": "Width", From 079008d5a4b739c210e7204b52c1fa25b11502a3 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Tue, 26 Apr 2022 22:25:44 +0700 Subject: [PATCH 13/58] add raop back --- package.json | 1 + {optional/Plugins => src/main/plugins}/raop.ts | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) rename {optional/Plugins => src/main/plugins}/raop.ts (98%) diff --git a/package.json b/package.json index 330f2a35..70e22263 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "@sentry/electron": "^3.0.7", "@sentry/integrations": "^6.19.6", "adm-zip": "0.4.10", + "airtunes2": "git+https://github.com/vapormusic/node_airtunes2.git", "castv2-client": "^1.2.0", "chokidar": "^3.5.3", "discord-rpc": "^4.0.1", diff --git a/optional/Plugins/raop.ts b/src/main/plugins/raop.ts similarity index 98% rename from optional/Plugins/raop.ts rename to src/main/plugins/raop.ts index c466b915..ce911834 100644 --- a/optional/Plugins/raop.ts +++ b/src/main/plugins/raop.ts @@ -20,10 +20,10 @@ export default class RAOP { private _app: any; private _store: any; private _cacheAttr: any; - + private u: any; private ipairplay: any = ""; private portairplay: any = ""; - private u = require('airtunes2'); + private airtunes: any; private device: any; private mdns = require('mdns-js'); @@ -132,6 +132,7 @@ export default class RAOP { * Runs on app ready */ onReady(win: any): void { + this.u = require('airtunes2'); this._win = win; electron.ipcMain.on('getKnownAirplayDevices', (event) => { @@ -146,7 +147,7 @@ export default class RAOP { browser.on('ready', browser.discover); browser.on('update', (service: any) => { - if (service.addresses && service.fullname && service.fullname.includes('_raop._tcp')) { + if (service.addresses && service.fullname && (service.fullname.includes('_raop._tcp') || service.fullname.includes('_airplay._tcp'))) { console.log(service.txt) this._win.webContents.executeJavaScript(`console.log( "${service.name} ${service.host}:${service.port} ${service.addresses}" From 126e3ebd9f30d930247caed528fbc52c3c822d81 Mon Sep 17 00:00:00 2001 From: Monochromish Date: Wed, 27 Apr 2022 06:27:50 +1000 Subject: [PATCH 14/58] Fixed bugs --- src/renderer/views/pages/settings.ejs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 81b29251..dde9eed5 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -70,9 +70,9 @@ {{$root.getLz('settings.option.general.customizeSidebar.customize')}} - +
-
+
w
{{ $root.getLz('term.recentlyAdded') }}
@@ -132,7 +132,7 @@ {{$root.getLz('settings.option.general.keybindings.open')}}
- +
From 429f09402c35c477bacda297ba40f12283b5f554 Mon Sep 17 00:00:00 2001 From: Amaru8 <52407090+Amaru8@users.noreply.github.com> Date: Tue, 26 Apr 2022 22:37:08 +0200 Subject: [PATCH 15/58] Use i18n string for Reset --- src/renderer/views/pages/settings.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index dde9eed5..d143dd04 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -245,7 +245,7 @@
From 260ee29d3bcd3dcaad97a470ba1015dcfa894674 Mon Sep 17 00:00:00 2001 From: Amaru8 <52407090+Amaru8@users.noreply.github.com> Date: Tue, 26 Apr 2022 22:38:29 +0200 Subject: [PATCH 16/58] Remove a random W character --- src/renderer/views/pages/settings.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index d143dd04..c3f06ae7 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -72,7 +72,7 @@
-
w +
{{ $root.getLz('term.recentlyAdded') }}
From c1c4dd8fb4077b86ad17794babed237b30ed7d2c Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Tue, 26 Apr 2022 16:07:10 -0700 Subject: [PATCH 17/58] various small css tweaks --- src/renderer/less/elements.less | 1 + src/renderer/less/helpers.less | 13 ++++++++++--- src/renderer/less/pages.less | 4 ++-- src/renderer/style.less | 2 +- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/renderer/less/elements.less b/src/renderer/less/elements.less index 2ce34e73..383bfd10 100644 --- a/src/renderer/less/elements.less +++ b/src/renderer/less/elements.less @@ -1912,6 +1912,7 @@ input[type=checkbox][switch]:checked:active::before { // background: #eee; background : transparent; color : #333; + font-weight: 600; &:after { opacity: 1; diff --git a/src/renderer/less/helpers.less b/src/renderer/less/helpers.less index acc2e2c6..f9f6026d 100644 --- a/src/renderer/less/helpers.less +++ b/src/renderer/less/helpers.less @@ -311,7 +311,8 @@ .menu-panel-body { display: flex; flex-flow: column; - background: #262626; + background: rgb(30 30 30 / 45%); + backdrop-filter : blur(32px) saturate(180%); position: relative; min-width: 200px; box-shadow: var(--ciderShadow-Generic); @@ -322,13 +323,15 @@ .menu-option { text-align: left; display: flex; - width: 100%; - padding: 9px 16px; + width: calc(100% - 4px); + padding: 8px 10px; appearance: none; border: 0px; font: inherit; background: transparent; color: inherit; + margin: 0 auto; + border-radius: 5px; &:hover { background: var(--selected); @@ -367,6 +370,10 @@ .menu-body { overflow: overlay; height: 100%; + display: flex; + flex-flow: column; + gap: 4px; + padding: 6px 4px; } .menu-footer { diff --git a/src/renderer/less/pages.less b/src/renderer/less/pages.less index 66c68f19..2ac0bedf 100644 --- a/src/renderer/less/pages.less +++ b/src/renderer/less/pages.less @@ -909,7 +909,7 @@ .header-content { z-index : 1; - margin-top: -16px; + // margin-top: -16px; } @@ -1052,7 +1052,7 @@ .artist-body { padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); - margin : -140px 20px; + margin : -64px 20px; .arow { display : flex; diff --git a/src/renderer/style.less b/src/renderer/style.less index e5d7d66f..fb9caad8 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -1085,7 +1085,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track { display: flex; &-macos { - width: 96px; + width: 100px; } } From a0c54f31c8531b5d705c2c8f082cf3dbb3d33ffe Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Tue, 26 Apr 2022 16:10:06 -0700 Subject: [PATCH 18/58] added --panelRadius --- src/renderer/less/helpers.less | 2 +- src/renderer/style.less | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/renderer/less/helpers.less b/src/renderer/less/helpers.less index f9f6026d..43452a24 100644 --- a/src/renderer/less/helpers.less +++ b/src/renderer/less/helpers.less @@ -316,7 +316,7 @@ position: relative; min-width: 200px; box-shadow: var(--ciderShadow-Generic); - border-radius: var(--mediaItemRadius); + border-radius: var(--panelRadius); overflow: hidden; font-size: 13px; diff --git a/src/renderer/style.less b/src/renderer/style.less index fb9caad8..fe7a5211 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -21,6 +21,7 @@ --ciderShadow-Generic: var(--mediaItemShadow), 0 8px 40px rgb(0 0 0 / 0.55); --mediaItemRadius: 6px; --mediaItemRadiusRound: 100%; + --panelRadius: 10px; --contentInnerPadding: 16px; --navbarHeight1: 48px; --navbarHeight2: 0px; From 5ede8379f53657a6047e6c77f14de549310ed106 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Tue, 26 Apr 2022 20:16:39 -0700 Subject: [PATCH 19/58] rounded modals --- src/renderer/less/bootstrap.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/less/bootstrap.less b/src/renderer/less/bootstrap.less index 3c4ad54e..b1384a8a 100644 --- a/src/renderer/less/bootstrap.less +++ b/src/renderer/less/bootstrap.less @@ -1046,7 +1046,7 @@ background-color: var(--modalBackground); background-clip : padding-box; border : 1px solid rgba(0, 0, 0, 0.2); - border-radius : 0.3rem; + border-radius : var(--panelRadius); outline : 0; box-shadow : var(--ciderShadow-Generic); overflow : hidden; From cfd3c0992fa174d4efe86897a8c8b60579d69967 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Tue, 26 Apr 2022 21:06:13 -0700 Subject: [PATCH 20/58] main menu consistency --- src/renderer/style.less | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/renderer/style.less b/src/renderer/style.less index fe7a5211..4397f9c0 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -630,11 +630,21 @@ input[type=range].web-slider::-webkit-slider-runnable-track { } .body { - background: #242424; + background: rgb(30 30 30 / 45%); padding: 6px; - border-radius: 6px; + border-radius: var(--panelRadius); width: 100%; box-shadow: var(--ciderShadow-Generic); + backdrop-filter: var(--glassFilter); + animation: cmenuBodyIn .5s var(--appleEase); + @keyframes cmenuBodyIn { + 0% { + background: rgb(30 30 30); + } + 100% { + background: rgb(30 30 30 / 45%); + } + } } .item { @@ -652,7 +662,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track { margin: 2px 0px; &:hover { - background: var(--keyColor); + background: var(--selected); } } } From 2976a8400fc6c5c8bf1940609d902b9f9ba6288d Mon Sep 17 00:00:00 2001 From: vapormusic Date: Wed, 27 Apr 2022 20:11:05 +0700 Subject: [PATCH 21/58] update --- src/main/plugins/raop.ts | 6 ++++-- src/renderer/views/components/castmenu.ejs | 2 +- src/renderer/views/pages/settings.ejs | 11 ----------- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/main/plugins/raop.ts b/src/main/plugins/raop.ts index ce911834..e6908375 100644 --- a/src/main/plugins/raop.ts +++ b/src/main/plugins/raop.ts @@ -148,7 +148,7 @@ export default class RAOP { browser.on('update', (service: any) => { if (service.addresses && service.fullname && (service.fullname.includes('_raop._tcp') || service.fullname.includes('_airplay._tcp'))) { - console.log(service.txt) + // console.log(service.txt) this._win.webContents.executeJavaScript(`console.log( "${service.name} ${service.host}:${service.port} ${service.addresses}" )`); @@ -159,7 +159,7 @@ export default class RAOP { - electron.ipcMain.on("performAirplayPCM", (event, ipv4, ipport, sepassword, title, artist, album, artworkURL) => { + electron.ipcMain.on("performAirplayPCM", (event, ipv4, ipport, sepassword, title, artist, album, artworkURL,txt) => { if (ipv4 != this.ipairplay || ipport != this.portairplay) { if (this.airtunes == null) { this.airtunes = new this.u()} @@ -169,7 +169,9 @@ export default class RAOP { port: ipport, volume: 60, password: sepassword, + txt: txt }); + // console.log('lol',txt) this.device.on('status', (status: any) => { console.log('device status', status); if (status == "ready"){ diff --git a/src/renderer/views/components/castmenu.ejs b/src/renderer/views/components/castmenu.ejs index ad3bd209..7ab727f3 100644 --- a/src/renderer/views/components/castmenu.ejs +++ b/src/renderer/views/components/castmenu.ejs @@ -116,7 +116,7 @@ }, setAirPlayCast(device) { this.activeCasts.push(device); - ipcRenderer.send("performAirplayPCM",device.host,device.port,null,"","","","") + ipcRenderer.send("performAirplayPCM",device.host,device.port,null,"","","","",device.txt) }, stopCasting() { CiderAudio.stopAudio(); diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 83d821d5..c6ebcd45 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -973,17 +973,6 @@
-
-
- FFmpeg location
- Restart needed to work. Required for AirPlay. (For example: C:\ffmpeg-4.4-essentials_build\bin\ffmpeg.exe)
- You can look at the internet on how to install it. -
-
- -
-
-
{{$root.getLz('settings.option.visual.plugin.github.explore')}} From eb30dd58f890db2b05184275d40e0236d2655e0c Mon Sep 17 00:00:00 2001 From: cryptofyre Date: Wed, 27 Apr 2022 08:30:35 -0500 Subject: [PATCH 22/58] Forgot to set this back. --- msft-test.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/msft-test.json b/msft-test.json index 93380b05..ddcf14f9 100644 --- a/msft-test.json +++ b/msft-test.json @@ -1,7 +1,7 @@ { - "electronVersion": "18.1.0", + "electronVersion": "16.0.7", "electronDownload": { - "version": "18.1.0+wvcus", + "version": "16.0.7+wvcus", "mirror": "https://github.com/castlabs/electron-releases/releases/download/v" }, "appId": "cider", From 16828cf718766b9f3f73d3f07fbaf9543f440457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=A5=E5=8F=A1?= <46503943+jay900604@users.noreply.github.com> Date: Wed, 27 Apr 2022 23:15:38 +0800 Subject: [PATCH 23/58] Update zh_TW.json Update TW language. --- src/i18n/zh_TW.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/i18n/zh_TW.json b/src/i18n/zh_TW.json index 8d44cef4..36c635a1 100644 --- a/src/i18n/zh_TW.json +++ b/src/i18n/zh_TW.json @@ -225,6 +225,8 @@ "settings.option.general.updateCider.branch.develop": "開發者測試版(不穩定)", "settings.option.general.customizeSidebar": "自訂側邊欄的功能", "settings.option.general.customizeSidebar.customize": "自訂", + "settings.option.general.keybindings": "快捷操作鍵", + "settings.option.general.keybindings.open": "開啟", "settings.notyf.updateCider.update-not-available": "沒有可用的更新", "settings.notyf.updateCider.update-downloaded": "更新已成功下載,重啟後進行更新", "settings.notyf.updateCider.update-error": "更新時,發生錯誤", @@ -254,6 +256,13 @@ "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "改變模擬溫暖模組處理的強度。", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "溫和", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "溫暖", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider 音樂氣氛實現器™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "以最先進的音訊設定為設計,實現不同的音樂氣氛。", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider 音樂氣氛™️模式", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "更改氣氛實現器模塊的操作模式。", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "自然(標準)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "自然(高)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "自然(增強)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數位增強音訊處理™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "透過人類的聽力心理學模型和 AAC 編碼特色的即時算法,強化 256 kbps AAC 音訊的感知音訊品質。", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數位增強音訊處理設定", @@ -326,6 +335,7 @@ "settings.option.lyrics.enableMusixmatchKaraoke": "開啟K歌模式(僅限 Musixmatch)", "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch 歌詞優先語言偏好選項", "settings.option.lyrics.enableYoutubeLyrics": "播放 MV 時,使用 YouTube 歌詞", + "settings.option.lyrics.enableQQLyrics": "開啟 QQ 音樂的歌詞", "settings.header.connectivity": "外部連接", "settings.header.connectivity.description": "調整 Cider 與外部的連接", "settings.option.connectivity.playbackNotifications": "歌曲播放通知", @@ -333,6 +343,8 @@ "settings.option.connectivity.discordRPC.clientName": "應用程式名稱", "settings.option.connectivity.discordRPC.clearOnPause": "暫停時清除 Discord 動態", "settings.option.connectivity.discordRPC.hideButtons": "隱藏 Discord 動態上的按鈕", + "settings.option.connectivity.discordRPC.detailsFormat": "詳細資訊格式", + "settings.option.connectivity.discordRPC.stateFormat": "狀態格式" "settings.option.connectivity.lastfmScrobble": "Last.FM Scrobbling 記錄", "settings.option.connectivity.lastfmScrobble.delay": "Last.FM Scrobble 延遲 (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "開啟 Last.FM 正在聆聽", From 813fed459662646d78fab3bf3be609d831bada1b Mon Sep 17 00:00:00 2001 From: Amaru8 <52407090+Amaru8@users.noreply.github.com> Date: Wed, 27 Apr 2022 19:10:30 +0200 Subject: [PATCH 24/58] Added Different ContextMenu to Artist Search items --- .../views/components/mediaitem-square.ejs | 70 +++++++++++++++++-- 1 file changed, 66 insertions(+), 4 deletions(-) diff --git a/src/renderer/views/components/mediaitem-square.ejs b/src/renderer/views/components/mediaitem-square.ejs index fa44a94e..8d1013d8 100644 --- a/src/renderer/views/components/mediaitem-square.ejs +++ b/src/renderer/views/components/mediaitem-square.ejs @@ -2,12 +2,12 @@
{{item?.meta?.reason?.stringForDisplay ?? ''}}
+ class="cd-mediaitem-square" :class="getClasses()" @contextmenu="getContextMenu(item)">