mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-21 22:15:40 +00:00
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.
This commit is contained in:
+32
-31
@@ -2,9 +2,10 @@
|
||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
|
||||
|
||||
pub mod cli;
|
||||
mod discord;
|
||||
mod lib_commands;
|
||||
|
||||
pub use psysonic_integration::discord;
|
||||
|
||||
pub use psysonic_core::logging;
|
||||
pub use psysonic_core::{app_eprintln, app_deprintln};
|
||||
pub use psysonic_core::user_agent::{
|
||||
@@ -391,35 +392,35 @@ pub fn run() {
|
||||
audio::device_commands::audio_default_output_device_name,
|
||||
audio::device_commands::audio_set_device,
|
||||
audio::commands::audio_chain_preload,
|
||||
discord::discord_update_presence,
|
||||
discord::discord_clear_presence,
|
||||
lastfm_request,
|
||||
upload_playlist_cover,
|
||||
upload_radio_cover,
|
||||
upload_artist_image,
|
||||
delete_radio_cover,
|
||||
navidrome_login,
|
||||
nd_list_users,
|
||||
nd_create_user,
|
||||
nd_update_user,
|
||||
nd_delete_user,
|
||||
nd_list_libraries,
|
||||
nd_list_songs,
|
||||
nd_list_artists_by_role,
|
||||
nd_list_albums_by_artist_role,
|
||||
nd_set_user_libraries,
|
||||
nd_list_playlists,
|
||||
nd_create_playlist,
|
||||
nd_update_playlist,
|
||||
nd_get_playlist,
|
||||
nd_delete_playlist,
|
||||
nd_get_song_path,
|
||||
search_radio_browser,
|
||||
get_top_radio_stations,
|
||||
fetch_url_bytes,
|
||||
fetch_json_url,
|
||||
fetch_icy_metadata,
|
||||
resolve_stream_url,
|
||||
psysonic_integration::discord::discord_update_presence,
|
||||
psysonic_integration::discord::discord_clear_presence,
|
||||
psysonic_integration::remote::lastfm_request,
|
||||
psysonic_integration::navidrome::covers::upload_playlist_cover,
|
||||
psysonic_integration::navidrome::covers::upload_radio_cover,
|
||||
psysonic_integration::navidrome::covers::upload_artist_image,
|
||||
psysonic_integration::navidrome::covers::delete_radio_cover,
|
||||
psysonic_integration::navidrome::users::navidrome_login,
|
||||
psysonic_integration::navidrome::users::nd_list_users,
|
||||
psysonic_integration::navidrome::users::nd_create_user,
|
||||
psysonic_integration::navidrome::users::nd_update_user,
|
||||
psysonic_integration::navidrome::users::nd_delete_user,
|
||||
psysonic_integration::navidrome::queries::nd_list_libraries,
|
||||
psysonic_integration::navidrome::queries::nd_list_songs,
|
||||
psysonic_integration::navidrome::queries::nd_list_artists_by_role,
|
||||
psysonic_integration::navidrome::queries::nd_list_albums_by_artist_role,
|
||||
psysonic_integration::navidrome::queries::nd_set_user_libraries,
|
||||
psysonic_integration::navidrome::playlists::nd_list_playlists,
|
||||
psysonic_integration::navidrome::playlists::nd_create_playlist,
|
||||
psysonic_integration::navidrome::playlists::nd_update_playlist,
|
||||
psysonic_integration::navidrome::playlists::nd_get_playlist,
|
||||
psysonic_integration::navidrome::playlists::nd_delete_playlist,
|
||||
psysonic_integration::navidrome::queries::nd_get_song_path,
|
||||
psysonic_integration::remote::search_radio_browser,
|
||||
psysonic_integration::remote::get_top_radio_stations,
|
||||
psysonic_integration::remote::fetch_url_bytes,
|
||||
psysonic_integration::remote::fetch_json_url,
|
||||
psysonic_integration::remote::fetch_icy_metadata,
|
||||
psysonic_integration::remote::resolve_stream_url,
|
||||
analysis_get_waveform,
|
||||
analysis_get_waveform_for_track,
|
||||
analysis_get_loudness_for_track,
|
||||
@@ -457,7 +458,7 @@ pub fn run() {
|
||||
psysonic_syncfs::cache::downloads::open_folder,
|
||||
psysonic_syncfs::cache::downloads::get_embedded_lyrics,
|
||||
psysonic_syncfs::cache::downloads::fetch_netease_lyrics,
|
||||
fetch_bandsintown_events,
|
||||
psysonic_integration::bandsintown::fetch_bandsintown_events,
|
||||
#[cfg(target_os = "windows")]
|
||||
taskbar_win::update_taskbar_icon,
|
||||
])
|
||||
|
||||
Reference in New Issue
Block a user