forked from Keelrleek/SoulStream
playlists + player: every service's list through one door with its names matched for real, and shuffle that readies exactly what it promises
This commit is contained in:
1 parent
30eb6fe025
commit
50414dae5c
16 files changed
+4157
-154
No files matched your search
@@ -68,6 +68,10 @@ export const downloadFile = (username, path, size) =>
|
||||
export const copyStreamToFolder = (files, folder) =>
|
||||
invoke("copy_stream_to_folder", { files, folder });
|
||||
export const saveToLibrary = (files) => invoke("save_to_library", { files });
|
||||
// Byte length of the cached copy of one peer file (null when uncached) —
|
||||
// compared against the peer-stated size to tell "finished" from "prefix".
|
||||
export const streamCacheLen = (username, path) =>
|
||||
invoke("stream_cache_len", { username, path });
|
||||
export const cancelDownload = (id) => invoke("cancel_download", { id });
|
||||
export const showInFolder = (path) => invoke("show_in_folder", { path });
|
||||
export const refreshArtistArt = () => invoke("refresh_artist_art");
|
||||
@@ -136,6 +140,11 @@ export const openExternal = (url) => invoke("open_external", { url });
|
||||
// pixels on the long side. Omit it only where true pixels matter (the
|
||||
// fullscreen viewer, the import picker's comparison and loupe).
|
||||
export const albumArt = (path, maxEdge = null) => invoke("album_art", { path, maxEdge });
|
||||
/** The cover embedded in a streamed track's own cache file, extracted to a
|
||||
* local image path — null while the transfer is too young to read, or when
|
||||
* the peer's file simply carries no picture. */
|
||||
export const streamEmbeddedArt = (username, path) =>
|
||||
invoke("stream_embedded_art", { username, path });
|
||||
export const refreshAlbumArt = (albumId) => invoke("refresh_album_art", { albumId });
|
||||
export const refreshAllAlbumArt = () => invoke("refresh_all_album_art");
|
||||
export const getSettings = () => invoke("get_settings");
|
||||
@@ -186,6 +195,14 @@ export const playlistImportProbe = () => invoke("playlist_import_probe");
|
||||
export const playlistImportFolder = () => invoke("playlist_import_folder");
|
||||
export const playlistImportText = (text) => invoke("playlist_import_text", { text });
|
||||
export const playlistImportYoutube = (url) => invoke("playlist_import_youtube", { url });
|
||||
export const playlistImportYoutubePlaylist = (url) =>
|
||||
invoke("playlist_import_youtube_playlist", { url });
|
||||
// One door for every service link: YouTube, Spotify, Apple Music, TIDAL, Deezer.
|
||||
export const playlistImportLink = (url) => invoke("playlist_import_link", { url });
|
||||
// A pasted block of TRACK links (any supported service), looked up one page
|
||||
// each — the way past Spotify's 100-track public ceiling.
|
||||
export const playlistImportTrackLinks = (text, name = null) =>
|
||||
invoke("playlist_import_track_links", { text, name });
|
||||
// The set LISTENER (src-tauri/src/setlist_scan.rs + ytdlp.rs): recognize a
|
||||
// mix's tracks from its audio. Progress rides "playlist:scan-progress".
|
||||
export const playlistScanYoutube = (url) => invoke("playlist_scan_youtube", { url });
|
||||
@@ -257,6 +274,15 @@ export const lyricsVocalActivity = (path) => invoke("lyrics_vocal_activity", { p
|
||||
export const lyricsSaveLines = (title, artist, durationSecs, lines) =>
|
||||
invoke("lyrics_save_lines", { title, artist, durationSecs: durationSecs ?? null, lines });
|
||||
export const catalogSearch = (query) => invoke("catalog_search", { query });
|
||||
// Track rows only — one Deezer call, and the query may use Deezer's field
|
||||
// syntax (artist:"…" track:"…"). The identity lookups use this; the search
|
||||
// PAGE still uses catalogSearch, which also wants artists and albums.
|
||||
export const catalogSearchTracks = (query, limit = 10) =>
|
||||
invoke("catalog_search_tracks", { query, limit });
|
||||
// The artist page's whole shelf — Deezer plus the MusicBrainz/Apple
|
||||
// supplements — flattened to tracks, for lookups the search index failed.
|
||||
export const catalogArtistTrackCandidates = (artist, title) =>
|
||||
invoke("catalog_artist_track_candidates", { artist, title });
|
||||
export const catalogTrackByIsrc = (isrc) => invoke("catalog_track_by_isrc", { isrc });
|
||||
export const rememberFusedArtistPortrait = (artistId, portrait) =>
|
||||
invoke("remember_fused_artist_portrait", { artistId, portrait });
|
||||
|
||||
Reference in new issue
Block a user