feat(library): local lossless index, filters, and conserve dedicated page (#871)

* feat(library): local lossless index, filters, and conserve dedicated page

Add SQLite-backed lossless album browse and advanced-search filtering,
wire All Albums and artist/album lossless drill-down mode, and hide the
standalone /lossless-albums nav entry from sidebar visibility settings
(conserved route, default off).

* docs(release): note lossless local index in CHANGELOG and credits (PR #871)
This commit is contained in:
cucadmuh
2026-05-27 00:02:46 +03:00
committed by GitHub
parent 418b25914a
commit a8cfff0b62
65 changed files with 1615 additions and 138 deletions
+6
View File
@@ -14,6 +14,9 @@ export const albums = {
compilationTooltipAll: 'All albums · click: only compilations',
compilationTooltipOnly: 'Only compilations · click: hide compilations',
compilationTooltipHide: 'Compilations hidden · click: show all',
losslessLabel: 'Lossless',
losslessTooltipOn: 'Lossless albums only · click to show all',
losslessTooltipOff: 'Show lossless albums only',
select: 'Multi-select',
startSelect: 'Enable multi-select',
cancelSelect: 'Cancel',
@@ -29,4 +32,7 @@ export const albums = {
downloadZipFailed: 'Failed to download {{name}}',
offlineQueuing: 'Queuing {{count}} album(s) for offline…',
offlineFailed: 'Failed to add {{name}} offline',
noFavorites: 'No favorite albums match the current filters.',
noCompilations: 'No compilations match the current filters.',
noMatchingFilters: 'No albums match the current filters.',
};
+2
View File
@@ -10,7 +10,9 @@ export const artistDetail = {
noRadio: 'No similar tracks found for this artist.',
notFound: 'Artist not found.',
albumsBy: 'Albums by {{name}}',
albumsByLossless: 'Lossless albums by {{name}}',
topTracks: 'Top Tracks',
topTracksLossless: 'Lossless Tracks',
noAlbums: 'No albums found.',
trackTitle: 'Title',
trackAlbum: 'Album',
+2
View File
@@ -2,4 +2,6 @@ export const losslessAlbums = {
empty: 'No lossless albums in this library yet.',
unsupported: 'This server does not expose the metadata needed to find lossless albums.',
slowFetchHint: 'Loads slower than other album pages — Psysonic walks the full song catalog by quality.',
modeBanner: 'Lossless mode — showing FLAC, WAV, and other lossless formats only.',
modeBannerExit: 'Show all formats',
};
+2 -1
View File
@@ -23,8 +23,9 @@ export const search = {
advancedYearFrom: 'from',
advancedYearTo: 'to',
advancedBpm: 'BPM',
advancedBpmLocalNote: 'Measured analysis BPM takes priority over file tags when the local index is enabled',
advancedBpmClear: 'Clear BPM filter',
advancedLossless: 'Format',
advancedLosslessOnly: 'Lossless only',
bpmSourceTag: 'BPM from file tag',
bpmSourceAnalysis: 'BPM from audio analysis',
advancedMoodGroup: 'Mood',