Files
Psychotoxical-psysonic/src-tauri/src/lib_commands/app_api/mod.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

32 lines
1.2 KiB
Rust

mod analysis;
mod cli_bridge;
mod core;
mod integration;
mod perf;
mod platform;
// Tauri commands re-exported for the lib.rs invoke_handler.
pub(crate) use cli_bridge::{
cli_publish_library_list, cli_publish_player_snapshot, cli_publish_search_results,
cli_publish_server_list,
};
pub(crate) use core::{
exit_app, export_runtime_logs, frontend_debug_log, greet, set_logging_mode,
set_subsonic_wire_user_agent,
};
pub(crate) use perf::performance_cpu_snapshot;
pub(crate) use platform::{set_linux_webkit_smooth_scrolling, set_window_decorations};
pub(crate) use integration::{
check_dir_accessible, mpris_set_metadata, mpris_set_playback, register_global_shortcut,
unregister_global_shortcut,
};
pub(crate) use analysis::{
analysis_delete_all_waveforms, analysis_delete_loudness_for_track,
analysis_enqueue_seed_from_url, analysis_get_loudness_for_track, analysis_get_waveform,
analysis_get_waveform_for_track, analysis_prune_pending_to_track_ids,
};
// Discord, Navidrome admin, last.fm + radio-browser + CORS proxy, bandsintown
// now live in `psysonic_integration`. invoke_handler! in lib.rs registers
// them with their full paths so Tauri's `__cmd__*` macros resolve correctly.