diff --git a/.env.example b/.env.example deleted file mode 100644 index 1c0b457..0000000 --- a/.env.example +++ /dev/null @@ -1,25 +0,0 @@ -# Monochrome Docker Configuration -# Copy to .env and edit: cp .env.example .env - -# Monochrome -MONOCHROME_PORT=3000 -MONOCHROME_DEV_PORT=5173 - -# Auth Gate (server-side authentication) -# Set AUTH_ENABLED=true to enable the auth gate entirely (login required) -AUTH_ENABLED=false -AUTH_SECRET=change-me-to-a-random-string -APPWRITE_ENDPOINT=https://auth.yourdomain.com/v1 -APPWRITE_PROJECT_ID=auth-for-monochrome -# Optional: toggle login providers (defaults to true when unset) -# AUTH_GOOGLE_ENABLED=true -# AUTH_EMAIL_ENABLED=true -# Optional: set PocketBase URL (hides the field in settings when set) -# POCKETBASE_URL=https://data.samidy.xyz -# SESSION_MAX_AGE=604800000 # 7 days in ms (default) - -# PocketBase (only used with --profile pocketbase) -POCKETBASE_PORT=8090 -PB_ADMIN_EMAIL=admin@example.com -PB_ADMIN_PASSWORD=changeme -TZ=UTC diff --git a/index.html b/index.html index cdffad8..9b75ccd 100644 --- a/index.html +++ b/index.html @@ -690,8 +690,15 @@ diff --git a/js/settings.js b/js/settings.js index 6f1db15..19333ec 100644 --- a/js/settings.js +++ b/js/settings.js @@ -32,6 +32,7 @@ import { pwaUpdateSettings, contentBlockingSettings, musicProviderSettings, + gaplessPlaybackSettings, analyticsSettings, modalSettings, } from './storage.js'; @@ -980,6 +981,14 @@ export function initializeSettings(scrobbler, player, api, ui) { }); } + const gaplessPlaybackToggle = document.getElementById('gapless-playback-toggle'); + if (gaplessPlaybackToggle) { + gaplessPlaybackToggle.checked = gaplessPlaybackSettings.isEnabled(); + gaplessPlaybackToggle.addEventListener('change', (e) => { + gaplessPlaybackSettings.setEnabled(e.target.checked); + }); + } + // ReplayGain Settings const replayGainMode = document.getElementById('replay-gain-mode'); if (replayGainMode) { diff --git a/js/storage.js b/js/storage.js index 6aaff65..2b711f8 100644 --- a/js/storage.js +++ b/js/storage.js @@ -488,6 +488,23 @@ export const nowPlayingSettings = { }, }; +export const gaplessPlaybackSettings = { + STORAGE_KEY: 'gapless-playback-enabled', + + isEnabled() { + try { + const val = localStorage.getItem(this.STORAGE_KEY); + return val === null ? true : val === 'true'; + } catch { + return true; + } + }, + + setEnabled(enabled) { + localStorage.setItem(this.STORAGE_KEY, enabled ? 'true' : 'false'); + }, +}; + export const fullscreenCoverClickSettings = { STORAGE_KEY: 'fullscreen-cover-click-action',