Files
Psychotoxical-psysonic/src-tauri/crates/psysonic-integration/src/lib.rs
T
Psychotoxical 98d8ea6353 refactor: extract psysonic-integration crate (M5/7)
Moves all outbound external-service bridges out of the top crate into a
new psysonic-integration crate.

  crates/psysonic-integration/
    src/discord.rs                     Rich Presence + iTunes artwork
    src/navidrome/{client,covers,...}  Native REST API admin (5 modules)
    src/remote.rs                      radio-browser, last.fm, ICY meta,
                                       generic CORS proxy (fetch_url_bytes
                                       / fetch_json_url / resolve_stream_url)
    src/bandsintown.rs                 events for an artist
    src/lib.rs                         module declarations + macro re-exports

Top crate keeps `crate::discord` working via
`pub use psysonic_integration::discord;`.

invoke_handler! in lib.rs uses full deepest paths
(`psysonic_integration::navidrome::users::nd_list_users`, etc.) so
Tauri's `__cmd__*` magic macros resolve at the right module — same
pattern audio + syncfs already use.

Cross-crate refs migrated:
  crate::subsonic_wire_user_agent → psysonic_core::user_agent::*
  pub(crate) → pub                  (cross-crate visibility)

Behaviour preserving. Cargo check + clippy --workspace clean.
2026-05-09 13:51:28 +02:00

18 lines
736 B
Rust

//! `psysonic-integration` — outbound bridges to external services that the
//! UI surfaces but the WebView can't talk to directly (CORS, custom auth, etc.).
//!
//! Domains:
//! - `discord` — Discord Rich Presence (album artwork via iTunes)
//! - `navidrome` — Navidrome's native REST API (admin: users/playlists/covers/queries)
//! - `remote` — radio-browser, last.fm, ICY-meta probe, generic CORS proxy
//! - `bandsintown` — bandsintown events for an artist
// Re-export the logging facade so submodules keep using
// `crate::app_eprintln!()` and `crate::app_deprintln!()`.
pub use psysonic_core::{app_deprintln, app_eprintln, logging};
pub mod bandsintown;
pub mod discord;
pub mod navidrome;
pub mod remote;