Crates.io | inori-mpd |
lib.rs | inori-mpd |
version | 0.1.1 |
source | src |
created_at | 2024-08-27 05:31:46.654948 |
updated_at | 2024-08-27 05:49:42.270968 |
description | fork of rust-mpd with extra features used in the inori client |
homepage | https://github.com/eshrh/rust-mpd |
repository | https://github.com/eshrh/rust-mpd.git |
max_upload_size | |
id | 1352911 |
size | 118,363 |
This is my fork of rust-mpd which I use in my MPD client, inori.
The original program is licensed under either Apache v2 or MIT. I have chosen the MIT license, and you can find the original license/copyright notice here, included with the software.
All my original code is public domain under the Unlicense.
Features I have implemented are not particularly idiomatic or well
written, but they get the my job done. New additions are:
listallinfo
command from an upstream
PR by
paulchambazfn list_group_2(&mut self, terms: (String, String)) -> Result<Vec<(String, String)>>
which calls the "list" command for
two terms with the group keyword, as specified in the
protocolfn list_groups(&mut self, terms: Vec<&str>) -> Result<Vec<Vec<String>>>
which also calls the "list" command for an
arbitrary number of terms. The output nested vectors contains the
grouping structure. So, for example, a call like "title group album"
will return
[["album1"], ["album1", "title1"], ["album2"], ["album2 title2"]]
and so on. This is primarily useful to obtain
one entry for each object in the library; I use it in inori for the
global search feature.With that said, my bar for quality is honestly quite low, I'd rather save anybody else the trouble of having to make their own fork to add a simple convenience feature. Feel free to send me any patches and I'll almost certainly accept them quickly as long as they don't break anything!
It is not possible to implement these features that I need without a fork because the necessary Client api is not public, and the original maintainer has been inactive for some time.
If you'd like to use this fork as a drop-in replacement, you can do that the same way I do it in inori:
[dependencies.mpd]
package = "inori-mpd"
version = "0.1.0"