inori-mpd

Crates.ioinori-mpd
lib.rsinori-mpd
version0.1.1
sourcesrc
created_at2024-08-27 05:31:46.654948
updated_at2024-08-27 05:49:42.270968
descriptionfork of rust-mpd with extra features used in the inori client
homepagehttps://github.com/eshrh/rust-mpd
repositoryhttps://github.com/eshrh/rust-mpd.git
max_upload_size
id1352911
size118,363
esrh (eshrh)

documentation

README

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 paulchambaz
  • fn 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 protocol
  • fn 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.
  • resolved/suppressed all compilation warnings.

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"
Commit count: 0

cargo fmt