mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-22 07:15:47 +00:00
ddf10ee01d
* feat(genres): genre detail browse via local index with aligned counts Move genre detail albums/play/shuffle onto the local library index with Albums-style in-page scroll, session restore, and genre-scoped stash. Unify genre album totals between the cloud and detail pages via library_get_genre_album_counts, and fix grouped browse totals to count distinct albums rather than matching tracks. * perf(genres): local genre browse with scoped counts cache Add dedicated Rust genre album pagination and indexes, slice-mode grid loading, library-filter-aware counts, and a long-lived in-memory catalog cache invalidated on sync so genre pages avoid repeated full-library SQL. * fix(genres): restore scroll after album back; play hold-to-shuffle Pin restore display count in refs so clearing the return stash no longer reloads the genre grid mid-restore. Load the first SQL page only (60 rows), use long-press on Play for shuffle, and add genre play tooltips. * fix(genres): fall back to Subsonic byGenre when local index unavailable Genre detail album grid now matches All Albums: try library_list_albums_by_genre first, then getAlbumsByGenre when the index is off, not ready, or errors. * docs: add CHANGELOG and credits for PR #937
47 lines
1.4 KiB
Rust
47 lines
1.4 KiB
Rust
//! `psysonic-library` — unified track store and (future) sync engine.
|
|
//!
|
|
//! v1 scope (this crate, across PR-1..PR-7):
|
|
//! - `store` — SQLite connection, WAL config, versioned migration runner
|
|
//! - `repos` — typed repositories over the v1 schema (track, album, artist, …)
|
|
//! - `search` — FTS5 query helpers
|
|
//! - `filter` — `FilterFieldRegistry` (Rust source of truth for Advanced Search)
|
|
//! - `sync` — capability probe + orchestrator (PR-3*)
|
|
|
|
pub(crate) mod bulk_ingest;
|
|
pub mod advanced_search;
|
|
pub mod album_compilation_filter;
|
|
pub mod browse_support;
|
|
mod advanced_search_mood;
|
|
pub mod analysis_backfill;
|
|
pub mod analysis_backfill_policy;
|
|
pub mod library_readiness;
|
|
pub mod artist_lossless_browse;
|
|
pub mod cover_backfill;
|
|
pub mod cover_resolve;
|
|
pub mod canonical;
|
|
pub mod commands;
|
|
pub mod cross_server;
|
|
pub mod dto;
|
|
pub mod enrichment;
|
|
pub mod filter;
|
|
pub mod genre_album_browse;
|
|
pub mod mood_groups;
|
|
pub mod live_search;
|
|
pub mod lossless_albums;
|
|
pub mod lossless_formats;
|
|
pub mod payload;
|
|
pub mod repos;
|
|
pub mod runtime;
|
|
pub mod search;
|
|
pub mod store;
|
|
pub mod sync;
|
|
pub(crate) mod track_fts;
|
|
|
|
pub use payload::LibrarySyncProgressPayload;
|
|
pub use runtime::LibraryRuntime;
|
|
|
|
pub use store::{LibraryStore, LIBRARY_DB_SCHEMA_VERSION};
|
|
|
|
// Re-export logging facade so submodules can write `crate::app_eprintln!()`.
|
|
pub use psysonic_core::{app_deprintln, app_eprintln, logging};
|