From 335819b2bb6d6a916f767ee0a14e85e538578bf0 Mon Sep 17 00:00:00 2001 From: Roberto Tonino Date: Thu, 13 May 2021 20:59:58 +0200 Subject: [PATCH] feat(server): added types for saveSettings --- server/src/types.ts | 86 ++++++++++++++++++++ server/src/websocket/index.ts | 8 +- server/src/websocket/modules/saveSettings.ts | 8 +- 3 files changed, 99 insertions(+), 3 deletions(-) diff --git a/server/src/types.ts b/server/src/types.ts index cddb08d..f6e6f1d 100644 --- a/server/src/types.ts +++ b/server/src/types.ts @@ -10,3 +10,89 @@ export interface ApiHandler { path: string handler: RequestHandler } + +export interface Tags { + title: boolean + artist: boolean + album: boolean + cover: boolean + trackNumber: boolean + trackTotal: boolean + discNumber: boolean + discTotal: boolean + albumArtist: boolean + genre: boolean + year: boolean + date: boolean + explicit: boolean + isrc: boolean + length: boolean + barcode: boolean + bpm: boolean + replayGain: boolean + label: boolean + lyrics: boolean + syncedLyrics: boolean + copyright: boolean + composer: boolean + involvedPeople: boolean + source: boolean + savePlaylistAsCompilation: boolean + useNullSeparator: boolean + saveID3v1: boolean + multiArtistSeparator: string + singleAlbumArtist: boolean + coverDescriptionUTF8: boolean +} + +export interface Settings { + downloadLocation: string + tracknameTemplate: string + albumTracknameTemplate: string + playlistTracknameTemplate: string + createPlaylistFolder: boolean + playlistNameTemplate: string + createArtistFolder: boolean + artistNameTemplate: string + createAlbumFolder: boolean + albumNameTemplate: string + createCDFolder: boolean + createStructurePlaylist: boolean + createSingleFolder: boolean + padTracks: boolean + paddingSize: string + illegalCharacterReplacer: string + queueConcurrency: number + maxBitrate: string + fallbackBitrate: boolean + fallbackSearch: boolean + logErrors: boolean + logSearched: boolean + saveDownloadQueue: boolean + overwriteFile: string + createM3U8File: boolean + playlistFilenameTemplate: string + syncedLyrics: boolean + embeddedArtworkSize: number + embeddedArtworkPNG: boolean + localArtworkSize: number + localArtworkFormat: string + saveArtwork: boolean + coverImageTemplate: string + saveArtworkArtist: boolean + artistImageTemplate: string + jpegImageQuality: number + dateFormat: string + albumVariousArtists: boolean + removeAlbumVersion: boolean + removeDuplicateArtists: boolean + tagsLanguage: string + featuredToTitle: string + titleCasing: string + artistCasing: string + executeCommand: string + tags: Tags +} + +// TODO +export interface SpotifySettings {} diff --git a/server/src/websocket/index.ts b/server/src/websocket/index.ts index 0fe3848..b4b8111 100644 --- a/server/src/websocket/index.ts +++ b/server/src/websocket/index.ts @@ -9,10 +9,14 @@ import wsModules from './modules' export const registerWebsocket = (wss: WsServer) => { wss.on('connection', ws => { ws.on('message', message => { - consoleInfo(`received: ${message}`) + consoleInfo(`Received: ${message}`) + const data = JSON.parse(message.toString()) + wsModules.forEach(module => { - if (data.key === module.eventName) module.cb(data.data, ws, wss) + if (data.key === module.eventName) { + module.cb(data.data, ws, wss) + } }) }) }) diff --git a/server/src/websocket/modules/saveSettings.ts b/server/src/websocket/modules/saveSettings.ts index 3be1780..8941679 100644 --- a/server/src/websocket/modules/saveSettings.ts +++ b/server/src/websocket/modules/saveSettings.ts @@ -1,10 +1,16 @@ import { Server as WsServer } from 'ws' import { consoleInfo } from '../../helpers/errors' import { saveSettings, listener } from '../../main' +import { Settings, SpotifySettings } from '../../types' const eventName = 'saveSettings' -const cb = (data: any, _: any, __: WsServer) => { +export interface SaveSettingsData { + settings: Settings + spotifySettings: SpotifySettings +} + +const cb = (data: SaveSettingsData, _: any, __: WsServer) => { const { settings, spotifySettings } = data saveSettings(settings) consoleInfo('Settings saved')