diff --git a/src/remote/store/index.ts b/src/remote/store/index.ts index f1cbc901d..aef6a23f6 100644 --- a/src/remote/store/index.ts +++ b/src/remote/store/index.ts @@ -4,7 +4,6 @@ import { immer } from 'zustand/middleware/immer'; import { createWithEqualityFn } from 'zustand/traditional'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; import { toast } from '/@/shared/components/toast/toast'; import { ClientEvent, ServerEvent, SongUpdateSocket } from '/@/shared/types/remote-types'; @@ -42,7 +41,7 @@ export const useRemoteStore = createWithEqualityFn()( immer((set, get) => ({ actions: { reconnect: async () => { - logFn.debug(logMsg[LogCategory.REMOTE].reconnectInitiated, { + logFn.debug('Reconnect initiated', { category: LogCategory.REMOTE, }); const existing = get().socket; @@ -52,7 +51,7 @@ export const useRemoteStore = createWithEqualityFn()( existing.readyState === WebSocket.OPEN || existing.readyState === WebSocket.CONNECTING ) { - logFn.debug(logMsg[LogCategory.REMOTE].closingExistingSocket, { + logFn.debug('Closing existing socket', { category: LogCategory.REMOTE, meta: { readyState: existing.readyState }, }); @@ -64,17 +63,17 @@ export const useRemoteStore = createWithEqualityFn()( let authHeader: string | undefined; try { - logFn.debug(logMsg[LogCategory.REMOTE].fetchingCredentials, { + logFn.debug('Fetching credentials', { category: LogCategory.REMOTE, }); const credentials = await fetch('/credentials'); authHeader = await credentials.text(); - logFn.debug(logMsg[LogCategory.REMOTE].credentialsFetched, { + logFn.debug('Credentials fetched', { category: LogCategory.REMOTE, meta: { hasAuthHeader: !!authHeader }, }); } catch (error) { - logFn.error(logMsg[LogCategory.REMOTE].failedToGetCredentials, { + logFn.error('Failed to get credentials', { category: LogCategory.REMOTE, meta: { error }, }); @@ -82,7 +81,7 @@ export const useRemoteStore = createWithEqualityFn()( set((state) => { const wsUrl = location.href.replace('http', 'ws'); - logFn.debug(logMsg[LogCategory.REMOTE].creatingWebSocket, { + logFn.debug('Creating new WebSocket', { category: LogCategory.REMOTE, meta: { url: wsUrl }, }); @@ -93,34 +92,28 @@ export const useRemoteStore = createWithEqualityFn()( socket.addEventListener('message', (message) => { const { data, event } = JSON.parse(message.data) as ServerEvent; - logFn.debug(logMsg[LogCategory.REMOTE].webSocketMessageReceived, { + logFn.debug('WebSocket message received', { category: LogCategory.REMOTE, meta: { data, event }, }); switch (event) { case 'error': { - logFn.error( - logMsg[LogCategory.REMOTE].webSocketErrorEvent, - { - category: LogCategory.REMOTE, - meta: { data }, - }, - ); + logFn.error('WebSocket error event', { + category: LogCategory.REMOTE, + meta: { data }, + }); toast.error({ message: data, title: 'Socket error' }); break; } case 'favorite': { - logFn.debug( - logMsg[LogCategory.REMOTE].favoriteEventReceived, - { - category: LogCategory.REMOTE, - meta: { - favorite: data.favorite, - id: data.id, - }, + logFn.debug('Favorite event received', { + category: LogCategory.REMOTE, + meta: { + favorite: data.favorite, + id: data.id, }, - ); + }); set((state) => { if (state.info.song?.id === data.id) { state.info.song.userFavorite = data.favorite; @@ -129,33 +122,27 @@ export const useRemoteStore = createWithEqualityFn()( break; } case 'playback': { - logFn.debug( - logMsg[LogCategory.REMOTE].playbackEventReceived, - { - category: LogCategory.REMOTE, - meta: { status: data }, - }, - ); + logFn.debug('Playback event received', { + category: LogCategory.REMOTE, + meta: { status: data }, + }); set((state) => { state.info.status = data; }); break; } case 'position': { - logFn.debug( - logMsg[LogCategory.REMOTE].positionEventReceived, - { - category: LogCategory.REMOTE, - meta: { position: data }, - }, - ); + logFn.debug('Position event received', { + category: LogCategory.REMOTE, + meta: { position: data }, + }); set((state) => { state.info.position = data; }); break; } case 'proxy': { - logFn.debug(logMsg[LogCategory.REMOTE].proxyEventReceived, { + logFn.debug('Proxy event received (image update)', { category: LogCategory.REMOTE, meta: { dataLength: data?.length, @@ -170,16 +157,13 @@ export const useRemoteStore = createWithEqualityFn()( break; } case 'rating': { - logFn.debug( - logMsg[LogCategory.REMOTE].ratingEventReceived, - { - category: LogCategory.REMOTE, - meta: { - id: data.id, - rating: data.rating, - }, + logFn.debug('Rating event received', { + category: LogCategory.REMOTE, + meta: { + id: data.id, + rating: data.rating, }, - ); + }); set((state) => { if (state.info.song?.id === data.id) { state.info.song.userRating = data.rating; @@ -188,33 +172,27 @@ export const useRemoteStore = createWithEqualityFn()( break; } case 'repeat': { - logFn.debug( - logMsg[LogCategory.REMOTE].repeatEventReceived, - { - category: LogCategory.REMOTE, - meta: { repeat: data }, - }, - ); + logFn.debug('Repeat event received', { + category: LogCategory.REMOTE, + meta: { repeat: data }, + }); set((state) => { state.info.repeat = data; }); break; } case 'shuffle': { - logFn.debug( - logMsg[LogCategory.REMOTE].shuffleEventReceived, - { - category: LogCategory.REMOTE, - meta: { shuffle: data }, - }, - ); + logFn.debug('Shuffle event received', { + category: LogCategory.REMOTE, + meta: { shuffle: data }, + }); set((state) => { state.info.shuffle = data; }); break; } case 'song': { - logFn.debug(logMsg[LogCategory.REMOTE].songEventReceived, { + logFn.debug('Song event received', { category: LogCategory.REMOTE, meta: { artistName: data?.artistName, @@ -228,7 +206,7 @@ export const useRemoteStore = createWithEqualityFn()( break; } case 'state': { - logFn.debug(logMsg[LogCategory.REMOTE].stateEventReceived, { + logFn.debug('State event received (full state update)', { category: LogCategory.REMOTE, meta: { hasSong: !!data.song, @@ -243,13 +221,10 @@ export const useRemoteStore = createWithEqualityFn()( break; } case 'volume': { - logFn.debug( - logMsg[LogCategory.REMOTE].volumeEventReceived, - { - category: LogCategory.REMOTE, - meta: { volume: data }, - }, - ); + logFn.debug('Volume event received', { + category: LogCategory.REMOTE, + meta: { volume: data }, + }); set((state) => { state.info.volume = data; }); @@ -258,7 +233,7 @@ export const useRemoteStore = createWithEqualityFn()( }); socket.addEventListener('open', () => { - logFn.debug(logMsg[LogCategory.REMOTE].webSocketOpened, { + logFn.debug('WebSocket opened', { category: LogCategory.REMOTE, meta: { hasAuthHeader: !!authHeader, @@ -266,7 +241,7 @@ export const useRemoteStore = createWithEqualityFn()( }, }); if (authHeader) { - logFn.debug(logMsg[LogCategory.REMOTE].sendingAuthentication, { + logFn.debug('Sending authentication', { category: LogCategory.REMOTE, }); socket.send( @@ -280,7 +255,7 @@ export const useRemoteStore = createWithEqualityFn()( }); socket.addEventListener('close', (reason) => { - logFn.debug(logMsg[LogCategory.REMOTE].webSocketClosed, { + logFn.debug('WebSocket closed', { category: LogCategory.REMOTE, meta: { code: reason.code, @@ -290,13 +265,13 @@ export const useRemoteStore = createWithEqualityFn()( }, }); if (reason.code === 4002 || reason.code === 4003) { - logFn.debug(logMsg[LogCategory.REMOTE].reloadingPage, { + logFn.debug('Reloading page due to close code', { category: LogCategory.REMOTE, meta: { code: reason.code }, }); location.reload(); } else if (reason.code === 4000) { - logFn.warn(logMsg[LogCategory.REMOTE].serverIsDown, { + logFn.warn('Server is down', { category: LogCategory.REMOTE, }); toast.warn({ @@ -304,16 +279,13 @@ export const useRemoteStore = createWithEqualityFn()( title: 'Connection closed', }); } else if (reason.code !== 4001 && !socket.natural) { - logFn.error( - logMsg[LogCategory.REMOTE].socketClosedUnexpectedly, - { - category: LogCategory.REMOTE, - meta: { - code: reason.code, - reason: reason.reason, - }, + logFn.error('Socket closed unexpectedly', { + category: LogCategory.REMOTE, + meta: { + code: reason.code, + reason: reason.reason, }, - ); + }); toast.error({ message: 'Socket closed for unexpected reason', title: 'Connection closed', @@ -331,7 +303,7 @@ export const useRemoteStore = createWithEqualityFn()( send: (data: ClientEvent) => { const socket = get().socket; if (socket) { - logFn.debug(logMsg[LogCategory.REMOTE].sendingEventToServer, { + logFn.debug('Sending event to server', { category: LogCategory.REMOTE, meta: { data: data, @@ -341,7 +313,7 @@ export const useRemoteStore = createWithEqualityFn()( }); socket.send(JSON.stringify(data)); } else { - logFn.warn(logMsg[LogCategory.REMOTE].cannotSendEvent, { + logFn.warn('Cannot send event - socket not available', { category: LogCategory.REMOTE, meta: { event: data.event }, }); diff --git a/src/renderer/features/analytics/hooks/use-app-tracker.ts b/src/renderer/features/analytics/hooks/use-app-tracker.ts index fe445c20d..fa71cdaa6 100644 --- a/src/renderer/features/analytics/hooks/use-app-tracker.ts +++ b/src/renderer/features/analytics/hooks/use-app-tracker.ts @@ -17,7 +17,6 @@ import { useSettingsStore, } from '/@/renderer/store'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; import { LyricSource, ServerType } from '/@/shared/types/domain-types'; import { FontType, Platform, PlayerStyle, PlayerType } from '/@/shared/types/types'; @@ -270,7 +269,7 @@ export const useAppTracker = () => { if (lastTrackedDate !== todayUTC) { appTrackerInFlight = true; const properties = getProperties(); - logFn.info(logMsg[LogCategory.ANALYTICS].appTracked, { + logFn.info('Analytics sent', { category: LogCategory.ANALYTICS, meta: { properties, todayUTC }, }); @@ -290,7 +289,7 @@ export const useAppTracker = () => { appTrackerLastSentDate = utcDate; localStorage.setItem('analytics_app_tracker_timestamp', utcDate); - logFn.debug(logMsg[LogCategory.ANALYTICS].appTracked, { + logFn.debug('Analytics sent', { category: LogCategory.ANALYTICS, meta: { properties }, }); diff --git a/src/renderer/features/analytics/hooks/use-page-tracker.ts b/src/renderer/features/analytics/hooks/use-page-tracker.ts index d6d266412..ba2e8a403 100644 --- a/src/renderer/features/analytics/hooks/use-page-tracker.ts +++ b/src/renderer/features/analytics/hooks/use-page-tracker.ts @@ -5,7 +5,6 @@ import { useLocation } from 'react-router'; import { isAnalyticsDisabled } from '/@/renderer/features/analytics/hooks/use-analytics-disabled'; import { getRoutePattern } from '/@/renderer/features/analytics/utils/get-route-pattern'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; const trackPageView = (routePattern: string) => { window.umami?.track((props) => ({ @@ -28,7 +27,7 @@ export const usePageTracker = () => { trackPageViewMutation(routePattern, { onSettled: () => { - logFn.debug(logMsg[LogCategory.ANALYTICS].pageViewTracked, { + logFn.debug('Page view tracked', { category: LogCategory.ANALYTICS, meta: { route: routePattern }, }); diff --git a/src/renderer/features/discord-rpc/use-discord-rpc.ts b/src/renderer/features/discord-rpc/use-discord-rpc.ts index 63a81703a..58dc9a0c1 100644 --- a/src/renderer/features/discord-rpc/use-discord-rpc.ts +++ b/src/renderer/features/discord-rpc/use-discord-rpc.ts @@ -21,7 +21,6 @@ import { } from '/@/renderer/store'; import { sentenceCase } from '/@/renderer/utils'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; import { useDebouncedCallback } from '/@/shared/hooks/use-debounced-callback'; import { LibraryItem, QueueSong, ServerType } from '/@/shared/types/domain-types'; import { PlayerStatus } from '/@/shared/types/types'; @@ -90,7 +89,7 @@ export const useDiscordRpc = () => { reason = 'paused_with_show_paused_disabled'; } - logFn.debug(logMsg[LogCategory.EXTERNAL].discordRpcActivityCleared, { + logFn.debug('Activity was cleared for Discord RPC', { category: LogCategory.EXTERNAL, meta: { reason, @@ -128,7 +127,7 @@ export const useDiscordRpc = () => { const isConnected = await discordRpc?.isConnected(); if (!isConnected) { - logFn.debug(logMsg[LogCategory.EXTERNAL].discordRpcInitialized, { + logFn.debug('Discord RPC was initialized', { category: LogCategory.EXTERNAL, meta: { clientId: discordSettings.clientId }, }); @@ -136,7 +135,7 @@ export const useDiscordRpc = () => { await discordRpc?.initialize(discordSettings.clientId); } - logFn.debug(logMsg[LogCategory.EXTERNAL].discordRpcSetActivity, { + logFn.debug('Activity was set for Discord RPC', { category: LogCategory.EXTERNAL, meta: { currentStatus: current[2], @@ -168,7 +167,7 @@ export const useDiscordRpc = () => { current[2] !== previous[2] ) { if (trackChangedByState || trackChanged) { - logFn.debug(logMsg[LogCategory.EXTERNAL].discordRpcTrackChanged, { + logFn.debug('Track was changed for Discord RPC', { category: LogCategory.EXTERNAL, meta: { artistName: song.artists?.[0]?.name, @@ -315,7 +314,7 @@ export const useDiscordRpc = () => { // Initialize if needed const isConnected = await discordRpc?.isConnected(); if (!isConnected) { - logFn.debug(logMsg[LogCategory.EXTERNAL].discordRpcInitialized, { + logFn.debug('Discord RPC was initialized', { category: LogCategory.EXTERNAL, meta: { clientId: discordSettings.clientId, @@ -327,7 +326,7 @@ export const useDiscordRpc = () => { await discordRpc?.initialize(discordSettings.clientId); } - logFn.debug(logMsg[LogCategory.EXTERNAL].discordRpcSetActivity, { + logFn.debug('Activity was set for Discord RPC', { category: LogCategory.EXTERNAL, meta: { albumName: song.album, @@ -347,7 +346,7 @@ export const useDiscordRpc = () => { }); discordRpc?.setActivity(activity); } else { - logFn.debug(logMsg[LogCategory.EXTERNAL].discordRpcUpdateSkipped, { + logFn.debug('Activity was not updated for Discord RPC', { category: LogCategory.EXTERNAL, meta: { currentStatus: current[2], @@ -384,7 +383,7 @@ export const useDiscordRpc = () => { // Quit Discord RPC if it was enabled and is now disabled useEffect(() => { if ((!discordSettings.enabled || privateMode) && Boolean(previousEnabledRef.current)) { - logFn.info(logMsg[LogCategory.EXTERNAL].discordRpcQuit, { + logFn.info('Discord RPC was quit', { category: LogCategory.EXTERNAL, meta: { enabled: discordSettings.enabled, diff --git a/src/renderer/features/player/audio-player/engine/web-player-engine.tsx b/src/renderer/features/player/audio-player/engine/web-player-engine.tsx index dec9ff203..99571dcb0 100644 --- a/src/renderer/features/player/audio-player/engine/web-player-engine.tsx +++ b/src/renderer/features/player/audio-player/engine/web-player-engine.tsx @@ -6,7 +6,6 @@ import { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'r import { AudioPlayer, PlayerOnProgressProps } from '/@/renderer/features/player/audio-player/types'; import { convertToLogVolume } from '/@/renderer/features/player/audio-player/utils/player-utils'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; import { PlayerStatus } from '/@/shared/types/types'; export interface WebPlayerEngineHandle extends AudioPlayer { @@ -160,7 +159,7 @@ export const WebPlayerEngine = (props: WebPlayerEngineProps) => { const { error } = target; - logFn.error(logMsg[LogCategory.PLAYER].playbackError, { + logFn.error('An error occurred during playback', { category: LogCategory.PLAYER, meta: { error }, }); diff --git a/src/renderer/features/player/context/player-context.tsx b/src/renderer/features/player/context/player-context.tsx index e96da23b2..c667d8a28 100644 --- a/src/renderer/features/player/context/player-context.tsx +++ b/src/renderer/features/player/context/player-context.tsx @@ -19,7 +19,6 @@ import { playlistsQueries } from '/@/renderer/features/playlists/api/playlists-a import { songsQueries } from '/@/renderer/features/songs/api/songs-api'; import { AddToQueueType, usePlayerActions, useSettingsStore } from '/@/renderer/store'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; import { shuffle as shuffleArray } from '/@/renderer/utils/shuffle'; import { sortSongsByFetchedOrder } from '/@/shared/api/utils'; import { Checkbox } from '/@/shared/components/checkbox/checkbox'; @@ -202,7 +201,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { if (typeof type === 'object' && 'edge' in type && type.edge !== null) { const edge = type.edge === 'top' ? 'top' : 'bottom'; - logFn.debug(logMsg[LogCategory.PLAYER].addToQueueByData, { + logFn.debug('Added to queue by data', { category: LogCategory.PLAYER, meta: { data: data.length, @@ -215,7 +214,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { storeActions.addToQueueByUniqueId(filteredData, type.uniqueId, edge, playSongId); } else { - logFn.debug(logMsg[LogCategory.PLAYER].addToQueueByType, { + logFn.debug('Added to queue by type', { category: LogCategory.PLAYER, meta: { data: data.length, filtered: filteredData.length, type }, }); @@ -258,7 +257,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { }; try { - logFn.debug(logMsg[LogCategory.PLAYER].addToQueueByFetch, { + logFn.debug('Added to queue by fetch', { category: LogCategory.PLAYER, meta: { ids: id, itemType, serverId, type }, }); @@ -324,7 +323,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { let toastId: null | string = null; let fetchId: null | string = null; - logFn.debug(logMsg[LogCategory.PLAYER].addToQueueByListQuery, { + logFn.debug('Added to queue by list query', { category: LogCategory.PLAYER, meta: { itemType, query, serverId, type }, }); @@ -405,7 +404,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { postProcess: 'sentenceCase', }), onClose: () => { - logFn.debug(logMsg[LogCategory.PLAYER].cancelledFetch, { + logFn.debug('Cancelled fetch', { category: LogCategory.PLAYER, meta: { itemType, serverId }, }); @@ -505,7 +504,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { ); const clearQueue = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].clearQueue, { + logFn.debug('Cleared queue', { category: LogCategory.PLAYER, }); @@ -514,7 +513,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const clearSelected = useCallback( (items: QueueSong[]) => { - logFn.debug(logMsg[LogCategory.PLAYER].clearSelected, { + logFn.debug('Cleared selected', { category: LogCategory.PLAYER, meta: { items: items.length }, }); @@ -526,7 +525,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const decreaseVolume = useCallback( (amount: number) => { - logFn.debug(logMsg[LogCategory.PLAYER].decreaseVolume, { + logFn.debug('Decreased volume', { category: LogCategory.PLAYER, meta: { amount }, }); @@ -538,7 +537,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const increaseVolume = useCallback( (amount: number) => { - logFn.debug(logMsg[LogCategory.PLAYER].increaseVolume, { + logFn.debug('Increased volume', { category: LogCategory.PLAYER, meta: { amount }, }); @@ -549,7 +548,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { ); const mediaNext = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaNext, { + logFn.debug('Media next', { category: LogCategory.PLAYER, }); @@ -557,7 +556,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { }, [storeActions]); const mediaPause = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaPause, { + logFn.debug('Media pause', { category: LogCategory.PLAYER, }); @@ -566,7 +565,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const mediaPlay = useCallback( (id?: string) => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaPlay, { + logFn.debug('Media play', { category: LogCategory.PLAYER, meta: { id }, }); @@ -578,7 +577,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const mediaPlayByIndex = useCallback( (index: number) => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaPlayByIndex, { + logFn.debug('Media play by index', { category: LogCategory.PLAYER, meta: { index }, }); @@ -589,7 +588,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { ); const mediaPrevious = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaPrevious, { + logFn.debug('Media previous', { category: LogCategory.PLAYER, }); @@ -597,7 +596,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { }, [storeActions]); const mediaStop = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaStop, { + logFn.debug('Media stop', { category: LogCategory.PLAYER, }); @@ -606,7 +605,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const mediaSeekToTimestamp = useCallback( (timestamp: number) => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaSeekToTimestamp, { + logFn.debug('Media seek to timestamp', { category: LogCategory.PLAYER, meta: { timestamp }, }); @@ -617,7 +616,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { ); const mediaSkipBackward = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaSkipBackward, { + logFn.debug('Media skip backward', { category: LogCategory.PLAYER, }); @@ -625,7 +624,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { }, [storeActions]); const mediaSkipForward = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaSkipForward, { + logFn.debug('Media skip forward', { category: LogCategory.PLAYER, }); @@ -634,7 +633,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const setQueue = useCallback( (data: Song[], index?: number, position?: number) => { - logFn.debug(logMsg[LogCategory.PLAYER].setQueue, { + logFn.debug('Set queue', { category: LogCategory.PLAYER, meta: { data: data.length, @@ -650,7 +649,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const setSpeed = useCallback( (speed: number) => { - logFn.debug(logMsg[LogCategory.PLAYER].setSpeed, { + logFn.debug('Set speed', { category: LogCategory.PLAYER, meta: { speed }, }); @@ -661,7 +660,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { ); const mediaToggleMute = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaToggleMute, { + logFn.debug('Media toggle mute', { category: LogCategory.PLAYER, }); @@ -669,7 +668,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { }, [storeActions]); const mediaTogglePlayPause = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].mediaTogglePlayPause, { + logFn.debug('Media toggle play pause', { category: LogCategory.PLAYER, }); @@ -678,7 +677,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const moveSelectedTo = useCallback( (items: QueueSong[], edge: 'bottom' | 'top', uniqueId: string) => { - logFn.debug(logMsg[LogCategory.PLAYER].moveSelectedTo, { + logFn.debug('Moved selected to', { category: LogCategory.PLAYER, meta: { edge, items, uniqueId }, }); @@ -690,7 +689,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const moveSelectedToBottom = useCallback( (items: QueueSong[]) => { - logFn.debug(logMsg[LogCategory.PLAYER].moveSelectedToBottom, { + logFn.debug('Moved selected to bottom', { category: LogCategory.PLAYER, meta: { items }, }); @@ -702,7 +701,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const moveSelectedToNext = useCallback( (items: QueueSong[]) => { - logFn.debug(logMsg[LogCategory.PLAYER].moveSelectedToNext, { + logFn.debug('Moved selected to next', { category: LogCategory.PLAYER, meta: { items }, }); @@ -714,7 +713,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const moveSelectedToTop = useCallback( (items: QueueSong[]) => { - logFn.debug(logMsg[LogCategory.PLAYER].moveSelectedToTop, { + logFn.debug('Moved selected to top', { category: LogCategory.PLAYER, meta: { items }, }); @@ -726,7 +725,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const setVolume = useCallback( (volume: number) => { - logFn.debug(logMsg[LogCategory.PLAYER].setVolume, { + logFn.debug('Set volume', { category: LogCategory.PLAYER, meta: { volume }, }); @@ -738,7 +737,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const setRepeat = useCallback( (repeat: PlayerRepeat) => { - logFn.debug(logMsg[LogCategory.PLAYER].setRepeat, { + logFn.debug('Set repeat', { category: LogCategory.PLAYER, meta: { repeat }, }); @@ -750,7 +749,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const setShuffle = useCallback( (shuffle: PlayerShuffle) => { - logFn.debug(logMsg[LogCategory.PLAYER].setShuffle, { + logFn.debug('Set shuffle', { category: LogCategory.PLAYER, meta: { shuffle }, }); @@ -761,7 +760,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { ); const shuffle = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].shuffle, { + logFn.debug('Shuffle', { category: LogCategory.PLAYER, }); @@ -769,7 +768,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { }, [storeActions]); const shuffleAll = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].shuffleAll, { + logFn.debug('Shuffle all', { category: LogCategory.PLAYER, }); @@ -778,7 +777,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { const shuffleSelected = useCallback( (items: QueueSong[]) => { - logFn.debug(logMsg[LogCategory.PLAYER].shuffleSelected, { + logFn.debug('Shuffle selected', { category: LogCategory.PLAYER, meta: { items }, }); @@ -789,7 +788,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { ); const toggleRepeat = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].toggleRepeat, { + logFn.debug('Toggle repeat', { category: LogCategory.PLAYER, }); @@ -797,7 +796,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => { }, [storeActions]); const toggleShuffle = useCallback(() => { - logFn.debug(logMsg[LogCategory.PLAYER].toggleShuffle, { + logFn.debug('Toggle shuffle', { category: LogCategory.PLAYER, }); diff --git a/src/renderer/features/player/hooks/use-auto-dj.ts b/src/renderer/features/player/hooks/use-auto-dj.ts index 864142d52..003b8e889 100644 --- a/src/renderer/features/player/hooks/use-auto-dj.ts +++ b/src/renderer/features/player/hooks/use-auto-dj.ts @@ -16,7 +16,6 @@ import { useSettingsStore, } from '/@/renderer/store'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; import { shuffleInPlace } from '/@/renderer/utils/shuffle'; import { hasFeature } from '/@/shared/api/utils'; import { Played, Song, SongListSort, SortOrder } from '/@/shared/types/domain-types'; @@ -63,7 +62,7 @@ export const useAutoDJ = () => { return; } - logFn.debug(logMsg[LogCategory.PLAYER].autoPlayTriggered, { + logFn.debug('Auto play triggered', { category: LogCategory.PLAYER, meta: { remaining: properties.remaining, songId: properties.song?.id }, }); @@ -207,7 +206,7 @@ export const useAutoDJ = () => { songCount: songsToAdd.length, }); } catch (error) { - logFn.error(logMsg[LogCategory.PLAYER].autoPlayFailed, { + logFn.error('Auto play failed', { category: LogCategory.PLAYER, meta: { error: (error as Error).message, songId: properties.song?.id }, }); diff --git a/src/renderer/features/player/hooks/use-scrobble.ts b/src/renderer/features/player/hooks/use-scrobble.ts index 3601f3eae..d1dd6dbed 100644 --- a/src/renderer/features/player/hooks/use-scrobble.ts +++ b/src/renderer/features/player/hooks/use-scrobble.ts @@ -12,7 +12,6 @@ import { useTimestampStoreBase, } from '/@/renderer/store'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; import { LibraryItem, QueueSong, ServerType } from '/@/shared/types/domain-types'; import { PlayerStatus } from '/@/shared/types/types'; @@ -131,7 +130,7 @@ export const useScrobble = () => { }, { onSuccess: () => { - logFn.debug(logMsg[LogCategory.SCROBBLE].scrobbledTimeupdate, { + logFn.debug('Scrobbled a timeupdate event', { category: LogCategory.SCROBBLE, meta: { id: currentSong.id, @@ -173,7 +172,7 @@ export const useScrobble = () => { }, { onSuccess: () => { - logFn.debug(logMsg[LogCategory.SCROBBLE].scrobbledSubmission, { + logFn.debug('Scrobbled a submission event', { category: LogCategory.SCROBBLE, meta: { id: currentSong.id, @@ -257,7 +256,7 @@ export const useScrobble = () => { }, { onSuccess: () => { - logFn.debug(logMsg[LogCategory.SCROBBLE].scrobbledStart, { + logFn.debug('Scrobbled a start event', { category: LogCategory.SCROBBLE, meta: { id: currentSong.id, @@ -319,7 +318,7 @@ export const useScrobble = () => { }, { onSuccess: () => { - logFn.debug(logMsg[LogCategory.SCROBBLE].scrobbledTimeupdate, { + logFn.debug('Scrobbled a timeupdate event', { category: LogCategory.SCROBBLE, meta: { id: currentSong.id, @@ -367,7 +366,7 @@ export const useScrobble = () => { }, { onSuccess: () => { - logFn.debug(logMsg[LogCategory.SCROBBLE].scrobbledPause, { + logFn.debug('Scrobbled a pause event', { category: LogCategory.SCROBBLE, meta: { id: currentSong.id, @@ -393,7 +392,7 @@ export const useScrobble = () => { }, { onSuccess: () => { - logFn.debug(logMsg[LogCategory.SCROBBLE].scrobbledUnpause, { + logFn.debug('Scrobbled an unpause event', { category: LogCategory.SCROBBLE, meta: { id: currentSong.id, @@ -436,7 +435,7 @@ export const useScrobble = () => { }, { onSuccess: () => { - logFn.debug(logMsg[LogCategory.SCROBBLE].scrobbledStart, { + logFn.debug('Scrobbled a start event', { category: LogCategory.SCROBBLE, meta: { id: currentSong.id, diff --git a/src/renderer/features/player/utils.ts b/src/renderer/features/player/utils.ts index 3119bf704..147e305c8 100644 --- a/src/renderer/features/player/utils.ts +++ b/src/renderer/features/player/utils.ts @@ -5,7 +5,6 @@ import { queryKeys } from '/@/renderer/api/query-keys'; import { folderQueries } from '/@/renderer/features/folders/api/folder-api'; import { PlayerFilter, useSettingsStore } from '/@/renderer/store'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; import { sortSongList } from '/@/shared/api/utils'; import { PlaylistSongListQuery, @@ -434,7 +433,7 @@ export const filterSongsByPlayerFilters = (songs: Song[], filters: PlayerFilter[ }); if (filteredSongs.length > 0) { - logFn.debug(logMsg[LogCategory.PLAYER].playerFiltersApplied, { + logFn.debug('Player filters applied', { category: LogCategory.PLAYER, meta: { filteredCount: filteredSongs.length, diff --git a/src/renderer/features/radio/components/edit-radio-station-form.tsx b/src/renderer/features/radio/components/edit-radio-station-form.tsx index a9c809c62..bfe3393bd 100644 --- a/src/renderer/features/radio/components/edit-radio-station-form.tsx +++ b/src/renderer/features/radio/components/edit-radio-station-form.tsx @@ -4,8 +4,7 @@ import { useTranslation } from 'react-i18next'; import { useUpdateRadioStation } from '/@/renderer/features/radio/mutations/update-radio-station-mutation'; import { useCurrentServer } from '/@/renderer/store'; -import { logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; +import { LogCategory, logFn } from '/@/renderer/utils/logger'; import { Group } from '/@/shared/components/group/group'; import { closeAllModals, openModal } from '/@/shared/components/modal/modal'; import { ModalButton } from '/@/shared/components/modal/model-shared'; @@ -48,9 +47,10 @@ export const EditRadioStationForm = ({ onCancel, station }: EditRadioStationForm }, { onError: (error) => { - logFn.error(logMsg.other.error, { - meta: { error: error as Error }, - }); + logFn.error('An error occurred', { + category: LogCategory.OTHER, + meta: { error: error as Error }, + }); toast.error({ message: (error as Error).message, diff --git a/src/renderer/features/remote/hooks/use-remote.tsx b/src/renderer/features/remote/hooks/use-remote.tsx index 4d4d32d8d..65601cdf2 100644 --- a/src/renderer/features/remote/hooks/use-remote.tsx +++ b/src/renderer/features/remote/hooks/use-remote.tsx @@ -8,7 +8,6 @@ import { useCreateFavorite } from '/@/renderer/features/shared/mutations/create- import { useDeleteFavorite } from '/@/renderer/features/shared/mutations/delete-favorite-mutation'; import { usePlayerActions, usePlayerStore, useRemoteSettings } from '/@/renderer/store'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; import { toast } from '/@/shared/components/toast/toast'; import { LibraryItem } from '/@/shared/types/domain-types'; import { PlayerShuffle } from '/@/shared/types/types'; @@ -33,7 +32,7 @@ export const useRemote = () => { return; } - logFn.debug(logMsg[LogCategory.REMOTE].initializingRemoteSettings, { + logFn.debug('Initializing remote settings', { category: LogCategory.REMOTE, meta: { enabled: remoteSettings.enabled, @@ -50,7 +49,7 @@ export const useRemote = () => { remoteSettings.password, ) .catch((error) => { - logFn.error(logMsg[LogCategory.REMOTE].failedToEnableRemote, { + logFn.error('Failed to enable remote', { category: LogCategory.REMOTE, meta: { error }, }); @@ -66,7 +65,7 @@ export const useRemote = () => { } remote.requestPosition((_e: unknown, data: { position: number }) => { - logFn.debug(logMsg[LogCategory.REMOTE].requestPositionReceived, { + logFn.debug('Request position received', { category: LogCategory.REMOTE, meta: { position: data.position }, }); @@ -75,7 +74,7 @@ export const useRemote = () => { }); remote.requestSeek((_e: unknown, data: { offset: number }) => { - logFn.debug(logMsg[LogCategory.REMOTE].requestSeekReceived, { + logFn.debug('Request seek received', { category: LogCategory.REMOTE, meta: { offset: data.offset }, }); @@ -84,7 +83,7 @@ export const useRemote = () => { remote.requestRating( (_e: unknown, data: { id: string; rating: number; serverId: string }) => { - logFn.debug(logMsg[LogCategory.REMOTE].requestRatingReceived, { + logFn.debug('Request rating received', { category: LogCategory.REMOTE, meta: { id: data.id, rating: data.rating, serverId: data.serverId }, }); @@ -93,7 +92,7 @@ export const useRemote = () => { ); remote.requestVolume((_e: unknown, data: { volume: number }) => { - logFn.debug(logMsg[LogCategory.REMOTE].requestVolumeReceived, { + logFn.debug('Request volume received', { category: LogCategory.REMOTE, meta: { volume: data.volume }, }); @@ -102,7 +101,7 @@ export const useRemote = () => { remote.requestFavorite( (_e: unknown, data: { favorite: boolean; id: string; serverId: string }) => { - logFn.debug(logMsg[LogCategory.REMOTE].requestFavoriteReceived, { + logFn.debug('Request favorite received', { category: LogCategory.REMOTE, meta: { favorite: data.favorite, id: data.id, serverId: data.serverId }, }); @@ -148,7 +147,7 @@ export const useRemote = () => { const currentSong = player.getCurrentSong(); if (currentSong) { - logFn.debug(logMsg[LogCategory.REMOTE].sendingInitialSong, { + logFn.debug('Sending initial song', { category: LogCategory.REMOTE, meta: { artistName: currentSong.artistName, @@ -178,7 +177,7 @@ export const useRemote = () => { return; } - logFn.debug(logMsg[LogCategory.REMOTE].updateSongSent, { + logFn.debug('Update song sent', { category: LogCategory.REMOTE, meta: { artistName: properties.song?.artistName, @@ -209,7 +208,7 @@ export const useRemote = () => { return; } - logFn.debug(logMsg[LogCategory.REMOTE].updatePositionSent, { + logFn.debug('Update position sent', { category: LogCategory.REMOTE, meta: { timestamp: properties.timestamp }, }); @@ -220,7 +219,7 @@ export const useRemote = () => { return; } - logFn.debug(logMsg[LogCategory.REMOTE].updateRepeatSent, { + logFn.debug('Update repeat sent', { category: LogCategory.REMOTE, meta: { repeat: properties.repeat }, }); @@ -232,7 +231,7 @@ export const useRemote = () => { } const isShuffleEnabled = properties.shuffle !== PlayerShuffle.NONE; - logFn.debug(logMsg[LogCategory.REMOTE].updateShuffleSent, { + logFn.debug('Update shuffle sent', { category: LogCategory.REMOTE, meta: { isShuffleEnabled, shuffle: properties.shuffle }, }); @@ -243,7 +242,7 @@ export const useRemote = () => { return; } - logFn.debug(logMsg[LogCategory.REMOTE].updatePlaybackSent, { + logFn.debug('Update playback sent', { category: LogCategory.REMOTE, meta: { status: properties.status }, }); @@ -254,7 +253,7 @@ export const useRemote = () => { return; } - logFn.debug(logMsg[LogCategory.REMOTE].updateVolumeSent, { + logFn.debug('Update volume sent', { category: LogCategory.REMOTE, meta: { volume: properties.volume }, }); @@ -265,7 +264,7 @@ export const useRemote = () => { return; } - logFn.debug(logMsg[LogCategory.REMOTE].updateFavoriteSent, { + logFn.debug('Update favorite sent', { category: LogCategory.REMOTE, meta: { favorite: properties.favorite, @@ -280,7 +279,7 @@ export const useRemote = () => { return; } - logFn.debug(logMsg[LogCategory.REMOTE].updateRatingSent, { + logFn.debug('Update rating sent', { category: LogCategory.REMOTE, meta: { id: properties.id, diff --git a/src/renderer/hooks/use-server-authenticated.ts b/src/renderer/hooks/use-server-authenticated.ts index b7a005112..cae8ebf54 100644 --- a/src/renderer/hooks/use-server-authenticated.ts +++ b/src/renderer/hooks/use-server-authenticated.ts @@ -10,7 +10,6 @@ import { controller } from '/@/renderer/api/controller'; import { AppRoute } from '/@/renderer/router/routes'; import { getServerById, useAuthStoreActions, useCurrentServer } from '/@/renderer/store'; import { LogCategory, logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; import { toast } from '/@/shared/components/toast/toast'; import { AuthState } from '/@/shared/types/types'; @@ -62,7 +61,7 @@ export const useServerAuthenticated = () => { } // First, try getUserInfo to check if current credentials are still valid - logFn.info(logMsg[LogCategory.SYSTEM].authenticatingServer, { + logFn.info('Authenticating server', { category: LogCategory.SYSTEM, meta: { method: 'getUserInfo', @@ -117,7 +116,7 @@ export const useServerAuthenticated = () => { } } catch (serverInfoError) { // Log but don't fail authentication if server info fetch fails - logFn.warn(logMsg[LogCategory.SYSTEM].serverAuthenticationSuccess, { + logFn.warn('Server authentication successful', { category: LogCategory.SYSTEM, meta: { action: 'server_info_fetch_failed', @@ -128,7 +127,7 @@ export const useServerAuthenticated = () => { }); } - logFn.info(logMsg[LogCategory.SYSTEM].serverAuthenticationSuccess, { + logFn.info('Server authentication successful', { category: LogCategory.SYSTEM, meta: { isAdmin: userInfo.isAdmin, @@ -162,7 +161,7 @@ export const useServerAuthenticated = () => { const password = await localSettings.passwordGet(serverWithAuth.id); if (password) { - logFn.info(logMsg[LogCategory.SYSTEM].authenticatingServer, { + logFn.info('Authenticating server', { category: LogCategory.SYSTEM, meta: { method: 'authenticate', @@ -227,7 +226,7 @@ export const useServerAuthenticated = () => { } } catch (serverInfoError) { // Log but don't fail authentication if server info fetch fails - logFn.warn(logMsg[LogCategory.SYSTEM].serverAuthenticationSuccess, { + logFn.warn('Server authentication successful', { category: LogCategory.SYSTEM, meta: { action: 'server_info_fetch_failed', @@ -238,7 +237,7 @@ export const useServerAuthenticated = () => { }); } - logFn.info(logMsg[LogCategory.SYSTEM].serverAuthenticationSuccess, { + logFn.info('Server authentication successful', { category: LogCategory.SYSTEM, meta: { isAdmin: authData.isAdmin, @@ -275,7 +274,7 @@ export const useServerAuthenticated = () => { if (isNetwork && retryAttempt < MAX_NETWORK_RETRIES) { const nextRetry = retryAttempt + 1; - logFn.warn(logMsg[LogCategory.SYSTEM].serverAuthenticationFailed, { + logFn.warn('Server authentication failed', { category: LogCategory.SYSTEM, meta: { action: 'network_error_retry', @@ -298,7 +297,7 @@ export const useServerAuthenticated = () => { // If network error and retries exhausted, redirect to no-network page if (isNetwork && retryAttempt >= MAX_NETWORK_RETRIES) { - logFn.error(logMsg[LogCategory.SYSTEM].serverAuthenticationFailed, { + logFn.error('Server authentication failed', { category: LogCategory.SYSTEM, meta: { action: 'network_error_max_retries_exceeded', @@ -317,7 +316,7 @@ export const useServerAuthenticated = () => { } // For non-network errors, handle normally - logFn.error(logMsg[LogCategory.SYSTEM].serverAuthenticationFailed, { + logFn.error('Server authentication failed', { category: LogCategory.SYSTEM, meta: { error: errorMessage, @@ -353,7 +352,7 @@ export const useServerAuthenticated = () => { useEffect(() => { if (!server) { - logFn.debug(logMsg[LogCategory.SYSTEM].serverAuthenticationInvalid, { + logFn.debug('Server authentication invalid', { category: LogCategory.SYSTEM, meta: { reason: 'No server selected', @@ -369,7 +368,7 @@ export const useServerAuthenticated = () => { retryCountRef.current = 0; // Reset retry count when server changes if (!serverWithAuth) { - logFn.error(logMsg[LogCategory.SYSTEM].serverAuthenticationError, { + logFn.error('Server authentication error', { category: LogCategory.SYSTEM, meta: { reason: 'Server not found in store', diff --git a/src/renderer/hooks/use-sync-settings-to-main.ts b/src/renderer/hooks/use-sync-settings-to-main.ts index bb61aa846..d58788ed5 100644 --- a/src/renderer/hooks/use-sync-settings-to-main.ts +++ b/src/renderer/hooks/use-sync-settings-to-main.ts @@ -4,8 +4,7 @@ import { useEffect, useRef } from 'react'; import i18n from '/@/i18n/i18n'; import { openRestartRequiredToast } from '/@/renderer/features/settings/restart-toast'; import { useSettingsStore } from '/@/renderer/store/settings.store'; -import { logFn } from '/@/renderer/utils/logger'; -import { logMsg } from '/@/renderer/utils/logger-message'; +import { LogCategory, logFn } from '/@/renderer/utils/logger'; // Synchronizes settings from the renderer store to the main process electron store // on app initialization. If there are differences, it updates the main store and shows @@ -120,7 +119,8 @@ export const useSyncSettingsToMain = () => { JSON.stringify(rendererValueNormalized) ) { hasDifferences = true; - logFn.warn(logMsg.system.settingsSynchronized, { + logFn.warn('Differences found between renderer and main process settings', { + category: LogCategory.SYSTEM, meta: { mainStoreKey: mapping.mainStoreKey, mainValue: mainValueNormalized, diff --git a/src/renderer/utils/logger-message.ts b/src/renderer/utils/logger-message.ts deleted file mode 100644 index b3373b84a..000000000 --- a/src/renderer/utils/logger-message.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { LogCategory } from '/@/renderer/utils/logger'; - -export const logMsg = { - [LogCategory.ANALYTICS]: { - appTracked: 'Analytics sent', - pageViewTracked: 'Page view tracked', - }, - [LogCategory.API]: {}, - [LogCategory.EXTERNAL]: { - discordRpcActivityCleared: 'Activity was cleared for Discord RPC', - discordRpcInitialized: 'Discord RPC was initialized', - discordRpcQuit: 'Discord RPC was quit', - discordRpcSetActivity: 'Activity was set for Discord RPC', - discordRpcTrackChanged: 'Track was changed for Discord RPC', - discordRpcUpdateSkipped: 'Activity was not updated for Discord RPC', - }, - [LogCategory.OTHER]: { - error: 'An error occurred', - warning: 'A warning occurred', - }, - [LogCategory.PLAYER]: { - addToQueueByData: 'Added to queue by data', - addToQueueByFetch: 'Added to queue by fetch', - addToQueueByListQuery: 'Added to queue by list query', - addToQueueByType: 'Added to queue by type', - autoPlayFailed: 'Auto play failed', - autoPlayTriggered: 'Auto play triggered', - cancelledFetch: 'Cancelled fetch', - clearQueue: 'Cleared queue', - clearSelected: 'Cleared selected', - decreaseVolume: 'Decreased volume', - increaseVolume: 'Increased volume', - mediaNext: 'Media next', - mediaPause: 'Media pause', - mediaPlay: 'Media play', - mediaPlayByIndex: 'Media play by index', - mediaPrevious: 'Media previous', - mediaSeekToTimestamp: 'Media seek to timestamp', - mediaSkipBackward: 'Media skip backward', - mediaSkipForward: 'Media skip forward', - mediaStop: 'Media stop', - mediaToggleMute: 'Media toggle mute', - mediaTogglePlayPause: 'Media toggle play pause', - moveSelectedTo: 'Moved selected to', - moveSelectedToBottom: 'Moved selected to bottom', - moveSelectedToNext: 'Moved selected to next', - moveSelectedToTop: 'Moved selected to top', - playbackError: 'An error occurred during playback', - playerFiltersApplied: 'Player filters applied', - setFavorite: 'Set favorite', - setQueue: 'Set queue', - setRating: 'Set rating', - setRepeat: 'Set repeat', - setShuffle: 'Set shuffle', - setSpeed: 'Set speed', - setVolume: 'Set volume', - shuffle: 'Shuffle', - shuffleAll: 'Shuffle all', - shuffleSelected: 'Shuffle selected', - toggleRepeat: 'Toggle repeat', - toggleShuffle: 'Toggle shuffle', - }, - [LogCategory.REMOTE]: { - cannotSendEvent: 'Cannot send event - socket not available', - closingExistingSocket: 'Closing existing socket', - creatingWebSocket: 'Creating new WebSocket', - credentialsFetched: 'Credentials fetched', - failedToEnableRemote: 'Failed to enable remote', - failedToGetCredentials: 'Failed to get credentials', - favoriteEventReceived: 'Favorite event received', - fetchingCredentials: 'Fetching credentials', - initializingRemoteSettings: 'Initializing remote settings', - playbackEventReceived: 'Playback event received', - positionEventReceived: 'Position event received', - proxyEventReceived: 'Proxy event received (image update)', - ratingEventReceived: 'Rating event received', - reconnectInitiated: 'Reconnect initiated', - reloadingPage: 'Reloading page due to close code', - repeatEventReceived: 'Repeat event received', - requestFavoriteReceived: 'Request favorite received', - requestPositionReceived: 'Request position received', - requestRatingReceived: 'Request rating received', - requestSeekReceived: 'Request seek received', - requestVolumeReceived: 'Request volume received', - sendingAuthentication: 'Sending authentication', - sendingEventToServer: 'Sending event to server', - sendingInitialSong: 'Sending initial song', - serverIsDown: 'Server is down', - shuffleEventReceived: 'Shuffle event received', - socketClosedUnexpectedly: 'Socket closed unexpectedly', - songEventReceived: 'Song event received', - stateEventReceived: 'State event received (full state update)', - updateFavoriteSent: 'Update favorite sent', - updatePlaybackSent: 'Update playback sent', - updatePositionSent: 'Update position sent', - updateRatingSent: 'Update rating sent', - updateRepeatSent: 'Update repeat sent', - updateShuffleSent: 'Update shuffle sent', - updateSongSent: 'Update song sent', - updateVolumeSent: 'Update volume sent', - volumeEventReceived: 'Volume event received', - webSocketClosed: 'WebSocket closed', - webSocketErrorEvent: 'WebSocket error event', - webSocketMessageReceived: 'WebSocket message received', - webSocketOpened: 'WebSocket opened', - }, - [LogCategory.SCROBBLE]: { - scrobbledPause: 'Scrobbled a pause event', - scrobbledStart: 'Scrobbled a start event', - scrobbledSubmission: 'Scrobbled a submission event', - scrobbledTimeupdate: 'Scrobbled a timeupdate event', - scrobbledUnpause: 'Scrobbled an unpause event', - }, - [LogCategory.SYSTEM]: { - authenticatingServer: 'Authenticating server', - serverAuthenticationAborted: 'Server authentication aborted', - serverAuthenticationError: 'Server authentication error', - serverAuthenticationFailed: 'Server authentication failed', - serverAuthenticationInvalid: 'Server authentication invalid', - serverAuthenticationSuccess: 'Server authentication successful', - settingsSynchronized: 'Differences found between renderer and main process settings', - }, -};